; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (slaqr3)

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

@c__1 = external hidden global i32, align 4
@c_n1 = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_true = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b17 = external hidden global float, align 4
@c_b18 = external hidden global float, align 4
@c__12 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1

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

178:                                              ; preds = %26
  %179 = load i32, ptr %63, align 4, !tbaa !9
  br label %182

180:                                              ; preds = %26
  %181 = load i32, ptr %64, align 4, !tbaa !9
  br label %182

182:                                              ; preds = %180, %178
  %183 = phi i32 [ %179, %178 ], [ %181, %180 ]
  store i32 %183, ptr %95, align 4, !tbaa !9
  %184 = load i32, ptr %95, align 4, !tbaa !9
  %185 = icmp sle i32 %184, 2
  br i1 %185, label %186, label %187

186:                                              ; preds = %182
  store i32 1, ptr %100, align 4, !tbaa !9
  br label %263

187:                                              ; preds = %182
  %188 = load i32, ptr %95, align 4, !tbaa !9
  %189 = sub nsw i32 %188, 1
  store i32 %189, ptr %63, align 4, !tbaa !9
  %190 = load ptr, ptr %46, align 8, !tbaa !5
  %191 = load i32, ptr %56, align 4, !tbaa !9
  %192 = sext i32 %191 to i64
  %193 = getelementptr inbounds float, ptr %190, i64 %192
  %194 = load ptr, ptr %47, align 8, !tbaa !5
  %195 = load ptr, ptr %51, align 8, !tbaa !5
  %196 = getelementptr inbounds float, ptr %195, i64 1
  %197 = load ptr, ptr %51, align 8, !tbaa !5
  %198 = getelementptr inbounds float, ptr %197, i64 1
  call void @sgehrd_(ptr noundef %95, ptr noundef @c__1, ptr noundef %63, ptr noundef %193, ptr noundef %194, ptr noundef %196, ptr noundef %198, ptr noundef @c_n1, ptr noundef %76)
  %199 = load ptr, ptr %51, align 8, !tbaa !5
  %200 = getelementptr inbounds float, ptr %199, i64 1
  %201 = load float, ptr %200, align 4, !tbaa !11
  %202 = fptosi float %201 to i32
  store i32 %202, ptr %107, align 4, !tbaa !9
  %203 = load i32, ptr %95, align 4, !tbaa !9
  %204 = sub nsw i32 %203, 1
  store i32 %204, ptr %63, align 4, !tbaa !9
  %205 = load ptr, ptr %46, align 8, !tbaa !5
  %206 = load i32, ptr %56, align 4, !tbaa !9
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds float, ptr %205, i64 %207
  %209 = load ptr, ptr %47, align 8, !tbaa !5
  %210 = load ptr, ptr %51, align 8, !tbaa !5
  %211 = getelementptr inbounds float, ptr %210, i64 1
  %212 = load ptr, ptr %43, align 8, !tbaa !5
  %213 = load i32, ptr %58, align 4, !tbaa !9
  %214 = sext i32 %213 to i64
  %215 = getelementptr inbounds float, ptr %212, i64 %214
  %216 = load ptr, ptr %44, align 8, !tbaa !5
  %217 = load ptr, ptr %51, align 8, !tbaa !5
  %218 = getelementptr inbounds float, ptr %217, i64 1
  call void @sormhr_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %95, ptr noundef %95, ptr noundef @c__1, ptr noundef %63, ptr noundef %208, ptr noundef %209, ptr noundef %211, ptr noundef %215, ptr noundef %216, ptr noundef %218, ptr noundef @c_n1, ptr noundef %76)
  %219 = load ptr, ptr %51, align 8, !tbaa !5
  %220 = getelementptr inbounds float, ptr %219, i64 1
  %221 = load float, ptr %220, align 4, !tbaa !11
  %222 = fptosi float %221 to i32
  store i32 %222, ptr %108, align 4, !tbaa !9
  %223 = load ptr, ptr %46, align 8, !tbaa !5
  %224 = load i32, ptr %56, align 4, !tbaa !9
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds float, ptr %223, i64 %225
  %227 = load ptr, ptr %47, align 8, !tbaa !5
  %228 = load ptr, ptr %41, align 8, !tbaa !5
  %229 = getelementptr inbounds float, ptr %228, i64 1
  %230 = load ptr, ptr %42, align 8, !tbaa !5
  %231 = getelementptr inbounds float, ptr %230, i64 1
  %232 = load ptr, ptr %43, align 8, !tbaa !5
  %233 = load i32, ptr %58, align 4, !tbaa !9
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds float, ptr %232, i64 %234
  %236 = load ptr, ptr %44, align 8, !tbaa !5
  %237 = load ptr, ptr %51, align 8, !tbaa !5
  %238 = getelementptr inbounds float, ptr %237, i64 1
  call void @slaqr4_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %95, ptr noundef @c__1, ptr noundef %95, ptr noundef %226, ptr noundef %227, ptr noundef %229, ptr noundef %231, ptr noundef @c__1, ptr noundef %95, ptr noundef %235, ptr noundef %236, ptr noundef %238, ptr noundef @c_n1, ptr noundef %87)
  %239 = load ptr, ptr %51, align 8, !tbaa !5
  %240 = getelementptr inbounds float, ptr %239, i64 1
  %241 = load float, ptr %240, align 4, !tbaa !11
  %242 = fptosi float %241 to i32
  store i32 %242, ptr %109, align 4, !tbaa !9
  %243 = load i32, ptr %95, align 4, !tbaa !9
  %244 = load i32, ptr %107, align 4, !tbaa !9
  %245 = load i32, ptr %108, align 4, !tbaa !9
  %246 = icmp sge i32 %244, %245
  br i1 %246, label %247, label %249

247:                                              ; preds = %187
  %248 = load i32, ptr %107, align 4, !tbaa !9
  br label %251

249:                                              ; preds = %187
  %250 = load i32, ptr %108, align 4, !tbaa !9
  br label %251

251:                                              ; preds = %249, %247
  %252 = phi i32 [ %248, %247 ], [ %250, %249 ]
  %253 = add nsw i32 %243, %252
  store i32 %253, ptr %63, align 4, !tbaa !9
  %254 = load i32, ptr %63, align 4, !tbaa !9
  %255 = load i32, ptr %109, align 4, !tbaa !9
  %256 = icmp sge i32 %254, %255
  br i1 %256, label %257, label %259

257:                                              ; preds = %251
  %258 = load i32, ptr %63, align 4, !tbaa !9
  br label %261

259:                                              ; preds = %251
  %260 = load i32, ptr %109, align 4, !tbaa !9
  br label %261

261:                                              ; preds = %259, %257
  %262 = phi i32 [ %258, %257 ], [ %260, %259 ]
  store i32 %262, ptr %100, align 4, !tbaa !9
  br label %263

263:                                              ; preds = %261, %186
  %264 = load ptr, ptr %52, align 8, !tbaa !5
  %265 = load i32, ptr %264, align 4, !tbaa !9
  %266 = icmp eq i32 %265, -1
  br i1 %266, label %267, label %272

267:                                              ; preds = %263
  %268 = load i32, ptr %100, align 4, !tbaa !9
  %269 = sitofp i32 %268 to float
  %270 = load ptr, ptr %51, align 8, !tbaa !5
  %271 = getelementptr inbounds float, ptr %270, i64 1
  store float %269, ptr %271, align 4, !tbaa !11
  store i32 1, ptr %110, align 4
  br label %1763

272:                                              ; preds = %263
  %273 = load ptr, ptr %39, align 8, !tbaa !5
  store i32 0, ptr %273, align 4, !tbaa !9
  %274 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 0, ptr %274, align 4, !tbaa !9
  %275 = load ptr, ptr %51, align 8, !tbaa !5
  %276 = getelementptr inbounds float, ptr %275, i64 1
  store float 1.000000e+00, ptr %276, align 4, !tbaa !11
  %277 = load ptr, ptr %30, align 8, !tbaa !5
  %278 = load i32, ptr %277, align 4, !tbaa !9
  %279 = load ptr, ptr %31, align 8, !tbaa !5
  %280 = load i32, ptr %279, align 4, !tbaa !9
  %281 = icmp sgt i32 %278, %280
  br i1 %281, label %282, label %283

282:                                              ; preds = %272
  store i32 1, ptr %110, align 4
  br label %1763

283:                                              ; preds = %272
  %284 = load ptr, ptr %32, align 8, !tbaa !5
  %285 = load i32, ptr %284, align 4, !tbaa !9
  %286 = icmp slt i32 %285, 1
  br i1 %286, label %287, label %288

287:                                              ; preds = %283
  store i32 1, ptr %110, align 4
  br label %1763

288:                                              ; preds = %283
  %289 = call float @slamch_(ptr noundef @.str.2)
  store float %289, ptr %96, align 4, !tbaa !11
  %290 = load float, ptr %96, align 4, !tbaa !11
  %291 = fdiv float 1.000000e+00, %290
  store float %291, ptr %97, align 4, !tbaa !11
  call void @slabad_(ptr noundef %96, ptr noundef %97)
  %292 = call float @slamch_(ptr noundef @.str.3)
  store float %292, ptr %106, align 4, !tbaa !11
  %293 = load float, ptr %96, align 4, !tbaa !11
  %294 = load ptr, ptr %29, align 8, !tbaa !5
  %295 = load i32, ptr %294, align 4, !tbaa !9
  %296 = sitofp i32 %295 to float
  %297 = load float, ptr %106, align 4, !tbaa !11
  %298 = fdiv float %296, %297
  %299 = fmul float %293, %298
  store float %299, ptr %99, align 4, !tbaa !11
  %300 = load ptr, ptr %32, align 8, !tbaa !5
  %301 = load i32, ptr %300, align 4, !tbaa !9
  store i32 %301, ptr %63, align 4, !tbaa !9
  %302 = load ptr, ptr %31, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = load ptr, ptr %30, align 8, !tbaa !5
  %305 = load i32, ptr %304, align 4, !tbaa !9
  %306 = sub nsw i32 %303, %305
  %307 = add nsw i32 %306, 1
  store i32 %307, ptr %64, align 4, !tbaa !9
  %308 = load i32, ptr %63, align 4, !tbaa !9
  %309 = load i32, ptr %64, align 4, !tbaa !9
  %310 = icmp sle i32 %308, %309
  br i1 %310, label %311, label %313

311:                                              ; preds = %288
  %312 = load i32, ptr %63, align 4, !tbaa !9
  br label %315

313:                                              ; preds = %288
  %314 = load i32, ptr %64, align 4, !tbaa !9
  br label %315

315:                                              ; preds = %313, %311
  %316 = phi i32 [ %312, %311 ], [ %314, %313 ]
  store i32 %316, ptr %95, align 4, !tbaa !9
  %317 = load ptr, ptr %31, align 8, !tbaa !5
  %318 = load i32, ptr %317, align 4, !tbaa !9
  %319 = load i32, ptr %95, align 4, !tbaa !9
  %320 = sub nsw i32 %318, %319
  %321 = add nsw i32 %320, 1
  store i32 %321, ptr %88, align 4, !tbaa !9
  %322 = load i32, ptr %88, align 4, !tbaa !9
  %323 = load ptr, ptr %30, align 8, !tbaa !5
  %324 = load i32, ptr %323, align 4, !tbaa !9
  %325 = icmp eq i32 %322, %324
  br i1 %325, label %326, label %327

326:                                              ; preds = %315
  store float 0.000000e+00, ptr %85, align 4, !tbaa !11
  br label %338

327:                                              ; preds = %315
  %328 = load ptr, ptr %33, align 8, !tbaa !5
  %329 = load i32, ptr %88, align 4, !tbaa !9
  %330 = load i32, ptr %88, align 4, !tbaa !9
  %331 = sub nsw i32 %330, 1
  %332 = load i32, ptr %53, align 4, !tbaa !9
  %333 = mul nsw i32 %331, %332
  %334 = add nsw i32 %329, %333
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds float, ptr %328, i64 %335
  %337 = load float, ptr %336, align 4, !tbaa !11
  store float %337, ptr %85, align 4, !tbaa !11
  br label %338

338:                                              ; preds = %327, %326
  %339 = load ptr, ptr %31, align 8, !tbaa !5
  %340 = load i32, ptr %339, align 4, !tbaa !9
  %341 = load i32, ptr %88, align 4, !tbaa !9
  %342 = icmp eq i32 %340, %341
  br i1 %342, label %343, label %424

343:                                              ; preds = %338
  %344 = load ptr, ptr %33, align 8, !tbaa !5
  %345 = load i32, ptr %88, align 4, !tbaa !9
  %346 = load i32, ptr %88, align 4, !tbaa !9
  %347 = load i32, ptr %53, align 4, !tbaa !9
  %348 = mul nsw i32 %346, %347
  %349 = add nsw i32 %345, %348
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds float, ptr %344, i64 %350
  %352 = load float, ptr %351, align 4, !tbaa !11
  %353 = load ptr, ptr %41, align 8, !tbaa !5
  %354 = load i32, ptr %88, align 4, !tbaa !9
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds float, ptr %353, i64 %355
  store float %352, ptr %356, align 4, !tbaa !11
  %357 = load ptr, ptr %42, align 8, !tbaa !5
  %358 = load i32, ptr %88, align 4, !tbaa !9
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds float, ptr %357, i64 %359
  store float 0.000000e+00, ptr %360, align 4, !tbaa !11
  %361 = load ptr, ptr %39, align 8, !tbaa !5
  store i32 1, ptr %361, align 4, !tbaa !9
  %362 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 0, ptr %362, align 4, !tbaa !9
  %363 = load float, ptr %99, align 4, !tbaa !11
  store float %363, ptr %68, align 4, !tbaa !11
  %364 = load float, ptr %106, align 4, !tbaa !11
  %365 = load ptr, ptr %33, align 8, !tbaa !5
  %366 = load i32, ptr %88, align 4, !tbaa !9
  %367 = load i32, ptr %88, align 4, !tbaa !9
  %368 = load i32, ptr %53, align 4, !tbaa !9
  %369 = mul nsw i32 %367, %368
  %370 = add nsw i32 %366, %369
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds float, ptr %365, i64 %371
  %373 = load float, ptr %372, align 4, !tbaa !11
  store float %373, ptr %67, align 4, !tbaa !11
  %374 = load float, ptr %67, align 4, !tbaa !11
  %375 = fcmp oge float %374, 0.000000e+00
  br i1 %375, label %376, label %378

376:                                              ; preds = %343
  %377 = load float, ptr %67, align 4, !tbaa !11
  br label %381

378:                                              ; preds = %343
  %379 = load float, ptr %67, align 4, !tbaa !11
  %380 = fneg float %379
  br label %381

381:                                              ; preds = %378, %376
  %382 = phi float [ %377, %376 ], [ %380, %378 ]
  %383 = fmul float %364, %382
  store float %383, ptr %69, align 4, !tbaa !11
  %384 = load float, ptr %85, align 4, !tbaa !11
  %385 = fcmp oge float %384, 0.000000e+00
  br i1 %385, label %386, label %388

386:                                              ; preds = %381
  %387 = load float, ptr %85, align 4, !tbaa !11
  br label %391

388:                                              ; preds = %381
  %389 = load float, ptr %85, align 4, !tbaa !11
  %390 = fneg float %389
  br label %391

391:                                              ; preds = %388, %386
  %392 = phi float [ %387, %386 ], [ %390, %388 ]
  %393 = load float, ptr %68, align 4, !tbaa !11
  %394 = load float, ptr %69, align 4, !tbaa !11
  %395 = fcmp oge float %393, %394
  br i1 %395, label %396, label %398

396:                                              ; preds = %391
  %397 = load float, ptr %68, align 4, !tbaa !11
  br label %400

398:                                              ; preds = %391
  %399 = load float, ptr %69, align 4, !tbaa !11
  br label %400

400:                                              ; preds = %398, %396
  %401 = phi float [ %397, %396 ], [ %399, %398 ]
  %402 = fcmp ole float %392, %401
  br i1 %402, label %403, label %421

403:                                              ; preds = %400
  %404 = load ptr, ptr %39, align 8, !tbaa !5
  store i32 0, ptr %404, align 4, !tbaa !9
  %405 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 1, ptr %405, align 4, !tbaa !9
  %406 = load i32, ptr %88, align 4, !tbaa !9
  %407 = load ptr, ptr %30, align 8, !tbaa !5
  %408 = load i32, ptr %407, align 4, !tbaa !9
  %409 = icmp sgt i32 %406, %408
  br i1 %409, label %410, label %420

410:                                              ; preds = %403
  %411 = load ptr, ptr %33, align 8, !tbaa !5
  %412 = load i32, ptr %88, align 4, !tbaa !9
  %413 = load i32, ptr %88, align 4, !tbaa !9
  %414 = sub nsw i32 %413, 1
  %415 = load i32, ptr %53, align 4, !tbaa !9
  %416 = mul nsw i32 %414, %415
  %417 = add nsw i32 %412, %416
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds float, ptr %411, i64 %418
  store float 0.000000e+00, ptr %419, align 4, !tbaa !11
  br label %420

420:                                              ; preds = %410, %403
  br label %421

421:                                              ; preds = %420, %400
  %422 = load ptr, ptr %51, align 8, !tbaa !5
  %423 = getelementptr inbounds float, ptr %422, i64 1
  store float 1.000000e+00, ptr %423, align 4, !tbaa !11
  store i32 1, ptr %110, align 4
  br label %1763

424:                                              ; preds = %338
  %425 = load ptr, ptr %33, align 8, !tbaa !5
  %426 = load i32, ptr %88, align 4, !tbaa !9
  %427 = load i32, ptr %88, align 4, !tbaa !9
  %428 = load i32, ptr %53, align 4, !tbaa !9
  %429 = mul nsw i32 %427, %428
  %430 = add nsw i32 %426, %429
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds float, ptr %425, i64 %431
  %433 = load ptr, ptr %34, align 8, !tbaa !5
  %434 = load ptr, ptr %46, align 8, !tbaa !5
  %435 = load i32, ptr %56, align 4, !tbaa !9
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds float, ptr %434, i64 %436
  %438 = load ptr, ptr %47, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.4, ptr noundef %95, ptr noundef %95, ptr noundef %432, ptr noundef %433, ptr noundef %437, ptr noundef %438)
  %439 = load i32, ptr %95, align 4, !tbaa !9
  %440 = sub nsw i32 %439, 1
  store i32 %440, ptr %63, align 4, !tbaa !9
  %441 = load ptr, ptr %34, align 8, !tbaa !5
  %442 = load i32, ptr %441, align 4, !tbaa !9
  %443 = add nsw i32 %442, 1
  store i32 %443, ptr %64, align 4, !tbaa !9
  %444 = load ptr, ptr %47, align 8, !tbaa !5
  %445 = load i32, ptr %444, align 4, !tbaa !9
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr %65, align 4, !tbaa !9
  %447 = load ptr, ptr %33, align 8, !tbaa !5
  %448 = load i32, ptr %88, align 4, !tbaa !9
  %449 = add nsw i32 %448, 1
  %450 = load i32, ptr %88, align 4, !tbaa !9
  %451 = load i32, ptr %53, align 4, !tbaa !9
  %452 = mul nsw i32 %450, %451
  %453 = add nsw i32 %449, %452
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds float, ptr %447, i64 %454
  %456 = load ptr, ptr %46, align 8, !tbaa !5
  %457 = load i32, ptr %55, align 4, !tbaa !9
  %458 = add nsw i32 %457, 2
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds float, ptr %456, i64 %459
  call void @scopy_(ptr noundef %63, ptr noundef %455, ptr noundef %64, ptr noundef %460, ptr noundef %65)
  %461 = load ptr, ptr %43, align 8, !tbaa !5
  %462 = load i32, ptr %58, align 4, !tbaa !9
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds float, ptr %461, i64 %463
  %465 = load ptr, ptr %44, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.5, ptr noundef %95, ptr noundef %95, ptr noundef @c_b17, ptr noundef @c_b18, ptr noundef %464, ptr noundef %465)
  %466 = load ptr, ptr %52, align 8, !tbaa !5
  %467 = call i32 @ilaenv_(ptr noundef @c__12, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %95, ptr noundef @c__1, ptr noundef %95, ptr noundef %466, i32 noundef 6, i32 noundef 2)
  store i32 %467, ptr %77, align 4, !tbaa !9
  %468 = load i32, ptr %95, align 4, !tbaa !9
  %469 = load i32, ptr %77, align 4, !tbaa !9
  %470 = icmp sgt i32 %468, %469
  br i1 %470, label %471, label %493

471:                                              ; preds = %424
  %472 = load ptr, ptr %46, align 8, !tbaa !5
  %473 = load i32, ptr %56, align 4, !tbaa !9
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds float, ptr %472, i64 %474
  %476 = load ptr, ptr %47, align 8, !tbaa !5
  %477 = load ptr, ptr %41, align 8, !tbaa !5
  %478 = load i32, ptr %88, align 4, !tbaa !9
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds float, ptr %477, i64 %479
  %481 = load ptr, ptr %42, align 8, !tbaa !5
  %482 = load i32, ptr %88, align 4, !tbaa !9
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds float, ptr %481, i64 %483
  %485 = load ptr, ptr %43, align 8, !tbaa !5
  %486 = load i32, ptr %58, align 4, !tbaa !9
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds float, ptr %485, i64 %487
  %489 = load ptr, ptr %44, align 8, !tbaa !5
  %490 = load ptr, ptr %51, align 8, !tbaa !5
  %491 = getelementptr inbounds float, ptr %490, i64 1
  %492 = load ptr, ptr %52, align 8, !tbaa !5
  call void @slaqr4_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %95, ptr noundef @c__1, ptr noundef %95, ptr noundef %475, ptr noundef %476, ptr noundef %480, ptr noundef %484, ptr noundef @c__1, ptr noundef %95, ptr noundef %488, ptr noundef %489, ptr noundef %491, ptr noundef %492, ptr noundef %87)
  br label %512

493:                                              ; preds = %424
  %494 = load ptr, ptr %46, align 8, !tbaa !5
  %495 = load i32, ptr %56, align 4, !tbaa !9
  %496 = sext i32 %495 to i64
  %497 = getelementptr inbounds float, ptr %494, i64 %496
  %498 = load ptr, ptr %47, align 8, !tbaa !5
  %499 = load ptr, ptr %41, align 8, !tbaa !5
  %500 = load i32, ptr %88, align 4, !tbaa !9
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds float, ptr %499, i64 %501
  %503 = load ptr, ptr %42, align 8, !tbaa !5
  %504 = load i32, ptr %88, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %503, i64 %505
  %507 = load ptr, ptr %43, align 8, !tbaa !5
  %508 = load i32, ptr %58, align 4, !tbaa !9
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds float, ptr %507, i64 %509
  %511 = load ptr, ptr %44, align 8, !tbaa !5
  call void @slahqr_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %95, ptr noundef @c__1, ptr noundef %95, ptr noundef %497, ptr noundef %498, ptr noundef %502, ptr noundef %506, ptr noundef @c__1, ptr noundef %95, ptr noundef %510, ptr noundef %511, ptr noundef %87)
  br label %512

512:                                              ; preds = %493, %471
  %513 = load i32, ptr %95, align 4, !tbaa !9
  %514 = sub nsw i32 %513, 3
  store i32 %514, ptr %63, align 4, !tbaa !9
  store i32 1, ptr %83, align 4, !tbaa !9
  br label %515

515:                                              ; preds = %538, %512
  %516 = load i32, ptr %83, align 4, !tbaa !9
  %517 = load i32, ptr %63, align 4, !tbaa !9
  %518 = icmp sle i32 %516, %517
  br i1 %518, label %519, label %541

519:                                              ; preds = %515
  %520 = load ptr, ptr %46, align 8, !tbaa !5
  %521 = load i32, ptr %83, align 4, !tbaa !9
  %522 = add nsw i32 %521, 2
  %523 = load i32, ptr %83, align 4, !tbaa !9
  %524 = load i32, ptr %55, align 4, !tbaa !9
  %525 = mul nsw i32 %523, %524
  %526 = add nsw i32 %522, %525
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds float, ptr %520, i64 %527
  store float 0.000000e+00, ptr %528, align 4, !tbaa !11
  %529 = load ptr, ptr %46, align 8, !tbaa !5
  %530 = load i32, ptr %83, align 4, !tbaa !9
  %531 = add nsw i32 %530, 3
  %532 = load i32, ptr %83, align 4, !tbaa !9
  %533 = load i32, ptr %55, align 4, !tbaa !9
  %534 = mul nsw i32 %532, %533
  %535 = add nsw i32 %531, %534
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds float, ptr %529, i64 %536
  store float 0.000000e+00, ptr %537, align 4, !tbaa !11
  br label %538

538:                                              ; preds = %519
  %539 = load i32, ptr %83, align 4, !tbaa !9
  %540 = add nsw i32 %539, 1
  store i32 %540, ptr %83, align 4, !tbaa !9
  br label %515, !llvm.loop !13

541:                                              ; preds = %515
  %542 = load i32, ptr %95, align 4, !tbaa !9
  %543 = icmp sgt i32 %542, 2
  br i1 %543, label %544, label %554

544:                                              ; preds = %541
  %545 = load ptr, ptr %46, align 8, !tbaa !5
  %546 = load i32, ptr %95, align 4, !tbaa !9
  %547 = load i32, ptr %95, align 4, !tbaa !9
  %548 = sub nsw i32 %547, 2
  %549 = load i32, ptr %55, align 4, !tbaa !9
  %550 = mul nsw i32 %548, %549
  %551 = add nsw i32 %546, %550
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds float, ptr %545, i64 %552
  store float 0.000000e+00, ptr %553, align 4, !tbaa !11
  br label %554

554:                                              ; preds = %544, %541
  %555 = load i32, ptr %95, align 4, !tbaa !9
  %556 = load ptr, ptr %39, align 8, !tbaa !5
  store i32 %555, ptr %556, align 4, !tbaa !9
  %557 = load i32, ptr %87, align 4, !tbaa !9
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %79, align 4, !tbaa !9
  br label %559

559:                                              ; preds = %846, %554
  %560 = load i32, ptr %79, align 4, !tbaa !9
  %561 = load ptr, ptr %39, align 8, !tbaa !5
  %562 = load i32, ptr %561, align 4, !tbaa !9
  %563 = icmp sle i32 %560, %562
  br i1 %563, label %564, label %847

564:                                              ; preds = %559
  %565 = load ptr, ptr %39, align 8, !tbaa !5
  %566 = load i32, ptr %565, align 4, !tbaa !9
  %567 = icmp eq i32 %566, 1
  br i1 %567, label %568, label %569

568:                                              ; preds = %564
  store i32 0, ptr %86, align 4, !tbaa !9
  br label %584

569:                                              ; preds = %564
  %570 = load ptr, ptr %46, align 8, !tbaa !5
  %571 = load ptr, ptr %39, align 8, !tbaa !5
  %572 = load i32, ptr %571, align 4, !tbaa !9
  %573 = load ptr, ptr %39, align 8, !tbaa !5
  %574 = load i32, ptr %573, align 4, !tbaa !9
  %575 = sub nsw i32 %574, 1
  %576 = load i32, ptr %55, align 4, !tbaa !9
  %577 = mul nsw i32 %575, %576
  %578 = add nsw i32 %572, %577
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %570, i64 %579
  %581 = load float, ptr %580, align 4, !tbaa !11
  %582 = fcmp une float %581, 0.000000e+00
  %583 = zext i1 %582 to i32
  store i32 %583, ptr %86, align 4, !tbaa !9
  br label %584

584:                                              ; preds = %569, %568
  %585 = load i32, ptr %86, align 4, !tbaa !9
  %586 = icmp ne i32 %585, 0
  br i1 %586, label %677, label %587

587:                                              ; preds = %584
  %588 = load ptr, ptr %46, align 8, !tbaa !5
  %589 = load ptr, ptr %39, align 8, !tbaa !5
  %590 = load i32, ptr %589, align 4, !tbaa !9
  %591 = load ptr, ptr %39, align 8, !tbaa !5
  %592 = load i32, ptr %591, align 4, !tbaa !9
  %593 = load i32, ptr %55, align 4, !tbaa !9
  %594 = mul nsw i32 %592, %593
  %595 = add nsw i32 %590, %594
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds float, ptr %588, i64 %596
  %598 = load float, ptr %597, align 4, !tbaa !11
  store float %598, ptr %67, align 4, !tbaa !11
  %599 = load float, ptr %67, align 4, !tbaa !11
  %600 = fcmp oge float %599, 0.000000e+00
  br i1 %600, label %601, label %603

601:                                              ; preds = %587
  %602 = load float, ptr %67, align 4, !tbaa !11
  br label %606

603:                                              ; preds = %587
  %604 = load float, ptr %67, align 4, !tbaa !11
  %605 = fneg float %604
  br label %606

606:                                              ; preds = %603, %601
  %607 = phi float [ %602, %601 ], [ %605, %603 ]
  store float %607, ptr %103, align 4, !tbaa !11
  %608 = load float, ptr %103, align 4, !tbaa !11
  %609 = fcmp oeq float %608, 0.000000e+00
  br i1 %609, label %610, label %620

610:                                              ; preds = %606
  %611 = load float, ptr %85, align 4, !tbaa !11
  %612 = fcmp oge float %611, 0.000000e+00
  br i1 %612, label %613, label %615

613:                                              ; preds = %610
  %614 = load float, ptr %85, align 4, !tbaa !11
  br label %618

615:                                              ; preds = %610
  %616 = load float, ptr %85, align 4, !tbaa !11
  %617 = fneg float %616
  br label %618

618:                                              ; preds = %615, %613
  %619 = phi float [ %614, %613 ], [ %617, %615 ]
  store float %619, ptr %103, align 4, !tbaa !11
  br label %620

620:                                              ; preds = %618, %606
  %621 = load float, ptr %99, align 4, !tbaa !11
  store float %621, ptr %68, align 4, !tbaa !11
  %622 = load float, ptr %106, align 4, !tbaa !11
  %623 = load float, ptr %103, align 4, !tbaa !11
  %624 = fmul float %622, %623
  store float %624, ptr %69, align 4, !tbaa !11
  %625 = load float, ptr %85, align 4, !tbaa !11
  %626 = load ptr, ptr %43, align 8, !tbaa !5
  %627 = load ptr, ptr %39, align 8, !tbaa !5
  %628 = load i32, ptr %627, align 4, !tbaa !9
  %629 = load i32, ptr %57, align 4, !tbaa !9
  %630 = mul nsw i32 %628, %629
  %631 = add nsw i32 %630, 1
  %632 = sext i32 %631 to i64
  %633 = getelementptr inbounds float, ptr %626, i64 %632
  %634 = load float, ptr %633, align 4, !tbaa !11
  %635 = fmul float %625, %634
  store float %635, ptr %67, align 4, !tbaa !11
  %636 = load float, ptr %67, align 4, !tbaa !11
  %637 = fcmp oge float %636, 0.000000e+00
  br i1 %637, label %638, label %640

638:                                              ; preds = %620
  %639 = load float, ptr %67, align 4, !tbaa !11
  br label %643

640:                                              ; preds = %620
  %641 = load float, ptr %67, align 4, !tbaa !11
  %642 = fneg float %641
  br label %643

643:                                              ; preds = %640, %638
  %644 = phi float [ %639, %638 ], [ %642, %640 ]
  %645 = load float, ptr %68, align 4, !tbaa !11
  %646 = load float, ptr %69, align 4, !tbaa !11
  %647 = fcmp oge float %645, %646
  br i1 %647, label %648, label %650

648:                                              ; preds = %643
  %649 = load float, ptr %68, align 4, !tbaa !11
  br label %652

650:                                              ; preds = %643
  %651 = load float, ptr %69, align 4, !tbaa !11
  br label %652

652:                                              ; preds = %650, %648
  %653 = phi float [ %649, %648 ], [ %651, %650 ]
  %654 = fcmp ole float %644, %653
  br i1 %654, label %655, label %659

655:                                              ; preds = %652
  %656 = load ptr, ptr %39, align 8, !tbaa !5
  %657 = load i32, ptr %656, align 4, !tbaa !9
  %658 = add nsw i32 %657, -1
  store i32 %658, ptr %656, align 4, !tbaa !9
  br label %676

659:                                              ; preds = %652
  %660 = load ptr, ptr %39, align 8, !tbaa !5
  %661 = load i32, ptr %660, align 4, !tbaa !9
  store i32 %661, ptr %78, align 4, !tbaa !9
  %662 = load ptr, ptr %46, align 8, !tbaa !5
  %663 = load i32, ptr %56, align 4, !tbaa !9
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds float, ptr %662, i64 %664
  %666 = load ptr, ptr %47, align 8, !tbaa !5
  %667 = load ptr, ptr %43, align 8, !tbaa !5
  %668 = load i32, ptr %58, align 4, !tbaa !9
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds float, ptr %667, i64 %669
  %671 = load ptr, ptr %44, align 8, !tbaa !5
  %672 = load ptr, ptr %51, align 8, !tbaa !5
  %673 = getelementptr inbounds float, ptr %672, i64 1
  call void @strexc_(ptr noundef @.str.8, ptr noundef %95, ptr noundef %665, ptr noundef %666, ptr noundef %670, ptr noundef %671, ptr noundef %78, ptr noundef %79, ptr noundef %673, ptr noundef %76)
  %674 = load i32, ptr %79, align 4, !tbaa !9
  %675 = add nsw i32 %674, 1
  store i32 %675, ptr %79, align 4, !tbaa !9
  br label %676

676:                                              ; preds = %659, %655
  br label %846

677:                                              ; preds = %584
  %678 = load ptr, ptr %46, align 8, !tbaa !5
  %679 = load ptr, ptr %39, align 8, !tbaa !5
  %680 = load i32, ptr %679, align 4, !tbaa !9
  %681 = load ptr, ptr %39, align 8, !tbaa !5
  %682 = load i32, ptr %681, align 4, !tbaa !9
  %683 = load i32, ptr %55, align 4, !tbaa !9
  %684 = mul nsw i32 %682, %683
  %685 = add nsw i32 %680, %684
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds float, ptr %678, i64 %686
  %688 = load float, ptr %687, align 4, !tbaa !11
  store float %688, ptr %69, align 4, !tbaa !11
  %689 = load float, ptr %69, align 4, !tbaa !11
  %690 = fcmp oge float %689, 0.000000e+00
  br i1 %690, label %691, label %693

691:                                              ; preds = %677
  %692 = load float, ptr %69, align 4, !tbaa !11
  br label %696

693:                                              ; preds = %677
  %694 = load float, ptr %69, align 4, !tbaa !11
  %695 = fneg float %694
  br label %696

696:                                              ; preds = %693, %691
  %697 = phi float [ %692, %691 ], [ %695, %693 ]
  %698 = fpext float %697 to double
  %699 = load ptr, ptr %46, align 8, !tbaa !5
  %700 = load ptr, ptr %39, align 8, !tbaa !5
  %701 = load i32, ptr %700, align 4, !tbaa !9
  %702 = load ptr, ptr %39, align 8, !tbaa !5
  %703 = load i32, ptr %702, align 4, !tbaa !9
  %704 = sub nsw i32 %703, 1
  %705 = load i32, ptr %55, align 4, !tbaa !9
  %706 = mul nsw i32 %704, %705
  %707 = add nsw i32 %701, %706
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds float, ptr %699, i64 %708
  %710 = load float, ptr %709, align 4, !tbaa !11
  store float %710, ptr %67, align 4, !tbaa !11
  %711 = load float, ptr %67, align 4, !tbaa !11
  %712 = fcmp oge float %711, 0.000000e+00
  br i1 %712, label %713, label %715

713:                                              ; preds = %696
  %714 = load float, ptr %67, align 4, !tbaa !11
  br label %718

715:                                              ; preds = %696
  %716 = load float, ptr %67, align 4, !tbaa !11
  %717 = fneg float %716
  br label %718

718:                                              ; preds = %715, %713
  %719 = phi float [ %714, %713 ], [ %717, %715 ]
  %720 = fpext float %719 to double
  %721 = call double @sqrt(double noundef %720) #5
  %722 = load ptr, ptr %46, align 8, !tbaa !5
  %723 = load ptr, ptr %39, align 8, !tbaa !5
  %724 = load i32, ptr %723, align 4, !tbaa !9
  %725 = sub nsw i32 %724, 1
  %726 = load ptr, ptr %39, align 8, !tbaa !5
  %727 = load i32, ptr %726, align 4, !tbaa !9
  %728 = load i32, ptr %55, align 4, !tbaa !9
  %729 = mul nsw i32 %727, %728
  %730 = add nsw i32 %725, %729
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds float, ptr %722, i64 %731
  %733 = load float, ptr %732, align 4, !tbaa !11
  store float %733, ptr %68, align 4, !tbaa !11
  %734 = load float, ptr %68, align 4, !tbaa !11
  %735 = fcmp oge float %734, 0.000000e+00
  br i1 %735, label %736, label %738

736:                                              ; preds = %718
  %737 = load float, ptr %68, align 4, !tbaa !11
  br label %741

738:                                              ; preds = %718
  %739 = load float, ptr %68, align 4, !tbaa !11
  %740 = fneg float %739
  br label %741

741:                                              ; preds = %738, %736
  %742 = phi float [ %737, %736 ], [ %740, %738 ]
  %743 = fpext float %742 to double
  %744 = call double @sqrt(double noundef %743) #5
  %745 = call double @llvm.fmuladd.f64(double %721, double %744, double %698)
  %746 = fptrunc double %745 to float
  store float %746, ptr %103, align 4, !tbaa !11
  %747 = load float, ptr %103, align 4, !tbaa !11
  %748 = fcmp oeq float %747, 0.000000e+00
  br i1 %748, label %749, label %759

749:                                              ; preds = %741
  %750 = load float, ptr %85, align 4, !tbaa !11
  %751 = fcmp oge float %750, 0.000000e+00
  br i1 %751, label %752, label %754

752:                                              ; preds = %749
  %753 = load float, ptr %85, align 4, !tbaa !11
  br label %757

754:                                              ; preds = %749
  %755 = load float, ptr %85, align 4, !tbaa !11
  %756 = fneg float %755
  br label %757

757:                                              ; preds = %754, %752
  %758 = phi float [ %753, %752 ], [ %756, %754 ]
  store float %758, ptr %103, align 4, !tbaa !11
  br label %759

759:                                              ; preds = %757, %741
  %760 = load float, ptr %85, align 4, !tbaa !11
  %761 = load ptr, ptr %43, align 8, !tbaa !5
  %762 = load ptr, ptr %39, align 8, !tbaa !5
  %763 = load i32, ptr %762, align 4, !tbaa !9
  %764 = load i32, ptr %57, align 4, !tbaa !9
  %765 = mul nsw i32 %763, %764
  %766 = add nsw i32 %765, 1
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds float, ptr %761, i64 %767
  %769 = load float, ptr %768, align 4, !tbaa !11
  %770 = fmul float %760, %769
  store float %770, ptr %67, align 4, !tbaa !11
  %771 = load float, ptr %67, align 4, !tbaa !11
  %772 = fcmp oge float %771, 0.000000e+00
  br i1 %772, label %773, label %775

773:                                              ; preds = %759
  %774 = load float, ptr %67, align 4, !tbaa !11
  br label %778

775:                                              ; preds = %759
  %776 = load float, ptr %67, align 4, !tbaa !11
  %777 = fneg float %776
  br label %778

778:                                              ; preds = %775, %773
  %779 = phi float [ %774, %773 ], [ %777, %775 ]
  store float %779, ptr %69, align 4, !tbaa !11
  %780 = load float, ptr %85, align 4, !tbaa !11
  %781 = load ptr, ptr %43, align 8, !tbaa !5
  %782 = load ptr, ptr %39, align 8, !tbaa !5
  %783 = load i32, ptr %782, align 4, !tbaa !9
  %784 = sub nsw i32 %783, 1
  %785 = load i32, ptr %57, align 4, !tbaa !9
  %786 = mul nsw i32 %784, %785
  %787 = add nsw i32 %786, 1
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds float, ptr %781, i64 %788
  %790 = load float, ptr %789, align 4, !tbaa !11
  %791 = fmul float %780, %790
  store float %791, ptr %68, align 4, !tbaa !11
  %792 = load float, ptr %68, align 4, !tbaa !11
  %793 = fcmp oge float %792, 0.000000e+00
  br i1 %793, label %794, label %796

794:                                              ; preds = %778
  %795 = load float, ptr %68, align 4, !tbaa !11
  br label %799

796:                                              ; preds = %778
  %797 = load float, ptr %68, align 4, !tbaa !11
  %798 = fneg float %797
  br label %799

799:                                              ; preds = %796, %794
  %800 = phi float [ %795, %794 ], [ %798, %796 ]
  store float %800, ptr %70, align 4, !tbaa !11
  %801 = load float, ptr %99, align 4, !tbaa !11
  store float %801, ptr %71, align 4, !tbaa !11
  %802 = load float, ptr %106, align 4, !tbaa !11
  %803 = load float, ptr %103, align 4, !tbaa !11
  %804 = fmul float %802, %803
  store float %804, ptr %72, align 4, !tbaa !11
  %805 = load float, ptr %69, align 4, !tbaa !11
  %806 = load float, ptr %70, align 4, !tbaa !11
  %807 = fcmp oge float %805, %806
  br i1 %807, label %808, label %810

808:                                              ; preds = %799
  %809 = load float, ptr %69, align 4, !tbaa !11
  br label %812

810:                                              ; preds = %799
  %811 = load float, ptr %70, align 4, !tbaa !11
  br label %812

812:                                              ; preds = %810, %808
  %813 = phi float [ %809, %808 ], [ %811, %810 ]
  %814 = load float, ptr %71, align 4, !tbaa !11
  %815 = load float, ptr %72, align 4, !tbaa !11
  %816 = fcmp oge float %814, %815
  br i1 %816, label %817, label %819

817:                                              ; preds = %812
  %818 = load float, ptr %71, align 4, !tbaa !11
  br label %821

819:                                              ; preds = %812
  %820 = load float, ptr %72, align 4, !tbaa !11
  br label %821

821:                                              ; preds = %819, %817
  %822 = phi float [ %818, %817 ], [ %820, %819 ]
  %823 = fcmp ole float %813, %822
  br i1 %823, label %824, label %828

824:                                              ; preds = %821
  %825 = load ptr, ptr %39, align 8, !tbaa !5
  %826 = load i32, ptr %825, align 4, !tbaa !9
  %827 = add nsw i32 %826, -2
  store i32 %827, ptr %825, align 4, !tbaa !9
  br label %845

828:                                              ; preds = %821
  %829 = load ptr, ptr %39, align 8, !tbaa !5
  %830 = load i32, ptr %829, align 4, !tbaa !9
  store i32 %830, ptr %78, align 4, !tbaa !9
  %831 = load ptr, ptr %46, align 8, !tbaa !5
  %832 = load i32, ptr %56, align 4, !tbaa !9
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds float, ptr %831, i64 %833
  %835 = load ptr, ptr %47, align 8, !tbaa !5
  %836 = load ptr, ptr %43, align 8, !tbaa !5
  %837 = load i32, ptr %58, align 4, !tbaa !9
  %838 = sext i32 %837 to i64
  %839 = getelementptr inbounds float, ptr %836, i64 %838
  %840 = load ptr, ptr %44, align 8, !tbaa !5
  %841 = load ptr, ptr %51, align 8, !tbaa !5
  %842 = getelementptr inbounds float, ptr %841, i64 1
  call void @strexc_(ptr noundef @.str.8, ptr noundef %95, ptr noundef %834, ptr noundef %835, ptr noundef %839, ptr noundef %840, ptr noundef %78, ptr noundef %79, ptr noundef %842, ptr noundef %76)
  %843 = load i32, ptr %79, align 4, !tbaa !9
  %844 = add nsw i32 %843, 2
  store i32 %844, ptr %79, align 4, !tbaa !9
  br label %845

845:                                              ; preds = %828, %824
  br label %846

846:                                              ; preds = %845, %676
  br label %559

847:                                              ; preds = %559
  %848 = load ptr, ptr %39, align 8, !tbaa !5
  %849 = load i32, ptr %848, align 4, !tbaa !9
  %850 = icmp eq i32 %849, 0
  br i1 %850, label %851, label %852

851:                                              ; preds = %847
  store float 0.000000e+00, ptr %85, align 4, !tbaa !11
  br label %852

852:                                              ; preds = %851, %847
  %853 = load ptr, ptr %39, align 8, !tbaa !5
  %854 = load i32, ptr %853, align 4, !tbaa !9
  %855 = load i32, ptr %95, align 4, !tbaa !9
  %856 = icmp slt i32 %854, %855
  br i1 %856, label %857, label %1165

857:                                              ; preds = %852
  store i32 0, ptr %98, align 4, !tbaa !9
  %858 = load ptr, ptr %39, align 8, !tbaa !5
  %859 = load i32, ptr %858, align 4, !tbaa !9
  %860 = add nsw i32 %859, 1
  store i32 %860, ptr %82, align 4, !tbaa !9
  br label %861

861:                                              ; preds = %1163, %857
  %862 = load i32, ptr %98, align 4, !tbaa !9
  %863 = icmp ne i32 %862, 0
  br i1 %863, label %864, label %865

864:                                              ; preds = %861
  br label %1164

865:                                              ; preds = %861
  store i32 1, ptr %98, align 4, !tbaa !9
  %866 = load i32, ptr %82, align 4, !tbaa !9
  %867 = sub nsw i32 %866, 1
  store i32 %867, ptr %74, align 4, !tbaa !9
  %868 = load i32, ptr %87, align 4, !tbaa !9
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr %82, align 4, !tbaa !9
  %870 = load i32, ptr %82, align 4, !tbaa !9
  %871 = load ptr, ptr %39, align 8, !tbaa !5
  %872 = load i32, ptr %871, align 4, !tbaa !9
  %873 = icmp eq i32 %870, %872
  br i1 %873, label %874, label %877

874:                                              ; preds = %865
  %875 = load i32, ptr %82, align 4, !tbaa !9
  %876 = add nsw i32 %875, 1
  store i32 %876, ptr %84, align 4, !tbaa !9
  br label %896

877:                                              ; preds = %865
  %878 = load ptr, ptr %46, align 8, !tbaa !5
  %879 = load i32, ptr %82, align 4, !tbaa !9
  %880 = add nsw i32 %879, 1
  %881 = load i32, ptr %82, align 4, !tbaa !9
  %882 = load i32, ptr %55, align 4, !tbaa !9
  %883 = mul nsw i32 %881, %882
  %884 = add nsw i32 %880, %883
  %885 = sext i32 %884 to i64
  %886 = getelementptr inbounds float, ptr %878, i64 %885
  %887 = load float, ptr %886, align 4, !tbaa !11
  %888 = fcmp oeq float %887, 0.000000e+00
  br i1 %888, label %889, label %892

889:                                              ; preds = %877
  %890 = load i32, ptr %82, align 4, !tbaa !9
  %891 = add nsw i32 %890, 1
  store i32 %891, ptr %84, align 4, !tbaa !9
  br label %895

892:                                              ; preds = %877
  %893 = load i32, ptr %82, align 4, !tbaa !9
  %894 = add nsw i32 %893, 2
  store i32 %894, ptr %84, align 4, !tbaa !9
  br label %895

895:                                              ; preds = %892, %889
  br label %896

896:                                              ; preds = %895, %874
  br label %897

897:                                              ; preds = %1162, %896
  %898 = load i32, ptr %84, align 4, !tbaa !9
  %899 = load i32, ptr %74, align 4, !tbaa !9
  %900 = icmp sle i32 %898, %899
  br i1 %900, label %901, label %1163

901:                                              ; preds = %897
  %902 = load i32, ptr %84, align 4, !tbaa !9
  %903 = load i32, ptr %82, align 4, !tbaa !9
  %904 = add nsw i32 %903, 1
  %905 = icmp eq i32 %902, %904
  br i1 %905, label %906, label %925

906:                                              ; preds = %901
  %907 = load ptr, ptr %46, align 8, !tbaa !5
  %908 = load i32, ptr %82, align 4, !tbaa !9
  %909 = load i32, ptr %82, align 4, !tbaa !9
  %910 = load i32, ptr %55, align 4, !tbaa !9
  %911 = mul nsw i32 %909, %910
  %912 = add nsw i32 %908, %911
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds float, ptr %907, i64 %913
  %915 = load float, ptr %914, align 4, !tbaa !11
  store float %915, ptr %67, align 4, !tbaa !11
  %916 = load float, ptr %67, align 4, !tbaa !11
  %917 = fcmp oge float %916, 0.000000e+00
  br i1 %917, label %918, label %920

918:                                              ; preds = %906
  %919 = load float, ptr %67, align 4, !tbaa !11
  br label %923

920:                                              ; preds = %906
  %921 = load float, ptr %67, align 4, !tbaa !11
  %922 = fneg float %921
  br label %923

923:                                              ; preds = %920, %918
  %924 = phi float [ %919, %918 ], [ %922, %920 ]
  store float %924, ptr %101, align 4, !tbaa !11
  br label %989

925:                                              ; preds = %901
  %926 = load ptr, ptr %46, align 8, !tbaa !5
  %927 = load i32, ptr %82, align 4, !tbaa !9
  %928 = load i32, ptr %82, align 4, !tbaa !9
  %929 = load i32, ptr %55, align 4, !tbaa !9
  %930 = mul nsw i32 %928, %929
  %931 = add nsw i32 %927, %930
  %932 = sext i32 %931 to i64
  %933 = getelementptr inbounds float, ptr %926, i64 %932
  %934 = load float, ptr %933, align 4, !tbaa !11
  store float %934, ptr %69, align 4, !tbaa !11
  %935 = load float, ptr %69, align 4, !tbaa !11
  %936 = fcmp oge float %935, 0.000000e+00
  br i1 %936, label %937, label %939

937:                                              ; preds = %925
  %938 = load float, ptr %69, align 4, !tbaa !11
  br label %942

939:                                              ; preds = %925
  %940 = load float, ptr %69, align 4, !tbaa !11
  %941 = fneg float %940
  br label %942

942:                                              ; preds = %939, %937
  %943 = phi float [ %938, %937 ], [ %941, %939 ]
  %944 = fpext float %943 to double
  %945 = load ptr, ptr %46, align 8, !tbaa !5
  %946 = load i32, ptr %82, align 4, !tbaa !9
  %947 = add nsw i32 %946, 1
  %948 = load i32, ptr %82, align 4, !tbaa !9
  %949 = load i32, ptr %55, align 4, !tbaa !9
  %950 = mul nsw i32 %948, %949
  %951 = add nsw i32 %947, %950
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds float, ptr %945, i64 %952
  %954 = load float, ptr %953, align 4, !tbaa !11
  store float %954, ptr %67, align 4, !tbaa !11
  %955 = load float, ptr %67, align 4, !tbaa !11
  %956 = fcmp oge float %955, 0.000000e+00
  br i1 %956, label %957, label %959

957:                                              ; preds = %942
  %958 = load float, ptr %67, align 4, !tbaa !11
  br label %962

959:                                              ; preds = %942
  %960 = load float, ptr %67, align 4, !tbaa !11
  %961 = fneg float %960
  br label %962

962:                                              ; preds = %959, %957
  %963 = phi float [ %958, %957 ], [ %961, %959 ]
  %964 = fpext float %963 to double
  %965 = call double @sqrt(double noundef %964) #5
  %966 = load ptr, ptr %46, align 8, !tbaa !5
  %967 = load i32, ptr %82, align 4, !tbaa !9
  %968 = load i32, ptr %82, align 4, !tbaa !9
  %969 = add nsw i32 %968, 1
  %970 = load i32, ptr %55, align 4, !tbaa !9
  %971 = mul nsw i32 %969, %970
  %972 = add nsw i32 %967, %971
  %973 = sext i32 %972 to i64
  %974 = getelementptr inbounds float, ptr %966, i64 %973
  %975 = load float, ptr %974, align 4, !tbaa !11
  store float %975, ptr %68, align 4, !tbaa !11
  %976 = load float, ptr %68, align 4, !tbaa !11
  %977 = fcmp oge float %976, 0.000000e+00
  br i1 %977, label %978, label %980

978:                                              ; preds = %962
  %979 = load float, ptr %68, align 4, !tbaa !11
  br label %983

980:                                              ; preds = %962
  %981 = load float, ptr %68, align 4, !tbaa !11
  %982 = fneg float %981
  br label %983

983:                                              ; preds = %980, %978
  %984 = phi float [ %979, %978 ], [ %982, %980 ]
  %985 = fpext float %984 to double
  %986 = call double @sqrt(double noundef %985) #5
  %987 = call double @llvm.fmuladd.f64(double %965, double %986, double %944)
  %988 = fptrunc double %987 to float
  store float %988, ptr %101, align 4, !tbaa !11
  br label %989

989:                                              ; preds = %983, %923
  %990 = load i32, ptr %84, align 4, !tbaa !9
  %991 = load i32, ptr %74, align 4, !tbaa !9
  %992 = icmp eq i32 %990, %991
  br i1 %992, label %993, label %1012

993:                                              ; preds = %989
  %994 = load ptr, ptr %46, align 8, !tbaa !5
  %995 = load i32, ptr %84, align 4, !tbaa !9
  %996 = load i32, ptr %84, align 4, !tbaa !9
  %997 = load i32, ptr %55, align 4, !tbaa !9
  %998 = mul nsw i32 %996, %997
  %999 = add nsw i32 %995, %998
  %1000 = sext i32 %999 to i64
  %1001 = getelementptr inbounds float, ptr %994, i64 %1000
  %1002 = load float, ptr %1001, align 4, !tbaa !11
  store float %1002, ptr %67, align 4, !tbaa !11
  %1003 = load float, ptr %67, align 4, !tbaa !11
  %1004 = fcmp oge float %1003, 0.000000e+00
  br i1 %1004, label %1005, label %1007

1005:                                             ; preds = %993
  %1006 = load float, ptr %67, align 4, !tbaa !11
  br label %1010

1007:                                             ; preds = %993
  %1008 = load float, ptr %67, align 4, !tbaa !11
  %1009 = fneg float %1008
  br label %1010

1010:                                             ; preds = %1007, %1005
  %1011 = phi float [ %1006, %1005 ], [ %1009, %1007 ]
  store float %1011, ptr %102, align 4, !tbaa !11
  br label %1108

1012:                                             ; preds = %989
  %1013 = load ptr, ptr %46, align 8, !tbaa !5
  %1014 = load i32, ptr %84, align 4, !tbaa !9
  %1015 = add nsw i32 %1014, 1
  %1016 = load i32, ptr %84, align 4, !tbaa !9
  %1017 = load i32, ptr %55, align 4, !tbaa !9
  %1018 = mul nsw i32 %1016, %1017
  %1019 = add nsw i32 %1015, %1018
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds float, ptr %1013, i64 %1020
  %1022 = load float, ptr %1021, align 4, !tbaa !11
  %1023 = fcmp oeq float %1022, 0.000000e+00
  br i1 %1023, label %1024, label %1043

1024:                                             ; preds = %1012
  %1025 = load ptr, ptr %46, align 8, !tbaa !5
  %1026 = load i32, ptr %84, align 4, !tbaa !9
  %1027 = load i32, ptr %84, align 4, !tbaa !9
  %1028 = load i32, ptr %55, align 4, !tbaa !9
  %1029 = mul nsw i32 %1027, %1028
  %1030 = add nsw i32 %1026, %1029
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds float, ptr %1025, i64 %1031
  %1033 = load float, ptr %1032, align 4, !tbaa !11
  store float %1033, ptr %67, align 4, !tbaa !11
  %1034 = load float, ptr %67, align 4, !tbaa !11
  %1035 = fcmp oge float %1034, 0.000000e+00
  br i1 %1035, label %1036, label %1038

1036:                                             ; preds = %1024
  %1037 = load float, ptr %67, align 4, !tbaa !11
  br label %1041

1038:                                             ; preds = %1024
  %1039 = load float, ptr %67, align 4, !tbaa !11
  %1040 = fneg float %1039
  br label %1041

1041:                                             ; preds = %1038, %1036
  %1042 = phi float [ %1037, %1036 ], [ %1040, %1038 ]
  store float %1042, ptr %102, align 4, !tbaa !11
  br label %1107

1043:                                             ; preds = %1012
  %1044 = load ptr, ptr %46, align 8, !tbaa !5
  %1045 = load i32, ptr %84, align 4, !tbaa !9
  %1046 = load i32, ptr %84, align 4, !tbaa !9
  %1047 = load i32, ptr %55, align 4, !tbaa !9
  %1048 = mul nsw i32 %1046, %1047
  %1049 = add nsw i32 %1045, %1048
  %1050 = sext i32 %1049 to i64
  %1051 = getelementptr inbounds float, ptr %1044, i64 %1050
  %1052 = load float, ptr %1051, align 4, !tbaa !11
  store float %1052, ptr %69, align 4, !tbaa !11
  %1053 = load float, ptr %69, align 4, !tbaa !11
  %1054 = fcmp oge float %1053, 0.000000e+00
  br i1 %1054, label %1055, label %1057

1055:                                             ; preds = %1043
  %1056 = load float, ptr %69, align 4, !tbaa !11
  br label %1060

1057:                                             ; preds = %1043
  %1058 = load float, ptr %69, align 4, !tbaa !11
  %1059 = fneg float %1058
  br label %1060

1060:                                             ; preds = %1057, %1055
  %1061 = phi float [ %1056, %1055 ], [ %1059, %1057 ]
  %1062 = fpext float %1061 to double
  %1063 = load ptr, ptr %46, align 8, !tbaa !5
  %1064 = load i32, ptr %84, align 4, !tbaa !9
  %1065 = add nsw i32 %1064, 1
  %1066 = load i32, ptr %84, align 4, !tbaa !9
  %1067 = load i32, ptr %55, align 4, !tbaa !9
  %1068 = mul nsw i32 %1066, %1067
  %1069 = add nsw i32 %1065, %1068
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds float, ptr %1063, i64 %1070
  %1072 = load float, ptr %1071, align 4, !tbaa !11
  store float %1072, ptr %67, align 4, !tbaa !11
  %1073 = load float, ptr %67, align 4, !tbaa !11
  %1074 = fcmp oge float %1073, 0.000000e+00
  br i1 %1074, label %1075, label %1077

1075:                                             ; preds = %1060
  %1076 = load float, ptr %67, align 4, !tbaa !11
  br label %1080

1077:                                             ; preds = %1060
  %1078 = load float, ptr %67, align 4, !tbaa !11
  %1079 = fneg float %1078
  br label %1080

1080:                                             ; preds = %1077, %1075
  %1081 = phi float [ %1076, %1075 ], [ %1079, %1077 ]
  %1082 = fpext float %1081 to double
  %1083 = call double @sqrt(double noundef %1082) #5
  %1084 = load ptr, ptr %46, align 8, !tbaa !5
  %1085 = load i32, ptr %84, align 4, !tbaa !9
  %1086 = load i32, ptr %84, align 4, !tbaa !9
  %1087 = add nsw i32 %1086, 1
  %1088 = load i32, ptr %55, align 4, !tbaa !9
  %1089 = mul nsw i32 %1087, %1088
  %1090 = add nsw i32 %1085, %1089
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds float, ptr %1084, i64 %1091
  %1093 = load float, ptr %1092, align 4, !tbaa !11
  store float %1093, ptr %68, align 4, !tbaa !11
  %1094 = load float, ptr %68, align 4, !tbaa !11
  %1095 = fcmp oge float %1094, 0.000000e+00
  br i1 %1095, label %1096, label %1098

1096:                                             ; preds = %1080
  %1097 = load float, ptr %68, align 4, !tbaa !11
  br label %1101

1098:                                             ; preds = %1080
  %1099 = load float, ptr %68, align 4, !tbaa !11
  %1100 = fneg float %1099
  br label %1101

1101:                                             ; preds = %1098, %1096
  %1102 = phi float [ %1097, %1096 ], [ %1100, %1098 ]
  %1103 = fpext float %1102 to double
  %1104 = call double @sqrt(double noundef %1103) #5
  %1105 = call double @llvm.fmuladd.f64(double %1083, double %1104, double %1062)
  %1106 = fptrunc double %1105 to float
  store float %1106, ptr %102, align 4, !tbaa !11
  br label %1107

1107:                                             ; preds = %1101, %1041
  br label %1108

1108:                                             ; preds = %1107, %1010
  %1109 = load float, ptr %101, align 4, !tbaa !11
  %1110 = load float, ptr %102, align 4, !tbaa !11
  %1111 = fcmp oge float %1109, %1110
  br i1 %1111, label %1112, label %1114

1112:                                             ; preds = %1108
  %1113 = load i32, ptr %84, align 4, !tbaa !9
  store i32 %1113, ptr %82, align 4, !tbaa !9
  br label %1136

1114:                                             ; preds = %1108
  store i32 0, ptr %98, align 4, !tbaa !9
  %1115 = load i32, ptr %82, align 4, !tbaa !9
  store i32 %1115, ptr %78, align 4, !tbaa !9
  %1116 = load i32, ptr %84, align 4, !tbaa !9
  store i32 %1116, ptr %79, align 4, !tbaa !9
  %1117 = load ptr, ptr %46, align 8, !tbaa !5
  %1118 = load i32, ptr %56, align 4, !tbaa !9
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds float, ptr %1117, i64 %1119
  %1121 = load ptr, ptr %47, align 8, !tbaa !5
  %1122 = load ptr, ptr %43, align 8, !tbaa !5
  %1123 = load i32, ptr %58, align 4, !tbaa !9
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds float, ptr %1122, i64 %1124
  %1126 = load ptr, ptr %44, align 8, !tbaa !5
  %1127 = load ptr, ptr %51, align 8, !tbaa !5
  %1128 = getelementptr inbounds float, ptr %1127, i64 1
  call void @strexc_(ptr noundef @.str.8, ptr noundef %95, ptr noundef %1120, ptr noundef %1121, ptr noundef %1125, ptr noundef %1126, ptr noundef %78, ptr noundef %79, ptr noundef %1128, ptr noundef %76)
  %1129 = load i32, ptr %76, align 4, !tbaa !9
  %1130 = icmp eq i32 %1129, 0
  br i1 %1130, label %1131, label %1133

1131:                                             ; preds = %1114
  %1132 = load i32, ptr %79, align 4, !tbaa !9
  store i32 %1132, ptr %82, align 4, !tbaa !9
  br label %1135

1133:                                             ; preds = %1114
  %1134 = load i32, ptr %84, align 4, !tbaa !9
  store i32 %1134, ptr %82, align 4, !tbaa !9
  br label %1135

1135:                                             ; preds = %1133, %1131
  br label %1136

1136:                                             ; preds = %1135, %1112
  %1137 = load i32, ptr %82, align 4, !tbaa !9
  %1138 = load i32, ptr %74, align 4, !tbaa !9
  %1139 = icmp eq i32 %1137, %1138
  br i1 %1139, label %1140, label %1143

1140:                                             ; preds = %1136
  %1141 = load i32, ptr %82, align 4, !tbaa !9
  %1142 = add nsw i32 %1141, 1
  store i32 %1142, ptr %84, align 4, !tbaa !9
  br label %1162

1143:                                             ; preds = %1136
  %1144 = load ptr, ptr %46, align 8, !tbaa !5
  %1145 = load i32, ptr %82, align 4, !tbaa !9
  %1146 = add nsw i32 %1145, 1
  %1147 = load i32, ptr %82, align 4, !tbaa !9
  %1148 = load i32, ptr %55, align 4, !tbaa !9
  %1149 = mul nsw i32 %1147, %1148
  %1150 = add nsw i32 %1146, %1149
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr inbounds float, ptr %1144, i64 %1151
  %1153 = load float, ptr %1152, align 4, !tbaa !11
  %1154 = fcmp oeq float %1153, 0.000000e+00
  br i1 %1154, label %1155, label %1158

1155:                                             ; preds = %1143
  %1156 = load i32, ptr %82, align 4, !tbaa !9
  %1157 = add nsw i32 %1156, 1
  store i32 %1157, ptr %84, align 4, !tbaa !9
  br label %1161

1158:                                             ; preds = %1143
  %1159 = load i32, ptr %82, align 4, !tbaa !9
  %1160 = add nsw i32 %1159, 2
  store i32 %1160, ptr %84, align 4, !tbaa !9
  br label %1161

1161:                                             ; preds = %1158, %1155
  br label %1162

1162:                                             ; preds = %1161, %1140
  br label %897

1163:                                             ; preds = %897
  br label %861

1164:                                             ; preds = %864
  br label %1165

1165:                                             ; preds = %1164, %852
  %1166 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %1166, ptr %82, align 4, !tbaa !9
  br label %1167

1167:                                             ; preds = %1313, %1165
  %1168 = load i32, ptr %82, align 4, !tbaa !9
  %1169 = load i32, ptr %87, align 4, !tbaa !9
  %1170 = add nsw i32 %1169, 1
  %1171 = icmp sge i32 %1168, %1170
  br i1 %1171, label %1172, label %1314

1172:                                             ; preds = %1167
  %1173 = load i32, ptr %82, align 4, !tbaa !9
  %1174 = load i32, ptr %87, align 4, !tbaa !9
  %1175 = add nsw i32 %1174, 1
  %1176 = icmp eq i32 %1173, %1175
  br i1 %1176, label %1177, label %1203

1177:                                             ; preds = %1172
  %1178 = load ptr, ptr %46, align 8, !tbaa !5
  %1179 = load i32, ptr %82, align 4, !tbaa !9
  %1180 = load i32, ptr %82, align 4, !tbaa !9
  %1181 = load i32, ptr %55, align 4, !tbaa !9
  %1182 = mul nsw i32 %1180, %1181
  %1183 = add nsw i32 %1179, %1182
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds float, ptr %1178, i64 %1184
  %1186 = load float, ptr %1185, align 4, !tbaa !11
  %1187 = load ptr, ptr %41, align 8, !tbaa !5
  %1188 = load i32, ptr %88, align 4, !tbaa !9
  %1189 = load i32, ptr %82, align 4, !tbaa !9
  %1190 = add nsw i32 %1188, %1189
  %1191 = sub nsw i32 %1190, 1
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds float, ptr %1187, i64 %1192
  store float %1186, ptr %1193, align 4, !tbaa !11
  %1194 = load ptr, ptr %42, align 8, !tbaa !5
  %1195 = load i32, ptr %88, align 4, !tbaa !9
  %1196 = load i32, ptr %82, align 4, !tbaa !9
  %1197 = add nsw i32 %1195, %1196
  %1198 = sub nsw i32 %1197, 1
  %1199 = sext i32 %1198 to i64
  %1200 = getelementptr inbounds float, ptr %1194, i64 %1199
  store float 0.000000e+00, ptr %1200, align 4, !tbaa !11
  %1201 = load i32, ptr %82, align 4, !tbaa !9
  %1202 = add nsw i32 %1201, -1
  store i32 %1202, ptr %82, align 4, !tbaa !9
  br label %1313

1203:                                             ; preds = %1172
  %1204 = load ptr, ptr %46, align 8, !tbaa !5
  %1205 = load i32, ptr %82, align 4, !tbaa !9
  %1206 = load i32, ptr %82, align 4, !tbaa !9
  %1207 = sub nsw i32 %1206, 1
  %1208 = load i32, ptr %55, align 4, !tbaa !9
  %1209 = mul nsw i32 %1207, %1208
  %1210 = add nsw i32 %1205, %1209
  %1211 = sext i32 %1210 to i64
  %1212 = getelementptr inbounds float, ptr %1204, i64 %1211
  %1213 = load float, ptr %1212, align 4, !tbaa !11
  %1214 = fcmp oeq float %1213, 0.000000e+00
  br i1 %1214, label %1215, label %1241

1215:                                             ; preds = %1203
  %1216 = load ptr, ptr %46, align 8, !tbaa !5
  %1217 = load i32, ptr %82, align 4, !tbaa !9
  %1218 = load i32, ptr %82, align 4, !tbaa !9
  %1219 = load i32, ptr %55, align 4, !tbaa !9
  %1220 = mul nsw i32 %1218, %1219
  %1221 = add nsw i32 %1217, %1220
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds float, ptr %1216, i64 %1222
  %1224 = load float, ptr %1223, align 4, !tbaa !11
  %1225 = load ptr, ptr %41, align 8, !tbaa !5
  %1226 = load i32, ptr %88, align 4, !tbaa !9
  %1227 = load i32, ptr %82, align 4, !tbaa !9
  %1228 = add nsw i32 %1226, %1227
  %1229 = sub nsw i32 %1228, 1
  %1230 = sext i32 %1229 to i64
  %1231 = getelementptr inbounds float, ptr %1225, i64 %1230
  store float %1224, ptr %1231, align 4, !tbaa !11
  %1232 = load ptr, ptr %42, align 8, !tbaa !5
  %1233 = load i32, ptr %88, align 4, !tbaa !9
  %1234 = load i32, ptr %82, align 4, !tbaa !9
  %1235 = add nsw i32 %1233, %1234
  %1236 = sub nsw i32 %1235, 1
  %1237 = sext i32 %1236 to i64
  %1238 = getelementptr inbounds float, ptr %1232, i64 %1237
  store float 0.000000e+00, ptr %1238, align 4, !tbaa !11
  %1239 = load i32, ptr %82, align 4, !tbaa !9
  %1240 = add nsw i32 %1239, -1
  store i32 %1240, ptr %82, align 4, !tbaa !9
  br label %1312

1241:                                             ; preds = %1203
  %1242 = load ptr, ptr %46, align 8, !tbaa !5
  %1243 = load i32, ptr %82, align 4, !tbaa !9
  %1244 = sub nsw i32 %1243, 1
  %1245 = load i32, ptr %82, align 4, !tbaa !9
  %1246 = sub nsw i32 %1245, 1
  %1247 = load i32, ptr %55, align 4, !tbaa !9
  %1248 = mul nsw i32 %1246, %1247
  %1249 = add nsw i32 %1244, %1248
  %1250 = sext i32 %1249 to i64
  %1251 = getelementptr inbounds float, ptr %1242, i64 %1250
  %1252 = load float, ptr %1251, align 4, !tbaa !11
  store float %1252, ptr %89, align 4, !tbaa !11
  %1253 = load ptr, ptr %46, align 8, !tbaa !5
  %1254 = load i32, ptr %82, align 4, !tbaa !9
  %1255 = load i32, ptr %82, align 4, !tbaa !9
  %1256 = sub nsw i32 %1255, 1
  %1257 = load i32, ptr %55, align 4, !tbaa !9
  %1258 = mul nsw i32 %1256, %1257
  %1259 = add nsw i32 %1254, %1258
  %1260 = sext i32 %1259 to i64
  %1261 = getelementptr inbounds float, ptr %1253, i64 %1260
  %1262 = load float, ptr %1261, align 4, !tbaa !11
  store float %1262, ptr %91, align 4, !tbaa !11
  %1263 = load ptr, ptr %46, align 8, !tbaa !5
  %1264 = load i32, ptr %82, align 4, !tbaa !9
  %1265 = sub nsw i32 %1264, 1
  %1266 = load i32, ptr %82, align 4, !tbaa !9
  %1267 = load i32, ptr %55, align 4, !tbaa !9
  %1268 = mul nsw i32 %1266, %1267
  %1269 = add nsw i32 %1265, %1268
  %1270 = sext i32 %1269 to i64
  %1271 = getelementptr inbounds float, ptr %1263, i64 %1270
  %1272 = load float, ptr %1271, align 4, !tbaa !11
  store float %1272, ptr %90, align 4, !tbaa !11
  %1273 = load ptr, ptr %46, align 8, !tbaa !5
  %1274 = load i32, ptr %82, align 4, !tbaa !9
  %1275 = load i32, ptr %82, align 4, !tbaa !9
  %1276 = load i32, ptr %55, align 4, !tbaa !9
  %1277 = mul nsw i32 %1275, %1276
  %1278 = add nsw i32 %1274, %1277
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds float, ptr %1273, i64 %1279
  %1281 = load float, ptr %1280, align 4, !tbaa !11
  store float %1281, ptr %92, align 4, !tbaa !11
  %1282 = load ptr, ptr %41, align 8, !tbaa !5
  %1283 = load i32, ptr %88, align 4, !tbaa !9
  %1284 = load i32, ptr %82, align 4, !tbaa !9
  %1285 = add nsw i32 %1283, %1284
  %1286 = sub nsw i32 %1285, 2
  %1287 = sext i32 %1286 to i64
  %1288 = getelementptr inbounds float, ptr %1282, i64 %1287
  %1289 = load ptr, ptr %42, align 8, !tbaa !5
  %1290 = load i32, ptr %88, align 4, !tbaa !9
  %1291 = load i32, ptr %82, align 4, !tbaa !9
  %1292 = add nsw i32 %1290, %1291
  %1293 = sub nsw i32 %1292, 2
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds float, ptr %1289, i64 %1294
  %1296 = load ptr, ptr %41, align 8, !tbaa !5
  %1297 = load i32, ptr %88, align 4, !tbaa !9
  %1298 = load i32, ptr %82, align 4, !tbaa !9
  %1299 = add nsw i32 %1297, %1298
  %1300 = sub nsw i32 %1299, 1
  %1301 = sext i32 %1300 to i64
  %1302 = getelementptr inbounds float, ptr %1296, i64 %1301
  %1303 = load ptr, ptr %42, align 8, !tbaa !5
  %1304 = load i32, ptr %88, align 4, !tbaa !9
  %1305 = load i32, ptr %82, align 4, !tbaa !9
  %1306 = add nsw i32 %1304, %1305
  %1307 = sub nsw i32 %1306, 1
  %1308 = sext i32 %1307 to i64
  %1309 = getelementptr inbounds float, ptr %1303, i64 %1308
  call void @slanv2_(ptr noundef %89, ptr noundef %90, ptr noundef %91, ptr noundef %92, ptr noundef %1288, ptr noundef %1295, ptr noundef %1302, ptr noundef %1309, ptr noundef %93, ptr noundef %94)
  %1310 = load i32, ptr %82, align 4, !tbaa !9
  %1311 = add nsw i32 %1310, -2
  store i32 %1311, ptr %82, align 4, !tbaa !9
  br label %1312

1312:                                             ; preds = %1241, %1215
  br label %1313

1313:                                             ; preds = %1312, %1177
  br label %1167

1314:                                             ; preds = %1167
  %1315 = load ptr, ptr %39, align 8, !tbaa !5
  %1316 = load i32, ptr %1315, align 4, !tbaa !9
  %1317 = load i32, ptr %95, align 4, !tbaa !9
  %1318 = icmp slt i32 %1316, %1317
  br i1 %1318, label %1322, label %1319

1319:                                             ; preds = %1314
  %1320 = load float, ptr %85, align 4, !tbaa !11
  %1321 = fcmp oeq float %1320, 0.000000e+00
  br i1 %1321, label %1322, label %1749

1322:                                             ; preds = %1319, %1314
  %1323 = load ptr, ptr %39, align 8, !tbaa !5
  %1324 = load i32, ptr %1323, align 4, !tbaa !9
  %1325 = icmp sgt i32 %1324, 1
  br i1 %1325, label %1326, label %1413

1326:                                             ; preds = %1322
  %1327 = load float, ptr %85, align 4, !tbaa !11
  %1328 = fcmp une float %1327, 0.000000e+00
  br i1 %1328, label %1329, label %1413

1329:                                             ; preds = %1326
  %1330 = load ptr, ptr %39, align 8, !tbaa !5
  %1331 = load ptr, ptr %43, align 8, !tbaa !5
  %1332 = load i32, ptr %58, align 4, !tbaa !9
  %1333 = sext i32 %1332 to i64
  %1334 = getelementptr inbounds float, ptr %1331, i64 %1333
  %1335 = load ptr, ptr %44, align 8, !tbaa !5
  %1336 = load ptr, ptr %51, align 8, !tbaa !5
  %1337 = getelementptr inbounds float, ptr %1336, i64 1
  call void @scopy_(ptr noundef %1330, ptr noundef %1334, ptr noundef %1335, ptr noundef %1337, ptr noundef @c__1)
  %1338 = load ptr, ptr %51, align 8, !tbaa !5
  %1339 = getelementptr inbounds float, ptr %1338, i64 1
  %1340 = load float, ptr %1339, align 4, !tbaa !11
  store float %1340, ptr %73, align 4, !tbaa !11
  %1341 = load ptr, ptr %39, align 8, !tbaa !5
  %1342 = load ptr, ptr %51, align 8, !tbaa !5
  %1343 = getelementptr inbounds float, ptr %1342, i64 2
  call void @slarfg_(ptr noundef %1341, ptr noundef %73, ptr noundef %1343, ptr noundef @c__1, ptr noundef %105)
  %1344 = load ptr, ptr %51, align 8, !tbaa !5
  %1345 = getelementptr inbounds float, ptr %1344, i64 1
  store float 1.000000e+00, ptr %1345, align 4, !tbaa !11
  %1346 = load i32, ptr %95, align 4, !tbaa !9
  %1347 = sub nsw i32 %1346, 2
  store i32 %1347, ptr %63, align 4, !tbaa !9
  %1348 = load i32, ptr %95, align 4, !tbaa !9
  %1349 = sub nsw i32 %1348, 2
  store i32 %1349, ptr %64, align 4, !tbaa !9
  %1350 = load ptr, ptr %46, align 8, !tbaa !5
  %1351 = load i32, ptr %55, align 4, !tbaa !9
  %1352 = add nsw i32 %1351, 3
  %1353 = sext i32 %1352 to i64
  %1354 = getelementptr inbounds float, ptr %1350, i64 %1353
  %1355 = load ptr, ptr %47, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.9, ptr noundef %63, ptr noundef %64, ptr noundef @c_b17, ptr noundef @c_b17, ptr noundef %1354, ptr noundef %1355)
  %1356 = load ptr, ptr %39, align 8, !tbaa !5
  %1357 = load ptr, ptr %51, align 8, !tbaa !5
  %1358 = getelementptr inbounds float, ptr %1357, i64 1
  %1359 = load ptr, ptr %46, align 8, !tbaa !5
  %1360 = load i32, ptr %56, align 4, !tbaa !9
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds float, ptr %1359, i64 %1361
  %1363 = load ptr, ptr %47, align 8, !tbaa !5
  %1364 = load ptr, ptr %51, align 8, !tbaa !5
  %1365 = load i32, ptr %95, align 4, !tbaa !9
  %1366 = add nsw i32 %1365, 1
  %1367 = sext i32 %1366 to i64
  %1368 = getelementptr inbounds float, ptr %1364, i64 %1367
  call void @slarf_(ptr noundef @.str.9, ptr noundef %1356, ptr noundef %95, ptr noundef %1358, ptr noundef @c__1, ptr noundef %105, ptr noundef %1362, ptr noundef %1363, ptr noundef %1368)
  %1369 = load ptr, ptr %39, align 8, !tbaa !5
  %1370 = load ptr, ptr %39, align 8, !tbaa !5
  %1371 = load ptr, ptr %51, align 8, !tbaa !5
  %1372 = getelementptr inbounds float, ptr %1371, i64 1
  %1373 = load ptr, ptr %46, align 8, !tbaa !5
  %1374 = load i32, ptr %56, align 4, !tbaa !9
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds float, ptr %1373, i64 %1375
  %1377 = load ptr, ptr %47, align 8, !tbaa !5
  %1378 = load ptr, ptr %51, align 8, !tbaa !5
  %1379 = load i32, ptr %95, align 4, !tbaa !9
  %1380 = add nsw i32 %1379, 1
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds float, ptr %1378, i64 %1381
  call void @slarf_(ptr noundef @.str, ptr noundef %1369, ptr noundef %1370, ptr noundef %1372, ptr noundef @c__1, ptr noundef %105, ptr noundef %1376, ptr noundef %1377, ptr noundef %1382)
  %1383 = load ptr, ptr %39, align 8, !tbaa !5
  %1384 = load ptr, ptr %51, align 8, !tbaa !5
  %1385 = getelementptr inbounds float, ptr %1384, i64 1
  %1386 = load ptr, ptr %43, align 8, !tbaa !5
  %1387 = load i32, ptr %58, align 4, !tbaa !9
  %1388 = sext i32 %1387 to i64
  %1389 = getelementptr inbounds float, ptr %1386, i64 %1388
  %1390 = load ptr, ptr %44, align 8, !tbaa !5
  %1391 = load ptr, ptr %51, align 8, !tbaa !5
  %1392 = load i32, ptr %95, align 4, !tbaa !9
  %1393 = add nsw i32 %1392, 1
  %1394 = sext i32 %1393 to i64
  %1395 = getelementptr inbounds float, ptr %1391, i64 %1394
  call void @slarf_(ptr noundef @.str, ptr noundef %95, ptr noundef %1383, ptr noundef %1385, ptr noundef @c__1, ptr noundef %105, ptr noundef %1389, ptr noundef %1390, ptr noundef %1395)
  %1396 = load ptr, ptr %52, align 8, !tbaa !5
  %1397 = load i32, ptr %1396, align 4, !tbaa !9
  %1398 = load i32, ptr %95, align 4, !tbaa !9
  %1399 = sub nsw i32 %1397, %1398
  store i32 %1399, ptr %63, align 4, !tbaa !9
  %1400 = load ptr, ptr %39, align 8, !tbaa !5
  %1401 = load ptr, ptr %46, align 8, !tbaa !5
  %1402 = load i32, ptr %56, align 4, !tbaa !9
  %1403 = sext i32 %1402 to i64
  %1404 = getelementptr inbounds float, ptr %1401, i64 %1403
  %1405 = load ptr, ptr %47, align 8, !tbaa !5
  %1406 = load ptr, ptr %51, align 8, !tbaa !5
  %1407 = getelementptr inbounds float, ptr %1406, i64 1
  %1408 = load ptr, ptr %51, align 8, !tbaa !5
  %1409 = load i32, ptr %95, align 4, !tbaa !9
  %1410 = add nsw i32 %1409, 1
  %1411 = sext i32 %1410 to i64
  %1412 = getelementptr inbounds float, ptr %1408, i64 %1411
  call void @sgehrd_(ptr noundef %95, ptr noundef @c__1, ptr noundef %1400, ptr noundef %1404, ptr noundef %1405, ptr noundef %1407, ptr noundef %1412, ptr noundef %63, ptr noundef %76)
  br label %1413

1413:                                             ; preds = %1329, %1326, %1322
  %1414 = load i32, ptr %88, align 4, !tbaa !9
  %1415 = icmp sgt i32 %1414, 1
  br i1 %1415, label %1416, label %1434

1416:                                             ; preds = %1413
  %1417 = load float, ptr %85, align 4, !tbaa !11
  %1418 = load ptr, ptr %43, align 8, !tbaa !5
  %1419 = load i32, ptr %57, align 4, !tbaa !9
  %1420 = add nsw i32 %1419, 1
  %1421 = sext i32 %1420 to i64
  %1422 = getelementptr inbounds float, ptr %1418, i64 %1421
  %1423 = load float, ptr %1422, align 4, !tbaa !11
  %1424 = fmul float %1417, %1423
  %1425 = load ptr, ptr %33, align 8, !tbaa !5
  %1426 = load i32, ptr %88, align 4, !tbaa !9
  %1427 = load i32, ptr %88, align 4, !tbaa !9
  %1428 = sub nsw i32 %1427, 1
  %1429 = load i32, ptr %53, align 4, !tbaa !9
  %1430 = mul nsw i32 %1428, %1429
  %1431 = add nsw i32 %1426, %1430
  %1432 = sext i32 %1431 to i64
  %1433 = getelementptr inbounds float, ptr %1425, i64 %1432
  store float %1424, ptr %1433, align 4, !tbaa !11
  br label %1434

1434:                                             ; preds = %1416, %1413
  %1435 = load ptr, ptr %46, align 8, !tbaa !5
  %1436 = load i32, ptr %56, align 4, !tbaa !9
  %1437 = sext i32 %1436 to i64
  %1438 = getelementptr inbounds float, ptr %1435, i64 %1437
  %1439 = load ptr, ptr %47, align 8, !tbaa !5
  %1440 = load ptr, ptr %33, align 8, !tbaa !5
  %1441 = load i32, ptr %88, align 4, !tbaa !9
  %1442 = load i32, ptr %88, align 4, !tbaa !9
  %1443 = load i32, ptr %53, align 4, !tbaa !9
  %1444 = mul nsw i32 %1442, %1443
  %1445 = add nsw i32 %1441, %1444
  %1446 = sext i32 %1445 to i64
  %1447 = getelementptr inbounds float, ptr %1440, i64 %1446
  %1448 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.4, ptr noundef %95, ptr noundef %95, ptr noundef %1438, ptr noundef %1439, ptr noundef %1447, ptr noundef %1448)
  %1449 = load i32, ptr %95, align 4, !tbaa !9
  %1450 = sub nsw i32 %1449, 1
  store i32 %1450, ptr %63, align 4, !tbaa !9
  %1451 = load ptr, ptr %47, align 8, !tbaa !5
  %1452 = load i32, ptr %1451, align 4, !tbaa !9
  %1453 = add nsw i32 %1452, 1
  store i32 %1453, ptr %64, align 4, !tbaa !9
  %1454 = load ptr, ptr %34, align 8, !tbaa !5
  %1455 = load i32, ptr %1454, align 4, !tbaa !9
  %1456 = add nsw i32 %1455, 1
  store i32 %1456, ptr %65, align 4, !tbaa !9
  %1457 = load ptr, ptr %46, align 8, !tbaa !5
  %1458 = load i32, ptr %55, align 4, !tbaa !9
  %1459 = add nsw i32 %1458, 2
  %1460 = sext i32 %1459 to i64
  %1461 = getelementptr inbounds float, ptr %1457, i64 %1460
  %1462 = load ptr, ptr %33, align 8, !tbaa !5
  %1463 = load i32, ptr %88, align 4, !tbaa !9
  %1464 = add nsw i32 %1463, 1
  %1465 = load i32, ptr %88, align 4, !tbaa !9
  %1466 = load i32, ptr %53, align 4, !tbaa !9
  %1467 = mul nsw i32 %1465, %1466
  %1468 = add nsw i32 %1464, %1467
  %1469 = sext i32 %1468 to i64
  %1470 = getelementptr inbounds float, ptr %1462, i64 %1469
  call void @scopy_(ptr noundef %63, ptr noundef %1461, ptr noundef %64, ptr noundef %1470, ptr noundef %65)
  %1471 = load ptr, ptr %39, align 8, !tbaa !5
  %1472 = load i32, ptr %1471, align 4, !tbaa !9
  %1473 = icmp sgt i32 %1472, 1
  br i1 %1473, label %1474, label %1501

1474:                                             ; preds = %1434
  %1475 = load float, ptr %85, align 4, !tbaa !11
  %1476 = fcmp une float %1475, 0.000000e+00
  br i1 %1476, label %1477, label %1501

1477:                                             ; preds = %1474
  %1478 = load ptr, ptr %52, align 8, !tbaa !5
  %1479 = load i32, ptr %1478, align 4, !tbaa !9
  %1480 = load i32, ptr %95, align 4, !tbaa !9
  %1481 = sub nsw i32 %1479, %1480
  store i32 %1481, ptr %63, align 4, !tbaa !9
  %1482 = load ptr, ptr %39, align 8, !tbaa !5
  %1483 = load ptr, ptr %39, align 8, !tbaa !5
  %1484 = load ptr, ptr %46, align 8, !tbaa !5
  %1485 = load i32, ptr %56, align 4, !tbaa !9
  %1486 = sext i32 %1485 to i64
  %1487 = getelementptr inbounds float, ptr %1484, i64 %1486
  %1488 = load ptr, ptr %47, align 8, !tbaa !5
  %1489 = load ptr, ptr %51, align 8, !tbaa !5
  %1490 = getelementptr inbounds float, ptr %1489, i64 1
  %1491 = load ptr, ptr %43, align 8, !tbaa !5
  %1492 = load i32, ptr %58, align 4, !tbaa !9
  %1493 = sext i32 %1492 to i64
  %1494 = getelementptr inbounds float, ptr %1491, i64 %1493
  %1495 = load ptr, ptr %44, align 8, !tbaa !5
  %1496 = load ptr, ptr %51, align 8, !tbaa !5
  %1497 = load i32, ptr %95, align 4, !tbaa !9
  %1498 = add nsw i32 %1497, 1
  %1499 = sext i32 %1498 to i64
  %1500 = getelementptr inbounds float, ptr %1496, i64 %1499
  call void @sormhr_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %95, ptr noundef %1482, ptr noundef @c__1, ptr noundef %1483, ptr noundef %1487, ptr noundef %1488, ptr noundef %1490, ptr noundef %1494, ptr noundef %1495, ptr noundef %1500, ptr noundef %63, ptr noundef %76)
  br label %1501

1501:                                             ; preds = %1477, %1474, %1434
  %1502 = load ptr, ptr %27, align 8, !tbaa !5
  %1503 = load i32, ptr %1502, align 4, !tbaa !9
  %1504 = icmp ne i32 %1503, 0
  br i1 %1504, label %1505, label %1506

1505:                                             ; preds = %1501
  store i32 1, ptr %80, align 4, !tbaa !9
  br label %1509

1506:                                             ; preds = %1501
  %1507 = load ptr, ptr %30, align 8, !tbaa !5
  %1508 = load i32, ptr %1507, align 4, !tbaa !9
  store i32 %1508, ptr %80, align 4, !tbaa !9
  br label %1509

1509:                                             ; preds = %1506, %1505
  %1510 = load i32, ptr %88, align 4, !tbaa !9
  %1511 = sub nsw i32 %1510, 1
  store i32 %1511, ptr %63, align 4, !tbaa !9
  %1512 = load ptr, ptr %48, align 8, !tbaa !5
  %1513 = load i32, ptr %1512, align 4, !tbaa !9
  store i32 %1513, ptr %64, align 4, !tbaa !9
  %1514 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %1514, ptr %81, align 4, !tbaa !9
  br label %1515

1515:                                             ; preds = %1579, %1509
  %1516 = load i32, ptr %64, align 4, !tbaa !9
  %1517 = icmp slt i32 %1516, 0
  br i1 %1517, label %1518, label %1523

1518:                                             ; preds = %1515
  %1519 = load i32, ptr %81, align 4, !tbaa !9
  %1520 = load i32, ptr %63, align 4, !tbaa !9
  %1521 = icmp sge i32 %1519, %1520
  %1522 = zext i1 %1521 to i32
  br label %1528

1523:                                             ; preds = %1515
  %1524 = load i32, ptr %81, align 4, !tbaa !9
  %1525 = load i32, ptr %63, align 4, !tbaa !9
  %1526 = icmp sle i32 %1524, %1525
  %1527 = zext i1 %1526 to i32
  br label %1528

1528:                                             ; preds = %1523, %1518
  %1529 = phi i32 [ %1522, %1518 ], [ %1527, %1523 ]
  %1530 = icmp ne i32 %1529, 0
  br i1 %1530, label %1531, label %1583

1531:                                             ; preds = %1528
  %1532 = load ptr, ptr %48, align 8, !tbaa !5
  %1533 = load i32, ptr %1532, align 4, !tbaa !9
  store i32 %1533, ptr %65, align 4, !tbaa !9
  %1534 = load i32, ptr %88, align 4, !tbaa !9
  %1535 = load i32, ptr %81, align 4, !tbaa !9
  %1536 = sub nsw i32 %1534, %1535
  store i32 %1536, ptr %66, align 4, !tbaa !9
  %1537 = load i32, ptr %65, align 4, !tbaa !9
  %1538 = load i32, ptr %66, align 4, !tbaa !9
  %1539 = icmp sle i32 %1537, %1538
  br i1 %1539, label %1540, label %1542

1540:                                             ; preds = %1531
  %1541 = load i32, ptr %65, align 4, !tbaa !9
  br label %1544

1542:                                             ; preds = %1531
  %1543 = load i32, ptr %66, align 4, !tbaa !9
  br label %1544

1544:                                             ; preds = %1542, %1540
  %1545 = phi i32 [ %1541, %1540 ], [ %1543, %1542 ]
  store i32 %1545, ptr %104, align 4, !tbaa !9
  %1546 = load ptr, ptr %33, align 8, !tbaa !5
  %1547 = load i32, ptr %81, align 4, !tbaa !9
  %1548 = load i32, ptr %88, align 4, !tbaa !9
  %1549 = load i32, ptr %53, align 4, !tbaa !9
  %1550 = mul nsw i32 %1548, %1549
  %1551 = add nsw i32 %1547, %1550
  %1552 = sext i32 %1551 to i64
  %1553 = getelementptr inbounds float, ptr %1546, i64 %1552
  %1554 = load ptr, ptr %34, align 8, !tbaa !5
  %1555 = load ptr, ptr %43, align 8, !tbaa !5
  %1556 = load i32, ptr %58, align 4, !tbaa !9
  %1557 = sext i32 %1556 to i64
  %1558 = getelementptr inbounds float, ptr %1555, i64 %1557
  %1559 = load ptr, ptr %44, align 8, !tbaa !5
  %1560 = load ptr, ptr %49, align 8, !tbaa !5
  %1561 = load i32, ptr %60, align 4, !tbaa !9
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds float, ptr %1560, i64 %1562
  %1564 = load ptr, ptr %50, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str.1, ptr noundef %104, ptr noundef %95, ptr noundef %95, ptr noundef @c_b18, ptr noundef %1553, ptr noundef %1554, ptr noundef %1558, ptr noundef %1559, ptr noundef @c_b17, ptr noundef %1563, ptr noundef %1564)
  %1565 = load ptr, ptr %49, align 8, !tbaa !5
  %1566 = load i32, ptr %60, align 4, !tbaa !9
  %1567 = sext i32 %1566 to i64
  %1568 = getelementptr inbounds float, ptr %1565, i64 %1567
  %1569 = load ptr, ptr %50, align 8, !tbaa !5
  %1570 = load ptr, ptr %33, align 8, !tbaa !5
  %1571 = load i32, ptr %81, align 4, !tbaa !9
  %1572 = load i32, ptr %88, align 4, !tbaa !9
  %1573 = load i32, ptr %53, align 4, !tbaa !9
  %1574 = mul nsw i32 %1572, %1573
  %1575 = add nsw i32 %1571, %1574
  %1576 = sext i32 %1575 to i64
  %1577 = getelementptr inbounds float, ptr %1570, i64 %1576
  %1578 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %104, ptr noundef %95, ptr noundef %1568, ptr noundef %1569, ptr noundef %1577, ptr noundef %1578)
  br label %1579

1579:                                             ; preds = %1544
  %1580 = load i32, ptr %64, align 4, !tbaa !9
  %1581 = load i32, ptr %81, align 4, !tbaa !9
  %1582 = add nsw i32 %1581, %1580
  store i32 %1582, ptr %81, align 4, !tbaa !9
  br label %1515, !llvm.loop !15

1583:                                             ; preds = %1528
  %1584 = load ptr, ptr %27, align 8, !tbaa !5
  %1585 = load i32, ptr %1584, align 4, !tbaa !9
  %1586 = icmp ne i32 %1585, 0
  br i1 %1586, label %1587, label %1666

1587:                                             ; preds = %1583
  %1588 = load ptr, ptr %29, align 8, !tbaa !5
  %1589 = load i32, ptr %1588, align 4, !tbaa !9
  store i32 %1589, ptr %64, align 4, !tbaa !9
  %1590 = load ptr, ptr %45, align 8, !tbaa !5
  %1591 = load i32, ptr %1590, align 4, !tbaa !9
  store i32 %1591, ptr %63, align 4, !tbaa !9
  %1592 = load ptr, ptr %31, align 8, !tbaa !5
  %1593 = load i32, ptr %1592, align 4, !tbaa !9
  %1594 = add nsw i32 %1593, 1
  store i32 %1594, ptr %75, align 4, !tbaa !9
  br label %1595

1595:                                             ; preds = %1661, %1587
  %1596 = load i32, ptr %63, align 4, !tbaa !9
  %1597 = icmp slt i32 %1596, 0
  br i1 %1597, label %1598, label %1603

1598:                                             ; preds = %1595
  %1599 = load i32, ptr %75, align 4, !tbaa !9
  %1600 = load i32, ptr %64, align 4, !tbaa !9
  %1601 = icmp sge i32 %1599, %1600
  %1602 = zext i1 %1601 to i32
  br label %1608

1603:                                             ; preds = %1595
  %1604 = load i32, ptr %75, align 4, !tbaa !9
  %1605 = load i32, ptr %64, align 4, !tbaa !9
  %1606 = icmp sle i32 %1604, %1605
  %1607 = zext i1 %1606 to i32
  br label %1608

1608:                                             ; preds = %1603, %1598
  %1609 = phi i32 [ %1602, %1598 ], [ %1607, %1603 ]
  %1610 = icmp ne i32 %1609, 0
  br i1 %1610, label %1611, label %1665

1611:                                             ; preds = %1608
  %1612 = load ptr, ptr %45, align 8, !tbaa !5
  %1613 = load i32, ptr %1612, align 4, !tbaa !9
  store i32 %1613, ptr %65, align 4, !tbaa !9
  %1614 = load ptr, ptr %29, align 8, !tbaa !5
  %1615 = load i32, ptr %1614, align 4, !tbaa !9
  %1616 = load i32, ptr %75, align 4, !tbaa !9
  %1617 = sub nsw i32 %1615, %1616
  %1618 = add nsw i32 %1617, 1
  store i32 %1618, ptr %66, align 4, !tbaa !9
  %1619 = load i32, ptr %65, align 4, !tbaa !9
  %1620 = load i32, ptr %66, align 4, !tbaa !9
  %1621 = icmp sle i32 %1619, %1620
  br i1 %1621, label %1622, label %1624

1622:                                             ; preds = %1611
  %1623 = load i32, ptr %65, align 4, !tbaa !9
  br label %1626

1624:                                             ; preds = %1611
  %1625 = load i32, ptr %66, align 4, !tbaa !9
  br label %1626

1626:                                             ; preds = %1624, %1622
  %1627 = phi i32 [ %1623, %1622 ], [ %1625, %1624 ]
  store i32 %1627, ptr %104, align 4, !tbaa !9
  %1628 = load ptr, ptr %43, align 8, !tbaa !5
  %1629 = load i32, ptr %58, align 4, !tbaa !9
  %1630 = sext i32 %1629 to i64
  %1631 = getelementptr inbounds float, ptr %1628, i64 %1630
  %1632 = load ptr, ptr %44, align 8, !tbaa !5
  %1633 = load ptr, ptr %33, align 8, !tbaa !5
  %1634 = load i32, ptr %88, align 4, !tbaa !9
  %1635 = load i32, ptr %75, align 4, !tbaa !9
  %1636 = load i32, ptr %53, align 4, !tbaa !9
  %1637 = mul nsw i32 %1635, %1636
  %1638 = add nsw i32 %1634, %1637
  %1639 = sext i32 %1638 to i64
  %1640 = getelementptr inbounds float, ptr %1633, i64 %1639
  %1641 = load ptr, ptr %34, align 8, !tbaa !5
  %1642 = load ptr, ptr %46, align 8, !tbaa !5
  %1643 = load i32, ptr %56, align 4, !tbaa !9
  %1644 = sext i32 %1643 to i64
  %1645 = getelementptr inbounds float, ptr %1642, i64 %1644
  %1646 = load ptr, ptr %47, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.10, ptr noundef @.str.1, ptr noundef %95, ptr noundef %104, ptr noundef %95, ptr noundef @c_b18, ptr noundef %1631, ptr noundef %1632, ptr noundef %1640, ptr noundef %1641, ptr noundef @c_b17, ptr noundef %1645, ptr noundef %1646)
  %1647 = load ptr, ptr %46, align 8, !tbaa !5
  %1648 = load i32, ptr %56, align 4, !tbaa !9
  %1649 = sext i32 %1648 to i64
  %1650 = getelementptr inbounds float, ptr %1647, i64 %1649
  %1651 = load ptr, ptr %47, align 8, !tbaa !5
  %1652 = load ptr, ptr %33, align 8, !tbaa !5
  %1653 = load i32, ptr %88, align 4, !tbaa !9
  %1654 = load i32, ptr %75, align 4, !tbaa !9
  %1655 = load i32, ptr %53, align 4, !tbaa !9
  %1656 = mul nsw i32 %1654, %1655
  %1657 = add nsw i32 %1653, %1656
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds float, ptr %1652, i64 %1658
  %1660 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %95, ptr noundef %104, ptr noundef %1650, ptr noundef %1651, ptr noundef %1659, ptr noundef %1660)
  br label %1661

1661:                                             ; preds = %1626
  %1662 = load i32, ptr %63, align 4, !tbaa !9
  %1663 = load i32, ptr %75, align 4, !tbaa !9
  %1664 = add nsw i32 %1663, %1662
  store i32 %1664, ptr %75, align 4, !tbaa !9
  br label %1595, !llvm.loop !16

1665:                                             ; preds = %1608
  br label %1666

1666:                                             ; preds = %1665, %1583
  %1667 = load ptr, ptr %28, align 8, !tbaa !5
  %1668 = load i32, ptr %1667, align 4, !tbaa !9
  %1669 = icmp ne i32 %1668, 0
  br i1 %1669, label %1670, label %1748

1670:                                             ; preds = %1666
  %1671 = load ptr, ptr %36, align 8, !tbaa !5
  %1672 = load i32, ptr %1671, align 4, !tbaa !9
  store i32 %1672, ptr %63, align 4, !tbaa !9
  %1673 = load ptr, ptr %48, align 8, !tbaa !5
  %1674 = load i32, ptr %1673, align 4, !tbaa !9
  store i32 %1674, ptr %64, align 4, !tbaa !9
  %1675 = load ptr, ptr %35, align 8, !tbaa !5
  %1676 = load i32, ptr %1675, align 4, !tbaa !9
  store i32 %1676, ptr %81, align 4, !tbaa !9
  br label %1677

1677:                                             ; preds = %1743, %1670
  %1678 = load i32, ptr %64, align 4, !tbaa !9
  %1679 = icmp slt i32 %1678, 0
  br i1 %1679, label %1680, label %1685

1680:                                             ; preds = %1677
  %1681 = load i32, ptr %81, align 4, !tbaa !9
  %1682 = load i32, ptr %63, align 4, !tbaa !9
  %1683 = icmp sge i32 %1681, %1682
  %1684 = zext i1 %1683 to i32
  br label %1690

1685:                                             ; preds = %1677
  %1686 = load i32, ptr %81, align 4, !tbaa !9
  %1687 = load i32, ptr %63, align 4, !tbaa !9
  %1688 = icmp sle i32 %1686, %1687
  %1689 = zext i1 %1688 to i32
  br label %1690

1690:                                             ; preds = %1685, %1680
  %1691 = phi i32 [ %1684, %1680 ], [ %1689, %1685 ]
  %1692 = icmp ne i32 %1691, 0
  br i1 %1692, label %1693, label %1747

1693:                                             ; preds = %1690
  %1694 = load ptr, ptr %48, align 8, !tbaa !5
  %1695 = load i32, ptr %1694, align 4, !tbaa !9
  store i32 %1695, ptr %65, align 4, !tbaa !9
  %1696 = load ptr, ptr %36, align 8, !tbaa !5
  %1697 = load i32, ptr %1696, align 4, !tbaa !9
  %1698 = load i32, ptr %81, align 4, !tbaa !9
  %1699 = sub nsw i32 %1697, %1698
  %1700 = add nsw i32 %1699, 1
  store i32 %1700, ptr %66, align 4, !tbaa !9
  %1701 = load i32, ptr %65, align 4, !tbaa !9
  %1702 = load i32, ptr %66, align 4, !tbaa !9
  %1703 = icmp sle i32 %1701, %1702
  br i1 %1703, label %1704, label %1706

1704:                                             ; preds = %1693
  %1705 = load i32, ptr %65, align 4, !tbaa !9
  br label %1708

1706:                                             ; preds = %1693
  %1707 = load i32, ptr %66, align 4, !tbaa !9
  br label %1708

1708:                                             ; preds = %1706, %1704
  %1709 = phi i32 [ %1705, %1704 ], [ %1707, %1706 ]
  store i32 %1709, ptr %104, align 4, !tbaa !9
  %1710 = load ptr, ptr %37, align 8, !tbaa !5
  %1711 = load i32, ptr %81, align 4, !tbaa !9
  %1712 = load i32, ptr %88, align 4, !tbaa !9
  %1713 = load i32, ptr %61, align 4, !tbaa !9
  %1714 = mul nsw i32 %1712, %1713
  %1715 = add nsw i32 %1711, %1714
  %1716 = sext i32 %1715 to i64
  %1717 = getelementptr inbounds float, ptr %1710, i64 %1716
  %1718 = load ptr, ptr %38, align 8, !tbaa !5
  %1719 = load ptr, ptr %43, align 8, !tbaa !5
  %1720 = load i32, ptr %58, align 4, !tbaa !9
  %1721 = sext i32 %1720 to i64
  %1722 = getelementptr inbounds float, ptr %1719, i64 %1721
  %1723 = load ptr, ptr %44, align 8, !tbaa !5
  %1724 = load ptr, ptr %49, align 8, !tbaa !5
  %1725 = load i32, ptr %60, align 4, !tbaa !9
  %1726 = sext i32 %1725 to i64
  %1727 = getelementptr inbounds float, ptr %1724, i64 %1726
  %1728 = load ptr, ptr %50, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str.1, ptr noundef %104, ptr noundef %95, ptr noundef %95, ptr noundef @c_b18, ptr noundef %1717, ptr noundef %1718, ptr noundef %1722, ptr noundef %1723, ptr noundef @c_b17, ptr noundef %1727, ptr noundef %1728)
  %1729 = load ptr, ptr %49, align 8, !tbaa !5
  %1730 = load i32, ptr %60, align 4, !tbaa !9
  %1731 = sext i32 %1730 to i64
  %1732 = getelementptr inbounds float, ptr %1729, i64 %1731
  %1733 = load ptr, ptr %50, align 8, !tbaa !5
  %1734 = load ptr, ptr %37, align 8, !tbaa !5
  %1735 = load i32, ptr %81, align 4, !tbaa !9
  %1736 = load i32, ptr %88, align 4, !tbaa !9
  %1737 = load i32, ptr %61, align 4, !tbaa !9
  %1738 = mul nsw i32 %1736, %1737
  %1739 = add nsw i32 %1735, %1738
  %1740 = sext i32 %1739 to i64
  %1741 = getelementptr inbounds float, ptr %1734, i64 %1740
  %1742 = load ptr, ptr %38, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %104, ptr noundef %95, ptr noundef %1732, ptr noundef %1733, ptr noundef %1741, ptr noundef %1742)
  br label %1743

1743:                                             ; preds = %1708
  %1744 = load i32, ptr %64, align 4, !tbaa !9
  %1745 = load i32, ptr %81, align 4, !tbaa !9
  %1746 = add nsw i32 %1745, %1744
  store i32 %1746, ptr %81, align 4, !tbaa !9
  br label %1677, !llvm.loop !17

1747:                                             ; preds = %1690
  br label %1748

1748:                                             ; preds = %1747, %1666
  br label %1749

1749:                                             ; preds = %1748, %1319
  %1750 = load i32, ptr %95, align 4, !tbaa !9
  %1751 = load ptr, ptr %39, align 8, !tbaa !5
  %1752 = load i32, ptr %1751, align 4, !tbaa !9
  %1753 = sub nsw i32 %1750, %1752
  %1754 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 %1753, ptr %1754, align 4, !tbaa !9
  %1755 = load i32, ptr %87, align 4, !tbaa !9
  %1756 = load ptr, ptr %39, align 8, !tbaa !5
  %1757 = load i32, ptr %1756, align 4, !tbaa !9
  %1758 = sub nsw i32 %1757, %1755
  store i32 %1758, ptr %1756, align 4, !tbaa !9
  %1759 = load i32, ptr %100, align 4, !tbaa !9
  %1760 = sitofp i32 %1759 to float
  %1761 = load ptr, ptr %51, align 8, !tbaa !5
  %1762 = getelementptr inbounds float, ptr %1761, i64 1
  store float %1760, ptr %1762, align 4, !tbaa !11
  store i32 1, ptr %110, align 4
  br label %1763

1763:                                             ; preds = %1749, %421, %287, %282, %267
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %53) #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 @sgehrd_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @sormhr_(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 @slaqr4_(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 float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

declare void @slarf_(ptr noundef, ptr noundef, 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

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

@c__1 = external hidden global i32, align 4
@c_n1 = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_true = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b17 = external hidden global float, align 4
@c_b18 = external hidden global float, align 4
@c__12 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @slaqr3_(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr noundef %6, ptr noundef %7, ptr nocapture noundef readonly %8, ptr nocapture noundef readonly %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr nocapture noundef writeonly %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr nocapture noundef readonly %18, ptr noundef %19, ptr noundef %20, ptr nocapture noundef readonly %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25) local_unnamed_addr #0 {
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca float, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca i32, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca i32, align 4
  %45 = alloca float, align 4
  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 4, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #6
  %46 = load i32, ptr %7, align 4, !tbaa !5
  %narrow = xor i32 %46, -1
  %47 = sext i32 %narrow to i64
  %48 = getelementptr inbounds float, ptr %6, i64 %47
  %49 = load i32, ptr %11, align 4, !tbaa !5
  %narrow654 = xor i32 %49, -1
  %50 = sext i32 %narrow654 to i64
  %51 = getelementptr inbounds float, ptr %10, i64 %50
  %52 = getelementptr inbounds i8, ptr %14, i64 -4
  %53 = getelementptr inbounds i8, ptr %15, i64 -4
  %54 = load i32, ptr %17, align 4, !tbaa !5
  %narrow656 = xor i32 %54, -1
  %55 = sext i32 %narrow656 to i64
  %56 = getelementptr inbounds float, ptr %16, i64 %55
  %57 = load i32, ptr %20, align 4, !tbaa !5
  %narrow655 = xor i32 %57, -1
  %58 = sext i32 %narrow655 to i64
  %59 = getelementptr inbounds float, ptr %19, i64 %58
  %60 = getelementptr inbounds i8, ptr %24, i64 -4
  %61 = load i32, ptr %5, align 4, !tbaa !5
  store i32 %61, ptr %27, align 4, !tbaa !5
  %62 = load i32, ptr %4, align 4, !tbaa !5
  %63 = load i32, ptr %3, align 4, !tbaa !5
  %64 = sub nsw i32 %62, %63
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr %28, align 4, !tbaa !5
  %66 = tail call i32 @llvm.smin.i32(i32 %61, i32 %65)
  store i32 %66, ptr %41, align 4, !tbaa !5
  %67 = icmp slt i32 %66, 3
  br i1 %67, label %82, label %68

68:                                               ; preds = %26
  %69 = add nsw i32 %66, -1
  store i32 %69, ptr %27, align 4, !tbaa !5
  call void @sgehrd_(ptr noundef nonnull %41, ptr noundef nonnull @c__1, ptr noundef nonnull %27, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %24, ptr noundef %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %31) #6
  %70 = load float, ptr %24, align 4, !tbaa !9
  %71 = fptosi float %70 to i32
  %72 = load i32, ptr %41, align 4, !tbaa !5
  %73 = add nsw i32 %72, -1
  store i32 %73, ptr %27, align 4, !tbaa !5
  call void @sormhr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef nonnull @c__1, ptr noundef nonnull %27, ptr noundef %19, ptr noundef nonnull %20, ptr noundef nonnull %24, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %31) #6
  %74 = load float, ptr %24, align 4, !tbaa !9
  %75 = fptosi float %74 to i32
  call void @slaqr4_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %41, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %14, ptr noundef %15, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %34) #6
  %76 = load float, ptr %24, align 4, !tbaa !9
  %77 = fptosi float %76 to i32
  %78 = load i32, ptr %41, align 4, !tbaa !5
  %79 = call i32 @llvm.smax.i32(i32 %71, i32 %75)
  %80 = add nsw i32 %78, %79
  store i32 %80, ptr %27, align 4, !tbaa !5
  %81 = call i32 @llvm.smax.i32(i32 %80, i32 %77)
  br label %82

82:                                               ; preds = %26, %68
  %.0621 = phi i32 [ %81, %68 ], [ 1, %26 ]
  %83 = load i32, ptr %25, align 4, !tbaa !5
  %84 = icmp eq i32 %83, -1
  br i1 %84, label %85, label %87

85:                                               ; preds = %82
  %86 = sitofp i32 %.0621 to float
  br label %.sink.split

87:                                               ; preds = %82
  store i32 0, ptr %12, align 4, !tbaa !5
  store i32 0, ptr %13, align 4, !tbaa !5
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %88 = load i32, ptr %3, align 4, !tbaa !5
  %89 = load i32, ptr %4, align 4, !tbaa !5
  %90 = icmp sgt i32 %88, %89
  br i1 %90, label %615, label %91

91:                                               ; preds = %87
  %92 = load i32, ptr %5, align 4, !tbaa !5
  %93 = icmp slt i32 %92, 1
  br i1 %93, label %615, label %94

94:                                               ; preds = %91
  %95 = call float @slamch_(ptr noundef nonnull @.str.2) #6
  store float %95, ptr %42, align 4, !tbaa !9
  %96 = fdiv float 1.000000e+00, %95
  store float %96, ptr %43, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %42, ptr noundef nonnull %43) #6
  %97 = call float @slamch_(ptr noundef nonnull @.str.3) #6
  %98 = load float, ptr %42, align 4, !tbaa !9
  %99 = load i32, ptr %2, align 4, !tbaa !5
  %100 = sitofp i32 %99 to float
  %101 = fdiv float %100, %97
  %102 = fmul float %98, %101
  %103 = load i32, ptr %5, align 4, !tbaa !5
  store i32 %103, ptr %27, align 4, !tbaa !5
  %104 = load i32, ptr %4, align 4, !tbaa !5
  %105 = load i32, ptr %3, align 4, !tbaa !5
  %106 = sub nsw i32 %104, %105
  %107 = add nsw i32 %106, 1
  store i32 %107, ptr %28, align 4, !tbaa !5
  %108 = call i32 @llvm.smin.i32(i32 %103, i32 %107)
  store i32 %108, ptr %41, align 4, !tbaa !5
  %109 = sub nsw i32 %104, %108
  %110 = add nsw i32 %109, 1
  %111 = icmp eq i32 %110, %105
  br i1 %111, label %118, label %112

112:                                              ; preds = %94
  %113 = mul nsw i32 %109, %46
  %114 = add nsw i32 %110, %113
  %115 = sext i32 %114 to i64
  %116 = getelementptr inbounds float, ptr %48, i64 %115
  %117 = load float, ptr %116, align 4, !tbaa !9
  br label %118

118:                                              ; preds = %94, %112
  %.0625 = phi float [ %117, %112 ], [ 0.000000e+00, %94 ]
  %119 = icmp eq i32 %104, %110
  br i1 %119, label %120, label %147

120:                                              ; preds = %118
  %121 = add i32 %46, 1
  %122 = mul i32 %104, %121
  %123 = sext i32 %122 to i64
  %124 = getelementptr inbounds float, ptr %48, i64 %123
  %125 = load float, ptr %124, align 4, !tbaa !9
  %126 = sext i32 %104 to i64
  %127 = getelementptr inbounds float, ptr %52, i64 %126
  store float %125, ptr %127, align 4, !tbaa !9
  %128 = getelementptr inbounds float, ptr %53, i64 %126
  store float 0.000000e+00, ptr %128, align 4, !tbaa !9
  store i32 1, ptr %12, align 4, !tbaa !5
  store i32 0, ptr %13, align 4, !tbaa !5
  %129 = load float, ptr %124, align 4, !tbaa !9
  %130 = fcmp oge float %129, 0.000000e+00
  %131 = fneg float %129
  %132 = select i1 %130, float %129, float %131
  %133 = fmul float %97, %132
  %134 = fcmp oge float %.0625, 0.000000e+00
  %135 = fneg float %.0625
  %136 = select i1 %134, float %.0625, float %135
  %137 = fcmp oge float %102, %133
  %138 = select i1 %137, float %102, float %133
  %139 = fcmp ugt float %136, %138
  br i1 %139, label %.sink.split, label %140

140:                                              ; preds = %120
  store i32 0, ptr %12, align 4, !tbaa !5
  store i32 1, ptr %13, align 4, !tbaa !5
  %141 = load i32, ptr %3, align 4, !tbaa !5
  %.not670 = icmp slt i32 %109, %141
  br i1 %.not670, label %.sink.split, label %142

142:                                              ; preds = %140
  %143 = mul nsw i32 %109, %46
  %144 = add nsw i32 %104, %143
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds float, ptr %48, i64 %145
  store float 0.000000e+00, ptr %146, align 4, !tbaa !9
  br label %.sink.split

147:                                              ; preds = %118
  %148 = mul nsw i32 %110, %46
  %149 = add nsw i32 %148, %110
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds float, ptr %48, i64 %150
  call void @slacpy_(ptr noundef nonnull @.str.4, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef %151, ptr noundef nonnull %7, ptr noundef %19, ptr noundef nonnull %20) #6
  %152 = load i32, ptr %41, align 4, !tbaa !5
  %153 = add nsw i32 %152, -1
  store i32 %153, ptr %27, align 4, !tbaa !5
  %154 = load i32, ptr %7, align 4, !tbaa !5
  %155 = add nsw i32 %154, 1
  store i32 %155, ptr %28, align 4, !tbaa !5
  %156 = load i32, ptr %20, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  store i32 %157, ptr %29, align 4, !tbaa !5
  %158 = add nsw i32 %109, 2
  %159 = add nsw i32 %158, %148
  %160 = sext i32 %159 to i64
  %161 = getelementptr inbounds float, ptr %48, i64 %160
  %162 = sext i32 %57 to i64
  %163 = getelementptr float, ptr %59, i64 %162
  %164 = getelementptr i8, ptr %163, i64 8
  call void @scopy_(ptr noundef nonnull %27, ptr noundef %161, ptr noundef nonnull %28, ptr noundef %164, ptr noundef nonnull %29) #6
  call void @slaset_(ptr noundef nonnull @.str.5, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef nonnull @c_b17, ptr noundef nonnull @c_b18, ptr noundef %16, ptr noundef nonnull %17) #6
  %165 = call i32 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %41, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef nonnull %25, i32 noundef 6, i32 noundef 2) #6
  %166 = load i32, ptr %41, align 4, !tbaa !5
  %167 = icmp sgt i32 %166, %165
  %168 = sext i32 %110 to i64
  %169 = getelementptr inbounds float, ptr %52, i64 %168
  %170 = getelementptr inbounds float, ptr %53, i64 %168
  br i1 %167, label %171, label %172

171:                                              ; preds = %147
  call void @slaqr4_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %41, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef %19, ptr noundef nonnull %20, ptr noundef nonnull %169, ptr noundef nonnull %170, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %34) #6
  br label %173

172:                                              ; preds = %147
  call void @slahqr_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %41, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef %19, ptr noundef nonnull %20, ptr noundef nonnull %169, ptr noundef nonnull %170, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %34) #6
  br label %173

173:                                              ; preds = %172, %171
  %174 = load i32, ptr %41, align 4, !tbaa !5
  %175 = add nsw i32 %174, -3
  store i32 %175, ptr %27, align 4, !tbaa !5
  %.not676 = icmp slt i32 %174, 4
  br i1 %.not676, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %173
  %176 = add nsw i32 %174, -2
  %wide.trip.count = zext nneg i32 %176 to i64
  %invariant.gep729 = getelementptr i8, ptr %59, i64 8
  %177 = add nsw i64 %wide.trip.count, -1
  %178 = add nsw i64 %wide.trip.count, -2
  %xtraiter = and i64 %177, 3
  %179 = icmp ult i64 %178, 3
  br i1 %179, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %177, -4
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader.new ], [ %indvars.iv.next.3, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.3, %.lr.ph ]
  %180 = mul nsw i64 %indvars.iv, %162
  %gep730 = getelementptr float, ptr %invariant.gep729, i64 %indvars.iv
  %181 = getelementptr float, ptr %gep730, i64 %180
  store <2 x float> zeroinitializer, ptr %181, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %182 = mul nsw i64 %indvars.iv.next, %162
  %gep730.1 = getelementptr float, ptr %invariant.gep729, i64 %indvars.iv.next
  %183 = getelementptr float, ptr %gep730.1, i64 %182
  store <2 x float> zeroinitializer, ptr %183, align 4, !tbaa !9
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %184 = mul nsw i64 %indvars.iv.next.1, %162
  %gep730.2 = getelementptr float, ptr %invariant.gep729, i64 %indvars.iv.next.1
  %185 = getelementptr float, ptr %gep730.2, i64 %184
  store <2 x float> zeroinitializer, ptr %185, align 4, !tbaa !9
  %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
  %186 = mul nsw i64 %indvars.iv.next.2, %162
  %gep730.3 = getelementptr float, ptr %invariant.gep729, i64 %indvars.iv.next.2
  %187 = getelementptr float, ptr %gep730.3, i64 %186
  store <2 x float> zeroinitializer, ptr %187, align 4, !tbaa !9
  %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
  %niter.next.3 = add nuw i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !11

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph, %.lr.ph.preheader
  %indvars.iv.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next.3, %.lr.ph ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph.epil
  %indvars.iv.epil = phi i64 [ %indvars.iv.next.epil, %.lr.ph.epil ], [ %indvars.iv.unr, %._crit_edge.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph.epil ], [ 0, %._crit_edge.loopexit.unr-lcssa ]
  %188 = mul nsw i64 %indvars.iv.epil, %162
  %gep730.epil = getelementptr float, ptr %invariant.gep729, i64 %indvars.iv.epil
  %189 = getelementptr float, ptr %gep730.epil, i64 %188
  store <2 x float> zeroinitializer, ptr %189, align 4, !tbaa !9
  %indvars.iv.next.epil = add nuw nsw i64 %indvars.iv.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge, label %.lr.ph.epil, !llvm.loop !13

._crit_edge:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph.epil, %173
  %190 = icmp sgt i32 %174, 2
  br i1 %190, label %191, label %197

191:                                              ; preds = %._crit_edge
  %192 = add nsw i32 %174, -2
  %193 = mul nsw i32 %192, %57
  %194 = add nsw i32 %193, %174
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds float, ptr %59, i64 %195
  store float 0.000000e+00, ptr %196, align 4, !tbaa !9
  br label %197

197:                                              ; preds = %191, %._crit_edge
  store i32 %174, ptr %12, align 4, !tbaa !5
  %198 = load i32, ptr %34, align 4, !tbaa !5
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr %33, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %56, i64 4
  %.not657682.not = icmp slt i32 %198, %174
  br i1 %.not657682.not, label %.lr.ph684, label %._crit_edge685.thread

._crit_edge685.thread:                            ; preds = %197
  %200 = icmp eq i32 %174, 0
  %.1626721 = select i1 %200, float 0.000000e+00, float %.0625
  br label %.loopexit675

.lr.ph684:                                        ; preds = %197
  %201 = add i32 %57, 1
  %202 = fcmp oge float %.0625, 0.000000e+00
  %203 = fneg float %.0625
  %204 = select i1 %202, float %.0625, float %203
  %205 = insertelement <2 x float> poison, float %.0625, i64 0
  %206 = shufflevector <2 x float> %205, <2 x float> poison, <2 x i32> zeroinitializer
  br label %207

207:                                              ; preds = %.lr.ph684, %299
  %208 = phi i32 [ %199, %.lr.ph684 ], [ %300, %299 ]
  %209 = phi i32 [ %174, %.lr.ph684 ], [ %.pr, %299 ]
  %210 = icmp eq i32 %209, 1
  br i1 %210, label %.thread, label %211

211:                                              ; preds = %207
  %212 = add nsw i32 %209, -1
  %213 = mul nsw i32 %212, %57
  %214 = add nsw i32 %213, %209
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds float, ptr %59, i64 %215
  %217 = load float, ptr %216, align 4, !tbaa !9
  %218 = fcmp oeq float %217, 0.000000e+00
  br i1 %218, label %.thread, label %243

.thread:                                          ; preds = %207, %211
  %219 = mul i32 %209, %201
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds float, ptr %59, i64 %220
  %222 = load float, ptr %221, align 4, !tbaa !9
  %223 = fcmp oge float %222, 0.000000e+00
  %224 = fneg float %222
  %225 = select i1 %223, float %222, float %224
  %226 = fcmp oeq float %222, 0.000000e+00
  %.0 = select i1 %226, float %204, float %225
  %227 = fmul float %97, %.0
  %228 = mul nsw i32 %209, %54
  %229 = sext i32 %228 to i64
  %gep681 = getelementptr float, ptr %invariant.gep, i64 %229
  %230 = load float, ptr %gep681, align 4, !tbaa !9
  %231 = fmul float %.0625, %230
  %232 = fcmp oge float %231, 0.000000e+00
  %233 = fneg float %231
  %234 = select i1 %232, float %231, float %233
  %235 = fcmp oge float %102, %227
  %236 = select i1 %235, float %102, float %227
  %237 = fcmp ugt float %234, %236
  br i1 %237, label %240, label %238

238:                                              ; preds = %.thread
  %239 = add nsw i32 %209, -1
  store i32 %239, ptr %12, align 4, !tbaa !5
  br label %299

240:                                              ; preds = %.thread
  store i32 %209, ptr %32, align 4, !tbaa !5
  call void @strexc_(ptr noundef nonnull @.str.8, ptr noundef nonnull %41, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %24, ptr noundef nonnull %31) #6
  %241 = load i32, ptr %33, align 4, !tbaa !5
  %242 = add nsw i32 %241, 1
  store i32 %242, ptr %33, align 4, !tbaa !5
  br label %299

243:                                              ; preds = %211
  %244 = mul i32 %209, %201
  %245 = sext i32 %244 to i64
  %246 = getelementptr inbounds float, ptr %59, i64 %245
  %247 = load float, ptr %246, align 4, !tbaa !9
  %248 = fcmp oge float %247, 0.000000e+00
  %249 = fneg float %247
  %250 = select i1 %248, float %247, float %249
  %251 = fpext float %250 to double
  %252 = fcmp oge float %217, 0.000000e+00
  %253 = fneg float %217
  %254 = select i1 %252, float %217, float %253
  %255 = fpext float %254 to double
  %256 = call double @sqrt(double noundef %255) #6
  %257 = load i32, ptr %12, align 4, !tbaa !5
  %258 = add nsw i32 %257, -1
  %259 = mul nsw i32 %257, %57
  %260 = add nsw i32 %258, %259
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds float, ptr %59, i64 %261
  %263 = load float, ptr %262, align 4, !tbaa !9
  %264 = fcmp oge float %263, 0.000000e+00
  %265 = fneg float %263
  %266 = select i1 %264, float %263, float %265
  %267 = fpext float %266 to double
  %268 = call double @sqrt(double noundef %267) #6
  %269 = call double @llvm.fmuladd.f64(double %256, double %268, double %251)
  %270 = fptrunc double %269 to float
  %271 = fcmp oeq float %270, 0.000000e+00
  %.1 = select i1 %271, float %204, float %270
  %272 = load i32, ptr %12, align 4, !tbaa !5
  %273 = mul nsw i32 %272, %54
  %274 = sext i32 %273 to i64
  %gep = getelementptr float, ptr %invariant.gep, i64 %274
  %275 = load float, ptr %gep, align 4, !tbaa !9
  %276 = add nsw i32 %272, -1
  %277 = mul nsw i32 %276, %54
  %278 = sext i32 %277 to i64
  %gep679 = getelementptr float, ptr %invariant.gep, i64 %278
  %279 = load float, ptr %gep679, align 4, !tbaa !9
  %280 = insertelement <2 x float> poison, float %275, i64 0
  %281 = insertelement <2 x float> %280, float %279, i64 1
  %282 = fmul <2 x float> %206, %281
  %283 = fcmp oge <2 x float> %282, zeroinitializer
  %284 = fneg <2 x float> %282
  %285 = select <2 x i1> %283, <2 x float> %282, <2 x float> %284
  %286 = fmul float %97, %.1
  %287 = extractelement <2 x float> %285, i64 0
  %288 = extractelement <2 x float> %285, i64 1
  %289 = fcmp oge float %287, %288
  %290 = select i1 %289, float %287, float %288
  %291 = fcmp oge float %102, %286
  %292 = select i1 %291, float %102, float %286
  %293 = fcmp ugt float %290, %292
  br i1 %293, label %296, label %294

294:                                              ; preds = %243
  %295 = add nsw i32 %272, -2
  store i32 %295, ptr %12, align 4, !tbaa !5
  %.pre = load i32, ptr %33, align 4, !tbaa !5
  br label %299

296:                                              ; preds = %243
  store i32 %272, ptr %32, align 4, !tbaa !5
  call void @strexc_(ptr noundef nonnull @.str.8, ptr noundef nonnull %41, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %24, ptr noundef nonnull %31) #6
  %297 = load i32, ptr %33, align 4, !tbaa !5
  %298 = add nsw i32 %297, 2
  store i32 %298, ptr %33, align 4, !tbaa !5
  br label %299

299:                                              ; preds = %294, %296, %238, %240
  %300 = phi i32 [ %.pre, %294 ], [ %298, %296 ], [ %208, %238 ], [ %242, %240 ]
  %.pr = load i32, ptr %12, align 4, !tbaa !5
  %.not657 = icmp sgt i32 %300, %.pr
  br i1 %.not657, label %._crit_edge685, label %207

._crit_edge685:                                   ; preds = %299
  %.pre715 = load i32, ptr %41, align 4, !tbaa !5
  %301 = icmp eq i32 %.pr, 0
  %.1626 = select i1 %301, float 0.000000e+00, float %.0625
  %302 = icmp slt i32 %.pr, %.pre715
  br i1 %302, label %303, label %.loopexit675

303:                                              ; preds = %._crit_edge685
  %304 = add nsw i32 %.pr, 1
  %305 = add i32 %57, 1
  br label %306

.loopexit674:                                     ; preds = %414, %416
  %.not658 = icmp eq i32 %.2, 0
  br i1 %.not658, label %306, label %.loopexit675.loopexit

306:                                              ; preds = %303, %.loopexit674
  %.0631694 = phi i32 [ %304, %303 ], [ %.2633, %.loopexit674 ]
  %307 = add nsw i32 %.0631694, -1
  %308 = load i32, ptr %34, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  %310 = load i32, ptr %12, align 4, !tbaa !5
  %311 = icmp eq i32 %309, %310
  %312 = add nsw i32 %308, 2
  br i1 %311, label %322, label %313

313:                                              ; preds = %306
  %314 = mul nsw i32 %309, %57
  %315 = add nsw i32 %314, %312
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds float, ptr %59, i64 %316
  %318 = load float, ptr %317, align 4, !tbaa !9
  %319 = fcmp oeq float %318, 0.000000e+00
  br i1 %319, label %322, label %320

320:                                              ; preds = %313
  %321 = add nsw i32 %308, 3
  br label %322

322:                                              ; preds = %306, %313, %320
  %.0627 = phi i32 [ %321, %320 ], [ %312, %313 ], [ %312, %306 ]
  %.not659.not686 = icmp slt i32 %.0627, %.0631694
  br i1 %.not659.not686, label %.lr.ph691.preheader, label %.loopexit675.loopexit

.lr.ph691.preheader:                              ; preds = %322
  %323 = mul i32 %307, %305
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds float, ptr %59, i64 %324
  br label %.lr.ph691

.lr.ph691:                                        ; preds = %.lr.ph691.preheader, %416
  %.1623689 = phi i32 [ %.2, %416 ], [ 1, %.lr.ph691.preheader ]
  %.1628688 = phi i32 [ %.2629, %416 ], [ %.0627, %.lr.ph691.preheader ]
  %.1632687 = phi i32 [ %.2633, %416 ], [ %309, %.lr.ph691.preheader ]
  %326 = add nsw i32 %.1632687, 1
  %327 = icmp eq i32 %.1628688, %326
  br i1 %327, label %328, label %336

328:                                              ; preds = %.lr.ph691
  %329 = mul i32 %.1632687, %305
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds float, ptr %59, i64 %330
  %332 = load float, ptr %331, align 4, !tbaa !9
  %333 = fcmp oge float %332, 0.000000e+00
  %334 = fneg float %332
  %335 = select i1 %333, float %332, float %334
  br label %367

336:                                              ; preds = %.lr.ph691
  %337 = mul nsw i32 %.1632687, %57
  %338 = add nsw i32 %337, %.1632687
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds float, ptr %59, i64 %339
  %341 = load float, ptr %340, align 4, !tbaa !9
  %342 = fcmp oge float %341, 0.000000e+00
  %343 = fneg float %341
  %344 = select i1 %342, float %341, float %343
  %345 = fpext float %344 to double
  %346 = add nsw i32 %326, %337
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds float, ptr %59, i64 %347
  %349 = load float, ptr %348, align 4, !tbaa !9
  %350 = fcmp oge float %349, 0.000000e+00
  %351 = fneg float %349
  %352 = select i1 %350, float %349, float %351
  %353 = fpext float %352 to double
  %354 = call double @sqrt(double noundef %353) #6
  %355 = mul nsw i32 %326, %57
  %356 = add nsw i32 %355, %.1632687
  %357 = sext i32 %356 to i64
  %358 = getelementptr inbounds float, ptr %59, i64 %357
  %359 = load float, ptr %358, align 4, !tbaa !9
  %360 = fcmp oge float %359, 0.000000e+00
  %361 = fneg float %359
  %362 = select i1 %360, float %359, float %361
  %363 = fpext float %362 to double
  %364 = call double @sqrt(double noundef %363) #6
  %365 = call double @llvm.fmuladd.f64(double %354, double %364, double %345)
  %366 = fptrunc double %365 to float
  br label %367

367:                                              ; preds = %336, %328
  %.0620 = phi float [ %335, %328 ], [ %366, %336 ]
  %368 = icmp eq i32 %.1628688, %307
  br i1 %368, label %369, label %374

369:                                              ; preds = %367
  %370 = load float, ptr %325, align 4, !tbaa !9
  %371 = fcmp oge float %370, 0.000000e+00
  %372 = fneg float %370
  %373 = select i1 %371, float %370, float %372
  br label %408

374:                                              ; preds = %367
  %375 = add nsw i32 %.1628688, 1
  %376 = mul nsw i32 %.1628688, %57
  %377 = add nsw i32 %375, %376
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds float, ptr %59, i64 %378
  %380 = load float, ptr %379, align 4, !tbaa !9
  %381 = fcmp oeq float %380, 0.000000e+00
  %382 = add nsw i32 %376, %.1628688
  %383 = sext i32 %382 to i64
  %384 = getelementptr inbounds float, ptr %59, i64 %383
  %385 = load float, ptr %384, align 4, !tbaa !9
  %386 = fcmp oge float %385, 0.000000e+00
  %387 = fneg float %385
  %388 = select i1 %386, float %385, float %387
  br i1 %381, label %408, label %389

389:                                              ; preds = %374
  %390 = fpext float %388 to double
  %391 = fcmp oge float %380, 0.000000e+00
  %392 = fneg float %380
  %393 = select i1 %391, float %380, float %392
  %394 = fpext float %393 to double
  %395 = call double @sqrt(double noundef %394) #6
  %396 = mul nsw i32 %375, %57
  %397 = add nsw i32 %396, %.1628688
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds float, ptr %59, i64 %398
  %400 = load float, ptr %399, align 4, !tbaa !9
  %401 = fcmp oge float %400, 0.000000e+00
  %402 = fneg float %400
  %403 = select i1 %401, float %400, float %402
  %404 = fpext float %403 to double
  %405 = call double @sqrt(double noundef %404) #6
  %406 = call double @llvm.fmuladd.f64(double %395, double %405, double %390)
  %407 = fptrunc double %406 to float
  br label %408

408:                                              ; preds = %374, %389, %369
  %.0619 = phi float [ %373, %369 ], [ %407, %389 ], [ %388, %374 ]
  %409 = fcmp ult float %.0620, %.0619
  br i1 %409, label %410, label %414

410:                                              ; preds = %408
  store i32 %.1632687, ptr %32, align 4, !tbaa !5
  store i32 %.1628688, ptr %33, align 4, !tbaa !5
  call void @strexc_(ptr noundef nonnull @.str.8, ptr noundef nonnull %41, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %24, ptr noundef nonnull %31) #6
  %411 = load i32, ptr %31, align 4, !tbaa !5
  %412 = icmp eq i32 %411, 0
  %413 = load i32, ptr %33, align 4
  %spec.select = select i1 %412, i32 %413, i32 %.1628688
  br label %414

414:                                              ; preds = %410, %408
  %.2633 = phi i32 [ %.1628688, %408 ], [ %spec.select, %410 ]
  %.2 = phi i32 [ %.1623689, %408 ], [ 0, %410 ]
  %415 = icmp eq i32 %.2633, %307
  br i1 %415, label %.loopexit674, label %416

416:                                              ; preds = %414
  %417 = add nsw i32 %.2633, 1
  %418 = mul nsw i32 %.2633, %57
  %419 = add nsw i32 %417, %418
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds float, ptr %59, i64 %420
  %422 = load float, ptr %421, align 4, !tbaa !9
  %423 = fcmp oeq float %422, 0.000000e+00
  %424 = add nsw i32 %.2633, 2
  %.2629 = select i1 %423, i32 %417, i32 %424
  %.not659.not = icmp slt i32 %.2629, %.0631694
  br i1 %.not659.not, label %.lr.ph691, label %.loopexit674

.loopexit675.loopexit:                            ; preds = %322, %.loopexit674
  %.pre716 = load i32, ptr %41, align 4, !tbaa !5
  br label %.loopexit675

.loopexit675:                                     ; preds = %._crit_edge685.thread, %.loopexit675.loopexit, %._crit_edge685
  %.1626722 = phi float [ %.1626, %.loopexit675.loopexit ], [ %.1626, %._crit_edge685 ], [ %.1626721, %._crit_edge685.thread ]
  %425 = phi i32 [ %.pre716, %.loopexit675.loopexit ], [ %.pre715, %._crit_edge685 ], [ %174, %._crit_edge685.thread ]
  %426 = load i32, ptr %34, align 4, !tbaa !5
  %.not660.not695 = icmp sgt i32 %425, %426
  br i1 %.not660.not695, label %.lr.ph698, label %._crit_edge699

.lr.ph698:                                        ; preds = %.loopexit675
  %427 = add i32 %109, -1
  %428 = add i32 %57, 1
  br label %429

429:                                              ; preds = %.lr.ph698, %483
  %430 = phi i32 [ %426, %.lr.ph698 ], [ %484, %483 ]
  %.3696 = phi i32 [ %425, %.lr.ph698 ], [ %.4, %483 ]
  %431 = add nsw i32 %430, 1
  %432 = icmp eq i32 %.3696, %431
  br i1 %432, label %433, label %443

433:                                              ; preds = %429
  %434 = mul i32 %.3696, %428
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds float, ptr %59, i64 %435
  %437 = load float, ptr %436, align 4, !tbaa !9
  %438 = add i32 %.3696, %109
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds float, ptr %52, i64 %439
  store float %437, ptr %440, align 4, !tbaa !9
  %441 = getelementptr inbounds float, ptr %53, i64 %439
  store float 0.000000e+00, ptr %441, align 4, !tbaa !9
  %442 = add nsw i32 %.3696, -1
  br label %483

443:                                              ; preds = %429
  %444 = add nsw i32 %.3696, -1
  %445 = mul nsw i32 %444, %57
  %446 = add nsw i32 %445, %.3696
  %447 = sext i32 %446 to i64
  %448 = getelementptr inbounds float, ptr %59, i64 %447
  %449 = load float, ptr %448, align 4, !tbaa !9
  %450 = fcmp oeq float %449, 0.000000e+00
  br i1 %450, label %451, label %460

451:                                              ; preds = %443
  %452 = mul i32 %.3696, %428
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds float, ptr %59, i64 %453
  %455 = load float, ptr %454, align 4, !tbaa !9
  %456 = add i32 %.3696, %109
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds float, ptr %52, i64 %457
  store float %455, ptr %458, align 4, !tbaa !9
  %459 = getelementptr inbounds float, ptr %53, i64 %457
  store float 0.000000e+00, ptr %459, align 4, !tbaa !9
  br label %483

460:                                              ; preds = %443
  %461 = add nsw i32 %445, %444
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds float, ptr %59, i64 %462
  %464 = load float, ptr %463, align 4, !tbaa !9
  store float %464, ptr %35, align 4, !tbaa !9
  store float %449, ptr %37, align 4, !tbaa !9
  %465 = mul nsw i32 %.3696, %57
  %466 = add nsw i32 %444, %465
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds float, ptr %59, i64 %467
  %469 = load float, ptr %468, align 4, !tbaa !9
  store float %469, ptr %36, align 4, !tbaa !9
  %470 = add nsw i32 %465, %.3696
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds float, ptr %59, i64 %471
  %473 = load float, ptr %472, align 4, !tbaa !9
  store float %473, ptr %38, align 4, !tbaa !9
  %474 = add i32 %427, %.3696
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds float, ptr %52, i64 %475
  %477 = getelementptr inbounds float, ptr %53, i64 %475
  %478 = add i32 %.3696, %109
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds float, ptr %52, i64 %479
  %481 = getelementptr inbounds float, ptr %53, i64 %479
  call void @slanv2_(ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %476, ptr noundef nonnull %477, ptr noundef nonnull %480, ptr noundef nonnull %481, ptr noundef nonnull %39, ptr noundef nonnull %40) #6
  %482 = add nsw i32 %.3696, -2
  %.pre717 = load i32, ptr %34, align 4, !tbaa !5
  br label %483

483:                                              ; preds = %451, %460, %433
  %484 = phi i32 [ %430, %433 ], [ %430, %451 ], [ %.pre717, %460 ]
  %.4 = phi i32 [ %442, %433 ], [ %444, %451 ], [ %482, %460 ]
  %.not660.not = icmp sgt i32 %.4, %484
  br i1 %.not660.not, label %429, label %._crit_edge699.loopexit

._crit_edge699.loopexit:                          ; preds = %483
  %.pre718 = load i32, ptr %41, align 4, !tbaa !5
  br label %._crit_edge699

._crit_edge699:                                   ; preds = %._crit_edge699.loopexit, %.loopexit675
  %485 = phi i32 [ %.pre718, %._crit_edge699.loopexit ], [ %425, %.loopexit675 ]
  %486 = load i32, ptr %12, align 4, !tbaa !5
  %487 = icmp slt i32 %486, %485
  %488 = fcmp oeq float %.1626722, 0.000000e+00
  %or.cond = select i1 %487, i1 true, i1 %488
  br i1 %or.cond, label %489, label %.loopexit

489:                                              ; preds = %._crit_edge699
  %490 = icmp sgt i32 %486, 1
  %491 = fcmp une float %.1626722, 0.000000e+00
  %or.cond3 = select i1 %490, i1 %491, i1 false
  br i1 %or.cond3, label %492, label %516

492:                                              ; preds = %489
  call void @scopy_(ptr noundef nonnull %12, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %24, ptr noundef nonnull @c__1) #6
  %493 = load float, ptr %24, align 4, !tbaa !9
  store float %493, ptr %30, align 4, !tbaa !9
  %494 = getelementptr inbounds i8, ptr %24, i64 4
  call void @slarfg_(ptr noundef nonnull %12, ptr noundef nonnull %30, ptr noundef nonnull %494, ptr noundef nonnull @c__1, ptr noundef nonnull %45) #6
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %495 = load i32, ptr %41, align 4, !tbaa !5
  %496 = add nsw i32 %495, -2
  store i32 %496, ptr %27, align 4, !tbaa !5
  store i32 %496, ptr %28, align 4, !tbaa !5
  %497 = getelementptr i8, ptr %163, i64 12
  call void @slaset_(ptr noundef nonnull @.str.9, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef nonnull @c_b17, ptr noundef nonnull @c_b17, ptr noundef %497, ptr noundef nonnull %20) #6
  %498 = load i32, ptr %41, align 4, !tbaa !5
  %499 = sext i32 %498 to i64
  %500 = getelementptr float, ptr %60, i64 %499
  %501 = getelementptr i8, ptr %500, i64 4
  call void @slarf_(ptr noundef nonnull @.str.9, ptr noundef nonnull %12, ptr noundef nonnull %41, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %45, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %501) #6
  %502 = load i32, ptr %41, align 4, !tbaa !5
  %503 = sext i32 %502 to i64
  %504 = getelementptr float, ptr %60, i64 %503
  %505 = getelementptr i8, ptr %504, i64 4
  call void @slarf_(ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %12, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %45, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %505) #6
  %506 = load i32, ptr %41, align 4, !tbaa !5
  %507 = sext i32 %506 to i64
  %508 = getelementptr float, ptr %60, i64 %507
  %509 = getelementptr i8, ptr %508, i64 4
  call void @slarf_(ptr noundef nonnull @.str, ptr noundef nonnull %41, ptr noundef nonnull %12, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %45, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %509) #6
  %510 = load i32, ptr %25, align 4, !tbaa !5
  %511 = load i32, ptr %41, align 4, !tbaa !5
  %512 = sub nsw i32 %510, %511
  store i32 %512, ptr %27, align 4, !tbaa !5
  %513 = sext i32 %511 to i64
  %514 = getelementptr float, ptr %60, i64 %513
  %515 = getelementptr i8, ptr %514, i64 4
  call void @sgehrd_(ptr noundef nonnull %41, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef %19, ptr noundef nonnull %20, ptr noundef nonnull %24, ptr noundef %515, ptr noundef nonnull %27, ptr noundef nonnull %31) #6
  br label %516

516:                                              ; preds = %492, %489
  %517 = icmp sgt i32 %109, 0
  br i1 %517, label %518, label %525

518:                                              ; preds = %516
  %519 = load float, ptr %16, align 4, !tbaa !9
  %520 = fmul float %.1626722, %519
  %521 = mul nsw i32 %109, %46
  %522 = add nsw i32 %110, %521
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds float, ptr %48, i64 %523
  store float %520, ptr %524, align 4, !tbaa !9
  br label %525

525:                                              ; preds = %518, %516
  call void @slacpy_(ptr noundef nonnull @.str.4, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %151, ptr noundef nonnull %7) #6
  %526 = load i32, ptr %41, align 4, !tbaa !5
  %527 = add nsw i32 %526, -1
  store i32 %527, ptr %27, align 4, !tbaa !5
  %528 = load i32, ptr %20, align 4, !tbaa !5
  %529 = add nsw i32 %528, 1
  store i32 %529, ptr %28, align 4, !tbaa !5
  %530 = load i32, ptr %7, align 4, !tbaa !5
  %531 = add nsw i32 %530, 1
  store i32 %531, ptr %29, align 4, !tbaa !5
  call void @scopy_(ptr noundef nonnull %27, ptr noundef %164, ptr noundef nonnull %28, ptr noundef %161, ptr noundef nonnull %29) #6
  %532 = load i32, ptr %12, align 4, !tbaa !5
  %533 = icmp sgt i32 %532, 1
  %or.cond5 = select i1 %533, i1 %491, i1 false
  br i1 %or.cond5, label %534, label %541

534:                                              ; preds = %525
  %535 = load i32, ptr %25, align 4, !tbaa !5
  %536 = load i32, ptr %41, align 4, !tbaa !5
  %537 = sub nsw i32 %535, %536
  store i32 %537, ptr %27, align 4, !tbaa !5
  %538 = sext i32 %536 to i64
  %539 = getelementptr float, ptr %60, i64 %538
  %540 = getelementptr i8, ptr %539, i64 4
  call void @sormhr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %41, ptr noundef nonnull %12, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef %19, ptr noundef nonnull %20, ptr noundef nonnull %24, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %540, ptr noundef nonnull %27, ptr noundef nonnull %31) #6
  br label %541

541:                                              ; preds = %534, %525
  %542 = load i32, ptr %0, align 4, !tbaa !5
  %.not661 = icmp eq i32 %542, 0
  br i1 %.not661, label %543, label %545

543:                                              ; preds = %541
  %544 = load i32, ptr %3, align 4, !tbaa !5
  br label %545

545:                                              ; preds = %541, %543
  %.0636 = phi i32 [ %544, %543 ], [ 1, %541 ]
  store i32 %109, ptr %27, align 4, !tbaa !5
  %546 = load i32, ptr %21, align 4, !tbaa !5
  store i32 %546, ptr %28, align 4, !tbaa !5
  %547 = icmp slt i32 %546, 0
  %548 = icmp sge i32 %.0636, %109
  %549 = icmp sle i32 %.0636, %109
  %.in700 = select i1 %547, i1 %548, i1 %549
  br i1 %.in700, label %.lr.ph703, label %._crit_edge704

.lr.ph703:                                        ; preds = %545, %.lr.ph703
  %.0634701 = phi i32 [ %557, %.lr.ph703 ], [ %.0636, %545 ]
  %550 = load i32, ptr %21, align 4, !tbaa !5
  store i32 %550, ptr %29, align 4, !tbaa !5
  %551 = sub nsw i32 %110, %.0634701
  %552 = call i32 @llvm.smin.i32(i32 %550, i32 %551)
  store i32 %552, ptr %44, align 4, !tbaa !5
  %553 = add nsw i32 %.0634701, %148
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds float, ptr %48, i64 %554
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.1, ptr noundef nonnull %44, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef nonnull @c_b18, ptr noundef %555, ptr noundef nonnull %7, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull @c_b17, ptr noundef %22, ptr noundef %23) #6
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %44, ptr noundef nonnull %41, ptr noundef %22, ptr noundef %23, ptr noundef %555, ptr noundef nonnull %7) #6
  %556 = load i32, ptr %28, align 4, !tbaa !5
  %557 = add nsw i32 %556, %.0634701
  %558 = icmp slt i32 %556, 0
  %559 = load i32, ptr %27, align 4
  %560 = icmp sge i32 %557, %559
  %561 = icmp sle i32 %557, %559
  %.in = select i1 %558, i1 %560, i1 %561
  br i1 %.in, label %.lr.ph703, label %._crit_edge704.loopexit, !llvm.loop !15

._crit_edge704.loopexit:                          ; preds = %.lr.ph703
  %.pre719 = load i32, ptr %0, align 4, !tbaa !5
  br label %._crit_edge704

._crit_edge704:                                   ; preds = %._crit_edge704.loopexit, %545
  %562 = phi i32 [ %.pre719, %._crit_edge704.loopexit ], [ %542, %545 ]
  %.not662 = icmp eq i32 %562, 0
  br i1 %.not662, label %.loopexit673, label %563

563:                                              ; preds = %._crit_edge704
  %564 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %564, ptr %28, align 4, !tbaa !5
  %565 = load i32, ptr %18, align 4, !tbaa !5
  store i32 %565, ptr %27, align 4, !tbaa !5
  %566 = load i32, ptr %4, align 4, !tbaa !5
  %567 = add nsw i32 %566, 1
  %568 = icmp slt i32 %565, 0
  %569 = icmp sge i32 %567, %564
  %570 = icmp slt i32 %566, %564
  %.in663705 = select i1 %568, i1 %569, i1 %570
  br i1 %.in663705, label %.lr.ph708, label %.loopexit673

.lr.ph708:                                        ; preds = %563, %.lr.ph708
  %.0637706 = phi i32 [ %580, %.lr.ph708 ], [ %567, %563 ]
  %571 = load i32, ptr %18, align 4, !tbaa !5
  store i32 %571, ptr %29, align 4, !tbaa !5
  %572 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub = sub i32 %572, %.0637706
  %573 = add i32 %reass.sub, 1
  %574 = call i32 @llvm.smin.i32(i32 %571, i32 %573)
  store i32 %574, ptr %44, align 4, !tbaa !5
  %575 = mul nsw i32 %.0637706, %46
  %576 = add nsw i32 %575, %110
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds float, ptr %48, i64 %577
  call void @sgemm_(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, ptr noundef nonnull %41, ptr noundef nonnull %44, ptr noundef nonnull %41, ptr noundef nonnull @c_b18, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %578, ptr noundef nonnull %7, ptr noundef nonnull @c_b17, ptr noundef %19, ptr noundef nonnull %20) #6
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %41, ptr noundef nonnull %44, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %578, ptr noundef nonnull %7) #6
  %579 = load i32, ptr %27, align 4, !tbaa !5
  %580 = add nsw i32 %579, %.0637706
  %581 = icmp slt i32 %579, 0
  %582 = load i32, ptr %28, align 4
  %583 = icmp sge i32 %580, %582
  %584 = icmp sle i32 %580, %582
  %.in663 = select i1 %581, i1 %583, i1 %584
  br i1 %.in663, label %.lr.ph708, label %.loopexit673, !llvm.loop !16

.loopexit673:                                     ; preds = %.lr.ph708, %563, %._crit_edge704
  %585 = load i32, ptr %1, align 4, !tbaa !5
  %.not664 = icmp eq i32 %585, 0
  br i1 %.not664, label %.loopexit, label %586

586:                                              ; preds = %.loopexit673
  %587 = load i32, ptr %9, align 4, !tbaa !5
  store i32 %587, ptr %27, align 4, !tbaa !5
  %588 = load i32, ptr %21, align 4, !tbaa !5
  store i32 %588, ptr %28, align 4, !tbaa !5
  %589 = load i32, ptr %8, align 4, !tbaa !5
  %590 = icmp slt i32 %588, 0
  %591 = icmp sge i32 %589, %587
  %592 = icmp sle i32 %589, %587
  %.in665709 = select i1 %590, i1 %591, i1 %592
  br i1 %.in665709, label %.lr.ph712, label %.loopexit

.lr.ph712:                                        ; preds = %586
  %593 = mul nsw i32 %110, %49
  br label %594

594:                                              ; preds = %.lr.ph712, %594
  %.1635710 = phi i32 [ %589, %.lr.ph712 ], [ %603, %594 ]
  %595 = load i32, ptr %21, align 4, !tbaa !5
  store i32 %595, ptr %29, align 4, !tbaa !5
  %596 = load i32, ptr %9, align 4, !tbaa !5
  %reass.sub713 = sub i32 %596, %.1635710
  %597 = add i32 %reass.sub713, 1
  %598 = call i32 @llvm.smin.i32(i32 %595, i32 %597)
  store i32 %598, ptr %44, align 4, !tbaa !5
  %599 = add nsw i32 %.1635710, %593
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds float, ptr %51, i64 %600
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.1, ptr noundef nonnull %44, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef nonnull @c_b18, ptr noundef %601, ptr noundef nonnull %11, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull @c_b17, ptr noundef %22, ptr noundef nonnull %23) #6
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %44, ptr noundef nonnull %41, ptr noundef %22, ptr noundef nonnull %23, ptr noundef %601, ptr noundef nonnull %11) #6
  %602 = load i32, ptr %28, align 4, !tbaa !5
  %603 = add nsw i32 %602, %.1635710
  %604 = icmp slt i32 %602, 0
  %605 = load i32, ptr %27, align 4
  %606 = icmp sge i32 %603, %605
  %607 = icmp sle i32 %603, %605
  %.in665 = select i1 %604, i1 %606, i1 %607
  br i1 %.in665, label %594, label %.loopexit, !llvm.loop !17

.loopexit:                                        ; preds = %594, %586, %.loopexit673, %._crit_edge699
  %608 = load i32, ptr %41, align 4, !tbaa !5
  %609 = load i32, ptr %12, align 4, !tbaa !5
  %610 = sub nsw i32 %608, %609
  store i32 %610, ptr %13, align 4, !tbaa !5
  %611 = load i32, ptr %34, align 4, !tbaa !5
  %612 = load i32, ptr %12, align 4, !tbaa !5
  %613 = sub nsw i32 %612, %611
  store i32 %613, ptr %12, align 4, !tbaa !5
  %614 = sitofp i32 %.0621 to float
  br label %.sink.split

.sink.split:                                      ; preds = %120, %142, %140, %85, %.loopexit
  %.sink = phi float [ %614, %.loopexit ], [ %86, %85 ], [ 1.000000e+00, %140 ], [ 1.000000e+00, %142 ], [ 1.000000e+00, %120 ]
  store float %.sink, ptr %24, align 4, !tbaa !9
  br label %615

615:                                              ; preds = %.sink.split, %91, %87
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, 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
  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 @sgehrd_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sormhr_(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 @slaqr4_(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 float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

declare void @slarf_(ptr noundef, ptr noundef, 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

; 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.smin.i32(i32, i32) #5

; 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, !14}
!14 = !{!"llvm.loop.unroll.disable"}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}


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