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

169:                                              ; preds = %26
  %170 = load i64, ptr %64, align 8, !tbaa !9
  br label %173

171:                                              ; preds = %26
  %172 = load i64, ptr %65, align 8, !tbaa !9
  br label %173

173:                                              ; preds = %171, %169
  %174 = phi i64 [ %170, %169 ], [ %172, %171 ]
  store i64 %174, ptr %84, align 8, !tbaa !9
  %175 = load i64, ptr %84, align 8, !tbaa !9
  %176 = icmp sle i64 %175, 2
  br i1 %176, label %177, label %178

177:                                              ; preds = %173
  store i64 1, ptr %110, align 8, !tbaa !9
  br label %252

178:                                              ; preds = %173
  %179 = load i64, ptr %84, align 8, !tbaa !9
  %180 = sub nsw i64 %179, 1
  store i64 %180, ptr %64, align 8, !tbaa !9
  %181 = load ptr, ptr %47, align 8, !tbaa !5
  %182 = load i64, ptr %57, align 8, !tbaa !9
  %183 = getelementptr inbounds float, ptr %181, i64 %182
  %184 = load ptr, ptr %48, align 8, !tbaa !5
  %185 = load ptr, ptr %52, align 8, !tbaa !5
  %186 = getelementptr inbounds float, ptr %185, i64 1
  %187 = load ptr, ptr %52, align 8, !tbaa !5
  %188 = getelementptr inbounds float, ptr %187, i64 1
  %189 = call i32 @sgehrd_(ptr noundef %84, ptr noundef @c__1, ptr noundef %64, ptr noundef %183, ptr noundef %184, ptr noundef %186, ptr noundef %188, ptr noundef @c_n1, ptr noundef %97)
  %190 = load ptr, ptr %52, align 8, !tbaa !5
  %191 = getelementptr inbounds float, ptr %190, i64 1
  %192 = load float, ptr %191, align 4, !tbaa !11
  %193 = fptosi float %192 to i64
  store i64 %193, ptr %91, align 8, !tbaa !9
  %194 = load i64, ptr %84, align 8, !tbaa !9
  %195 = sub nsw i64 %194, 1
  store i64 %195, ptr %64, align 8, !tbaa !9
  %196 = load ptr, ptr %47, align 8, !tbaa !5
  %197 = load i64, ptr %57, align 8, !tbaa !9
  %198 = getelementptr inbounds float, ptr %196, i64 %197
  %199 = load ptr, ptr %48, align 8, !tbaa !5
  %200 = load ptr, ptr %52, align 8, !tbaa !5
  %201 = getelementptr inbounds float, ptr %200, i64 1
  %202 = load ptr, ptr %44, align 8, !tbaa !5
  %203 = load i64, ptr %59, align 8, !tbaa !9
  %204 = getelementptr inbounds float, ptr %202, i64 %203
  %205 = load ptr, ptr %45, align 8, !tbaa !5
  %206 = load ptr, ptr %52, align 8, !tbaa !5
  %207 = getelementptr inbounds float, ptr %206, i64 1
  %208 = call i32 @sormhr_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %84, ptr noundef %84, ptr noundef @c__1, ptr noundef %64, ptr noundef %198, ptr noundef %199, ptr noundef %201, ptr noundef %204, ptr noundef %205, ptr noundef %207, ptr noundef @c_n1, ptr noundef %97)
  %209 = load ptr, ptr %52, align 8, !tbaa !5
  %210 = getelementptr inbounds float, ptr %209, i64 1
  %211 = load float, ptr %210, align 4, !tbaa !11
  %212 = fptosi float %211 to i64
  store i64 %212, ptr %92, align 8, !tbaa !9
  %213 = load ptr, ptr %47, align 8, !tbaa !5
  %214 = load i64, ptr %57, align 8, !tbaa !9
  %215 = getelementptr inbounds float, ptr %213, i64 %214
  %216 = load ptr, ptr %48, align 8, !tbaa !5
  %217 = load ptr, ptr %42, align 8, !tbaa !5
  %218 = getelementptr inbounds float, ptr %217, i64 1
  %219 = load ptr, ptr %43, align 8, !tbaa !5
  %220 = getelementptr inbounds float, ptr %219, i64 1
  %221 = load ptr, ptr %44, align 8, !tbaa !5
  %222 = load i64, ptr %59, align 8, !tbaa !9
  %223 = getelementptr inbounds float, ptr %221, i64 %222
  %224 = load ptr, ptr %45, align 8, !tbaa !5
  %225 = load ptr, ptr %52, align 8, !tbaa !5
  %226 = getelementptr inbounds float, ptr %225, i64 1
  %227 = call i32 @slaqr4_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %84, ptr noundef @c__1, ptr noundef %84, ptr noundef %215, ptr noundef %216, ptr noundef %218, ptr noundef %220, ptr noundef @c__1, ptr noundef %84, ptr noundef %223, ptr noundef %224, ptr noundef %226, ptr noundef @c_n1, ptr noundef %104)
  %228 = load ptr, ptr %52, align 8, !tbaa !5
  %229 = getelementptr inbounds float, ptr %228, i64 1
  %230 = load float, ptr %229, align 4, !tbaa !11
  %231 = fptosi float %230 to i64
  store i64 %231, ptr %93, align 8, !tbaa !9
  %232 = load i64, ptr %84, align 8, !tbaa !9
  %233 = load i64, ptr %91, align 8, !tbaa !9
  %234 = load i64, ptr %92, align 8, !tbaa !9
  %235 = icmp sge i64 %233, %234
  br i1 %235, label %236, label %238

236:                                              ; preds = %178
  %237 = load i64, ptr %91, align 8, !tbaa !9
  br label %240

238:                                              ; preds = %178
  %239 = load i64, ptr %92, align 8, !tbaa !9
  br label %240

240:                                              ; preds = %238, %236
  %241 = phi i64 [ %237, %236 ], [ %239, %238 ]
  %242 = add nsw i64 %232, %241
  store i64 %242, ptr %64, align 8, !tbaa !9
  %243 = load i64, ptr %64, align 8, !tbaa !9
  %244 = load i64, ptr %93, align 8, !tbaa !9
  %245 = icmp sge i64 %243, %244
  br i1 %245, label %246, label %248

246:                                              ; preds = %240
  %247 = load i64, ptr %64, align 8, !tbaa !9
  br label %250

248:                                              ; preds = %240
  %249 = load i64, ptr %93, align 8, !tbaa !9
  br label %250

250:                                              ; preds = %248, %246
  %251 = phi i64 [ %247, %246 ], [ %249, %248 ]
  store i64 %251, ptr %110, align 8, !tbaa !9
  br label %252

252:                                              ; preds = %250, %177
  %253 = load ptr, ptr %53, align 8, !tbaa !5
  %254 = load i64, ptr %253, align 8, !tbaa !9
  %255 = icmp eq i64 %254, -1
  br i1 %255, label %256, label %261

256:                                              ; preds = %252
  %257 = load i64, ptr %110, align 8, !tbaa !9
  %258 = sitofp i64 %257 to float
  %259 = load ptr, ptr %52, align 8, !tbaa !5
  %260 = getelementptr inbounds float, ptr %259, i64 1
  store float %258, ptr %260, align 4, !tbaa !11
  store i32 0, ptr %27, align 4
  store i32 1, ptr %111, align 4
  br label %1709

261:                                              ; preds = %252
  %262 = load ptr, ptr %40, align 8, !tbaa !5
  store i64 0, ptr %262, align 8, !tbaa !9
  %263 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 0, ptr %263, align 8, !tbaa !9
  %264 = load ptr, ptr %52, align 8, !tbaa !5
  %265 = getelementptr inbounds float, ptr %264, i64 1
  store float 1.000000e+00, ptr %265, align 4, !tbaa !11
  %266 = load ptr, ptr %31, align 8, !tbaa !5
  %267 = load i64, ptr %266, align 8, !tbaa !9
  %268 = load ptr, ptr %32, align 8, !tbaa !5
  %269 = load i64, ptr %268, align 8, !tbaa !9
  %270 = icmp sgt i64 %267, %269
  br i1 %270, label %271, label %272

271:                                              ; preds = %261
  store i32 0, ptr %27, align 4
  store i32 1, ptr %111, align 4
  br label %1709

272:                                              ; preds = %261
  %273 = load ptr, ptr %33, align 8, !tbaa !5
  %274 = load i64, ptr %273, align 8, !tbaa !9
  %275 = icmp slt i64 %274, 1
  br i1 %275, label %276, label %277

276:                                              ; preds = %272
  store i32 0, ptr %27, align 4
  store i32 1, ptr %111, align 4
  br label %1709

277:                                              ; preds = %272
  %278 = call double @slamch_(ptr noundef @.str.2)
  %279 = fptrunc double %278 to float
  store float %279, ptr %106, align 4, !tbaa !11
  %280 = load float, ptr %106, align 4, !tbaa !11
  %281 = fdiv float 1.000000e+00, %280
  store float %281, ptr %107, align 4, !tbaa !11
  %282 = call i32 @slabad_(ptr noundef %106, ptr noundef %107)
  %283 = call double @slamch_(ptr noundef @.str.3)
  %284 = fptrunc double %283 to float
  store float %284, ptr %90, align 4, !tbaa !11
  %285 = load float, ptr %106, align 4, !tbaa !11
  %286 = load ptr, ptr %30, align 8, !tbaa !5
  %287 = load i64, ptr %286, align 8, !tbaa !9
  %288 = sitofp i64 %287 to float
  %289 = load float, ptr %90, align 4, !tbaa !11
  %290 = fdiv float %288, %289
  %291 = fmul float %285, %290
  store float %291, ptr %109, align 4, !tbaa !11
  %292 = load ptr, ptr %33, align 8, !tbaa !5
  %293 = load i64, ptr %292, align 8, !tbaa !9
  store i64 %293, ptr %64, align 8, !tbaa !9
  %294 = load ptr, ptr %32, align 8, !tbaa !5
  %295 = load i64, ptr %294, align 8, !tbaa !9
  %296 = load ptr, ptr %31, align 8, !tbaa !5
  %297 = load i64, ptr %296, align 8, !tbaa !9
  %298 = sub nsw i64 %295, %297
  %299 = add nsw i64 %298, 1
  store i64 %299, ptr %65, align 8, !tbaa !9
  %300 = load i64, ptr %64, align 8, !tbaa !9
  %301 = load i64, ptr %65, align 8, !tbaa !9
  %302 = icmp sle i64 %300, %301
  br i1 %302, label %303, label %305

303:                                              ; preds = %277
  %304 = load i64, ptr %64, align 8, !tbaa !9
  br label %307

305:                                              ; preds = %277
  %306 = load i64, ptr %65, align 8, !tbaa !9
  br label %307

307:                                              ; preds = %305, %303
  %308 = phi i64 [ %304, %303 ], [ %306, %305 ]
  store i64 %308, ptr %84, align 8, !tbaa !9
  %309 = load ptr, ptr %32, align 8, !tbaa !5
  %310 = load i64, ptr %309, align 8, !tbaa !9
  %311 = load i64, ptr %84, align 8, !tbaa !9
  %312 = sub nsw i64 %310, %311
  %313 = add nsw i64 %312, 1
  store i64 %313, ptr %105, align 8, !tbaa !9
  %314 = load i64, ptr %105, align 8, !tbaa !9
  %315 = load ptr, ptr %31, align 8, !tbaa !5
  %316 = load i64, ptr %315, align 8, !tbaa !9
  %317 = icmp eq i64 %314, %316
  br i1 %317, label %318, label %319

318:                                              ; preds = %307
  store float 0.000000e+00, ptr %77, align 4, !tbaa !11
  br label %329

319:                                              ; preds = %307
  %320 = load ptr, ptr %34, align 8, !tbaa !5
  %321 = load i64, ptr %105, align 8, !tbaa !9
  %322 = load i64, ptr %105, align 8, !tbaa !9
  %323 = sub nsw i64 %322, 1
  %324 = load i64, ptr %54, align 8, !tbaa !9
  %325 = mul nsw i64 %323, %324
  %326 = add nsw i64 %321, %325
  %327 = getelementptr inbounds float, ptr %320, i64 %326
  %328 = load float, ptr %327, align 4, !tbaa !11
  store float %328, ptr %77, align 4, !tbaa !11
  br label %329

329:                                              ; preds = %319, %318
  %330 = load ptr, ptr %32, align 8, !tbaa !5
  %331 = load i64, ptr %330, align 8, !tbaa !9
  %332 = load i64, ptr %105, align 8, !tbaa !9
  %333 = icmp eq i64 %331, %332
  br i1 %333, label %334, label %415

334:                                              ; preds = %329
  %335 = load ptr, ptr %34, align 8, !tbaa !5
  %336 = load i64, ptr %105, align 8, !tbaa !9
  %337 = load i64, ptr %105, align 8, !tbaa !9
  %338 = load i64, ptr %54, align 8, !tbaa !9
  %339 = mul nsw i64 %337, %338
  %340 = add nsw i64 %336, %339
  %341 = getelementptr inbounds float, ptr %335, i64 %340
  %342 = load float, ptr %341, align 4, !tbaa !11
  %343 = load ptr, ptr %42, align 8, !tbaa !5
  %344 = load i64, ptr %105, align 8, !tbaa !9
  %345 = getelementptr inbounds float, ptr %343, i64 %344
  store float %342, ptr %345, align 4, !tbaa !11
  %346 = load ptr, ptr %43, align 8, !tbaa !5
  %347 = load i64, ptr %105, align 8, !tbaa !9
  %348 = getelementptr inbounds float, ptr %346, i64 %347
  store float 0.000000e+00, ptr %348, align 4, !tbaa !11
  %349 = load ptr, ptr %40, align 8, !tbaa !5
  store i64 1, ptr %349, align 8, !tbaa !9
  %350 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 0, ptr %350, align 8, !tbaa !9
  %351 = load float, ptr %109, align 4, !tbaa !11
  store float %351, ptr %69, align 4, !tbaa !11
  %352 = load float, ptr %90, align 4, !tbaa !11
  %353 = fpext float %352 to double
  %354 = load ptr, ptr %34, align 8, !tbaa !5
  %355 = load i64, ptr %105, align 8, !tbaa !9
  %356 = load i64, ptr %105, align 8, !tbaa !9
  %357 = load i64, ptr %54, align 8, !tbaa !9
  %358 = mul nsw i64 %356, %357
  %359 = add nsw i64 %355, %358
  %360 = getelementptr inbounds float, ptr %354, i64 %359
  %361 = load float, ptr %360, align 4, !tbaa !11
  store float %361, ptr %68, align 4, !tbaa !11
  %362 = load float, ptr %68, align 4, !tbaa !11
  %363 = fcmp oge float %362, 0.000000e+00
  br i1 %363, label %364, label %366

364:                                              ; preds = %334
  %365 = load float, ptr %68, align 4, !tbaa !11
  br label %369

366:                                              ; preds = %334
  %367 = load float, ptr %68, align 4, !tbaa !11
  %368 = fneg float %367
  br label %369

369:                                              ; preds = %366, %364
  %370 = phi float [ %365, %364 ], [ %368, %366 ]
  %371 = fpext float %370 to double
  %372 = fmul double %353, %371
  %373 = fptrunc double %372 to float
  store float %373, ptr %70, align 4, !tbaa !11
  %374 = load float, ptr %77, align 4, !tbaa !11
  %375 = fcmp oge float %374, 0.000000e+00
  br i1 %375, label %376, label %378

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

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

381:                                              ; preds = %378, %376
  %382 = phi float [ %377, %376 ], [ %380, %378 ]
  %383 = fpext float %382 to double
  %384 = load float, ptr %69, align 4, !tbaa !11
  %385 = load float, ptr %70, align 4, !tbaa !11
  %386 = fcmp oge float %384, %385
  br i1 %386, label %387, label %389

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

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

391:                                              ; preds = %389, %387
  %392 = phi float [ %388, %387 ], [ %390, %389 ]
  %393 = fpext float %392 to double
  %394 = fcmp ole double %383, %393
  br i1 %394, label %395, label %412

395:                                              ; preds = %391
  %396 = load ptr, ptr %40, align 8, !tbaa !5
  store i64 0, ptr %396, align 8, !tbaa !9
  %397 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 1, ptr %397, align 8, !tbaa !9
  %398 = load i64, ptr %105, align 8, !tbaa !9
  %399 = load ptr, ptr %31, align 8, !tbaa !5
  %400 = load i64, ptr %399, align 8, !tbaa !9
  %401 = icmp sgt i64 %398, %400
  br i1 %401, label %402, label %411

402:                                              ; preds = %395
  %403 = load ptr, ptr %34, align 8, !tbaa !5
  %404 = load i64, ptr %105, align 8, !tbaa !9
  %405 = load i64, ptr %105, align 8, !tbaa !9
  %406 = sub nsw i64 %405, 1
  %407 = load i64, ptr %54, align 8, !tbaa !9
  %408 = mul nsw i64 %406, %407
  %409 = add nsw i64 %404, %408
  %410 = getelementptr inbounds float, ptr %403, i64 %409
  store float 0.000000e+00, ptr %410, align 4, !tbaa !11
  br label %411

411:                                              ; preds = %402, %395
  br label %412

412:                                              ; preds = %411, %391
  %413 = load ptr, ptr %52, align 8, !tbaa !5
  %414 = getelementptr inbounds float, ptr %413, i64 1
  store float 1.000000e+00, ptr %414, align 4, !tbaa !11
  store i32 0, ptr %27, align 4
  store i32 1, ptr %111, align 4
  br label %1709

415:                                              ; preds = %329
  %416 = load ptr, ptr %34, align 8, !tbaa !5
  %417 = load i64, ptr %105, align 8, !tbaa !9
  %418 = load i64, ptr %105, align 8, !tbaa !9
  %419 = load i64, ptr %54, align 8, !tbaa !9
  %420 = mul nsw i64 %418, %419
  %421 = add nsw i64 %417, %420
  %422 = getelementptr inbounds float, ptr %416, i64 %421
  %423 = load ptr, ptr %35, align 8, !tbaa !5
  %424 = load ptr, ptr %47, align 8, !tbaa !5
  %425 = load i64, ptr %57, align 8, !tbaa !9
  %426 = getelementptr inbounds float, ptr %424, i64 %425
  %427 = load ptr, ptr %48, align 8, !tbaa !5
  %428 = call i32 @slacpy_(ptr noundef @.str.4, ptr noundef %84, ptr noundef %84, ptr noundef %422, ptr noundef %423, ptr noundef %426, ptr noundef %427)
  %429 = load i64, ptr %84, align 8, !tbaa !9
  %430 = sub nsw i64 %429, 1
  store i64 %430, ptr %64, align 8, !tbaa !9
  %431 = load ptr, ptr %35, align 8, !tbaa !5
  %432 = load i64, ptr %431, align 8, !tbaa !9
  %433 = add nsw i64 %432, 1
  store i64 %433, ptr %65, align 8, !tbaa !9
  %434 = load ptr, ptr %48, align 8, !tbaa !5
  %435 = load i64, ptr %434, align 8, !tbaa !9
  %436 = add nsw i64 %435, 1
  store i64 %436, ptr %66, align 8, !tbaa !9
  %437 = load ptr, ptr %34, align 8, !tbaa !5
  %438 = load i64, ptr %105, align 8, !tbaa !9
  %439 = add nsw i64 %438, 1
  %440 = load i64, ptr %105, align 8, !tbaa !9
  %441 = load i64, ptr %54, align 8, !tbaa !9
  %442 = mul nsw i64 %440, %441
  %443 = add nsw i64 %439, %442
  %444 = getelementptr inbounds float, ptr %437, i64 %443
  %445 = load ptr, ptr %47, align 8, !tbaa !5
  %446 = load i64, ptr %56, align 8, !tbaa !9
  %447 = add nsw i64 %446, 2
  %448 = getelementptr inbounds float, ptr %445, i64 %447
  %449 = call i32 @f2c_scopy(ptr noundef %64, ptr noundef %444, ptr noundef %65, ptr noundef %448, ptr noundef %66)
  %450 = load ptr, ptr %44, align 8, !tbaa !5
  %451 = load i64, ptr %59, align 8, !tbaa !9
  %452 = getelementptr inbounds float, ptr %450, i64 %451
  %453 = load ptr, ptr %45, align 8, !tbaa !5
  %454 = call i32 @slaset_(ptr noundef @.str.5, ptr noundef %84, ptr noundef %84, ptr noundef @c_b17, ptr noundef @c_b18, ptr noundef %452, ptr noundef %453)
  %455 = load ptr, ptr %53, align 8, !tbaa !5
  %456 = call i64 @ilaenv_(ptr noundef @c__12, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %84, ptr noundef @c__1, ptr noundef %84, ptr noundef %455)
  store i64 %456, ptr %98, align 8, !tbaa !9
  %457 = load i64, ptr %84, align 8, !tbaa !9
  %458 = load i64, ptr %98, align 8, !tbaa !9
  %459 = icmp sgt i64 %457, %458
  br i1 %459, label %460, label %479

460:                                              ; preds = %415
  %461 = load ptr, ptr %47, align 8, !tbaa !5
  %462 = load i64, ptr %57, align 8, !tbaa !9
  %463 = getelementptr inbounds float, ptr %461, i64 %462
  %464 = load ptr, ptr %48, align 8, !tbaa !5
  %465 = load ptr, ptr %42, align 8, !tbaa !5
  %466 = load i64, ptr %105, align 8, !tbaa !9
  %467 = getelementptr inbounds float, ptr %465, i64 %466
  %468 = load ptr, ptr %43, align 8, !tbaa !5
  %469 = load i64, ptr %105, align 8, !tbaa !9
  %470 = getelementptr inbounds float, ptr %468, i64 %469
  %471 = load ptr, ptr %44, align 8, !tbaa !5
  %472 = load i64, ptr %59, align 8, !tbaa !9
  %473 = getelementptr inbounds float, ptr %471, i64 %472
  %474 = load ptr, ptr %45, align 8, !tbaa !5
  %475 = load ptr, ptr %52, align 8, !tbaa !5
  %476 = getelementptr inbounds float, ptr %475, i64 1
  %477 = load ptr, ptr %53, align 8, !tbaa !5
  %478 = call i32 @slaqr4_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %84, ptr noundef @c__1, ptr noundef %84, ptr noundef %463, ptr noundef %464, ptr noundef %467, ptr noundef %470, ptr noundef @c__1, ptr noundef %84, ptr noundef %473, ptr noundef %474, ptr noundef %476, ptr noundef %477, ptr noundef %104)
  br label %495

479:                                              ; preds = %415
  %480 = load ptr, ptr %47, align 8, !tbaa !5
  %481 = load i64, ptr %57, align 8, !tbaa !9
  %482 = getelementptr inbounds float, ptr %480, i64 %481
  %483 = load ptr, ptr %48, align 8, !tbaa !5
  %484 = load ptr, ptr %42, align 8, !tbaa !5
  %485 = load i64, ptr %105, align 8, !tbaa !9
  %486 = getelementptr inbounds float, ptr %484, i64 %485
  %487 = load ptr, ptr %43, align 8, !tbaa !5
  %488 = load i64, ptr %105, align 8, !tbaa !9
  %489 = getelementptr inbounds float, ptr %487, i64 %488
  %490 = load ptr, ptr %44, align 8, !tbaa !5
  %491 = load i64, ptr %59, align 8, !tbaa !9
  %492 = getelementptr inbounds float, ptr %490, i64 %491
  %493 = load ptr, ptr %45, align 8, !tbaa !5
  %494 = call i32 @slahqr_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %84, ptr noundef @c__1, ptr noundef %84, ptr noundef %482, ptr noundef %483, ptr noundef %486, ptr noundef %489, ptr noundef @c__1, ptr noundef %84, ptr noundef %492, ptr noundef %493, ptr noundef %104)
  br label %495

495:                                              ; preds = %479, %460
  %496 = load i64, ptr %84, align 8, !tbaa !9
  %497 = sub nsw i64 %496, 3
  store i64 %497, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %498

498:                                              ; preds = %519, %495
  %499 = load i64, ptr %75, align 8, !tbaa !9
  %500 = load i64, ptr %64, align 8, !tbaa !9
  %501 = icmp sle i64 %499, %500
  br i1 %501, label %502, label %522

502:                                              ; preds = %498
  %503 = load ptr, ptr %47, align 8, !tbaa !5
  %504 = load i64, ptr %75, align 8, !tbaa !9
  %505 = add nsw i64 %504, 2
  %506 = load i64, ptr %75, align 8, !tbaa !9
  %507 = load i64, ptr %56, align 8, !tbaa !9
  %508 = mul nsw i64 %506, %507
  %509 = add nsw i64 %505, %508
  %510 = getelementptr inbounds float, ptr %503, i64 %509
  store float 0.000000e+00, ptr %510, align 4, !tbaa !11
  %511 = load ptr, ptr %47, align 8, !tbaa !5
  %512 = load i64, ptr %75, align 8, !tbaa !9
  %513 = add nsw i64 %512, 3
  %514 = load i64, ptr %75, align 8, !tbaa !9
  %515 = load i64, ptr %56, align 8, !tbaa !9
  %516 = mul nsw i64 %514, %515
  %517 = add nsw i64 %513, %516
  %518 = getelementptr inbounds float, ptr %511, i64 %517
  store float 0.000000e+00, ptr %518, align 4, !tbaa !11
  br label %519

519:                                              ; preds = %502
  %520 = load i64, ptr %75, align 8, !tbaa !9
  %521 = add nsw i64 %520, 1
  store i64 %521, ptr %75, align 8, !tbaa !9
  br label %498, !llvm.loop !13

522:                                              ; preds = %498
  %523 = load i64, ptr %84, align 8, !tbaa !9
  %524 = icmp sgt i64 %523, 2
  br i1 %524, label %525, label %534

525:                                              ; preds = %522
  %526 = load ptr, ptr %47, align 8, !tbaa !5
  %527 = load i64, ptr %84, align 8, !tbaa !9
  %528 = load i64, ptr %84, align 8, !tbaa !9
  %529 = sub nsw i64 %528, 2
  %530 = load i64, ptr %56, align 8, !tbaa !9
  %531 = mul nsw i64 %529, %530
  %532 = add nsw i64 %527, %531
  %533 = getelementptr inbounds float, ptr %526, i64 %532
  store float 0.000000e+00, ptr %533, align 4, !tbaa !11
  br label %534

534:                                              ; preds = %525, %522
  %535 = load i64, ptr %84, align 8, !tbaa !9
  %536 = load ptr, ptr %40, align 8, !tbaa !5
  store i64 %535, ptr %536, align 8, !tbaa !9
  %537 = load i64, ptr %104, align 8, !tbaa !9
  %538 = add nsw i64 %537, 1
  store i64 %538, ptr %100, align 8, !tbaa !9
  br label %539

539:                                              ; preds = %831, %534
  %540 = load i64, ptr %100, align 8, !tbaa !9
  %541 = load ptr, ptr %40, align 8, !tbaa !5
  %542 = load i64, ptr %541, align 8, !tbaa !9
  %543 = icmp sle i64 %540, %542
  br i1 %543, label %544, label %832

544:                                              ; preds = %539
  %545 = load ptr, ptr %40, align 8, !tbaa !5
  %546 = load i64, ptr %545, align 8, !tbaa !9
  %547 = icmp eq i64 %546, 1
  br i1 %547, label %548, label %549

548:                                              ; preds = %544
  store i64 0, ptr %103, align 8, !tbaa !9
  br label %564

549:                                              ; preds = %544
  %550 = load ptr, ptr %47, align 8, !tbaa !5
  %551 = load ptr, ptr %40, align 8, !tbaa !5
  %552 = load i64, ptr %551, align 8, !tbaa !9
  %553 = load ptr, ptr %40, align 8, !tbaa !5
  %554 = load i64, ptr %553, align 8, !tbaa !9
  %555 = sub nsw i64 %554, 1
  %556 = load i64, ptr %56, align 8, !tbaa !9
  %557 = mul nsw i64 %555, %556
  %558 = add nsw i64 %552, %557
  %559 = getelementptr inbounds float, ptr %550, i64 %558
  %560 = load float, ptr %559, align 4, !tbaa !11
  %561 = fcmp une float %560, 0.000000e+00
  %562 = zext i1 %561 to i32
  %563 = sext i32 %562 to i64
  store i64 %563, ptr %103, align 8, !tbaa !9
  br label %564

564:                                              ; preds = %549, %548
  %565 = load i64, ptr %103, align 8, !tbaa !9
  %566 = icmp ne i64 %565, 0
  br i1 %566, label %660, label %567

567:                                              ; preds = %564
  %568 = load ptr, ptr %47, align 8, !tbaa !5
  %569 = load ptr, ptr %40, align 8, !tbaa !5
  %570 = load i64, ptr %569, align 8, !tbaa !9
  %571 = load ptr, ptr %40, align 8, !tbaa !5
  %572 = load i64, ptr %571, align 8, !tbaa !9
  %573 = load i64, ptr %56, align 8, !tbaa !9
  %574 = mul nsw i64 %572, %573
  %575 = add nsw i64 %570, %574
  %576 = getelementptr inbounds float, ptr %568, i64 %575
  %577 = load float, ptr %576, align 4, !tbaa !11
  store float %577, ptr %68, align 4, !tbaa !11
  %578 = load float, ptr %68, align 4, !tbaa !11
  %579 = fcmp oge float %578, 0.000000e+00
  br i1 %579, label %580, label %582

580:                                              ; preds = %567
  %581 = load float, ptr %68, align 4, !tbaa !11
  br label %585

582:                                              ; preds = %567
  %583 = load float, ptr %68, align 4, !tbaa !11
  %584 = fneg float %583
  br label %585

585:                                              ; preds = %582, %580
  %586 = phi float [ %581, %580 ], [ %584, %582 ]
  %587 = fpext float %586 to double
  %588 = fptrunc double %587 to float
  store float %588, ptr %87, align 4, !tbaa !11
  %589 = load float, ptr %87, align 4, !tbaa !11
  %590 = fcmp oeq float %589, 0.000000e+00
  br i1 %590, label %591, label %603

591:                                              ; preds = %585
  %592 = load float, ptr %77, align 4, !tbaa !11
  %593 = fcmp oge float %592, 0.000000e+00
  br i1 %593, label %594, label %596

594:                                              ; preds = %591
  %595 = load float, ptr %77, align 4, !tbaa !11
  br label %599

596:                                              ; preds = %591
  %597 = load float, ptr %77, align 4, !tbaa !11
  %598 = fneg float %597
  br label %599

599:                                              ; preds = %596, %594
  %600 = phi float [ %595, %594 ], [ %598, %596 ]
  %601 = fpext float %600 to double
  %602 = fptrunc double %601 to float
  store float %602, ptr %87, align 4, !tbaa !11
  br label %603

603:                                              ; preds = %599, %585
  %604 = load float, ptr %109, align 4, !tbaa !11
  store float %604, ptr %69, align 4, !tbaa !11
  %605 = load float, ptr %90, align 4, !tbaa !11
  %606 = load float, ptr %87, align 4, !tbaa !11
  %607 = fmul float %605, %606
  store float %607, ptr %70, align 4, !tbaa !11
  %608 = load float, ptr %77, align 4, !tbaa !11
  %609 = load ptr, ptr %44, align 8, !tbaa !5
  %610 = load ptr, ptr %40, align 8, !tbaa !5
  %611 = load i64, ptr %610, align 8, !tbaa !9
  %612 = load i64, ptr %58, align 8, !tbaa !9
  %613 = mul nsw i64 %611, %612
  %614 = add nsw i64 %613, 1
  %615 = getelementptr inbounds float, ptr %609, i64 %614
  %616 = load float, ptr %615, align 4, !tbaa !11
  %617 = fmul float %608, %616
  store float %617, ptr %68, align 4, !tbaa !11
  %618 = load float, ptr %68, align 4, !tbaa !11
  %619 = fcmp oge float %618, 0.000000e+00
  br i1 %619, label %620, label %622

620:                                              ; preds = %603
  %621 = load float, ptr %68, align 4, !tbaa !11
  br label %625

622:                                              ; preds = %603
  %623 = load float, ptr %68, align 4, !tbaa !11
  %624 = fneg float %623
  br label %625

625:                                              ; preds = %622, %620
  %626 = phi float [ %621, %620 ], [ %624, %622 ]
  %627 = fpext float %626 to double
  %628 = load float, ptr %69, align 4, !tbaa !11
  %629 = load float, ptr %70, align 4, !tbaa !11
  %630 = fcmp oge float %628, %629
  br i1 %630, label %631, label %633

631:                                              ; preds = %625
  %632 = load float, ptr %69, align 4, !tbaa !11
  br label %635

633:                                              ; preds = %625
  %634 = load float, ptr %70, align 4, !tbaa !11
  br label %635

635:                                              ; preds = %633, %631
  %636 = phi float [ %632, %631 ], [ %634, %633 ]
  %637 = fpext float %636 to double
  %638 = fcmp ole double %627, %637
  br i1 %638, label %639, label %643

639:                                              ; preds = %635
  %640 = load ptr, ptr %40, align 8, !tbaa !5
  %641 = load i64, ptr %640, align 8, !tbaa !9
  %642 = add nsw i64 %641, -1
  store i64 %642, ptr %640, align 8, !tbaa !9
  br label %659

643:                                              ; preds = %635
  %644 = load ptr, ptr %40, align 8, !tbaa !5
  %645 = load i64, ptr %644, align 8, !tbaa !9
  store i64 %645, ptr %99, align 8, !tbaa !9
  %646 = load ptr, ptr %47, align 8, !tbaa !5
  %647 = load i64, ptr %57, align 8, !tbaa !9
  %648 = getelementptr inbounds float, ptr %646, i64 %647
  %649 = load ptr, ptr %48, align 8, !tbaa !5
  %650 = load ptr, ptr %44, align 8, !tbaa !5
  %651 = load i64, ptr %59, align 8, !tbaa !9
  %652 = getelementptr inbounds float, ptr %650, i64 %651
  %653 = load ptr, ptr %45, align 8, !tbaa !5
  %654 = load ptr, ptr %52, align 8, !tbaa !5
  %655 = getelementptr inbounds float, ptr %654, i64 1
  %656 = call i32 @strexc_(ptr noundef @.str.8, ptr noundef %84, ptr noundef %648, ptr noundef %649, ptr noundef %652, ptr noundef %653, ptr noundef %99, ptr noundef %100, ptr noundef %655, ptr noundef %97)
  %657 = load i64, ptr %100, align 8, !tbaa !9
  %658 = add nsw i64 %657, 1
  store i64 %658, ptr %100, align 8, !tbaa !9
  br label %659

659:                                              ; preds = %643, %639
  br label %831

660:                                              ; preds = %564
  %661 = load ptr, ptr %47, align 8, !tbaa !5
  %662 = load ptr, ptr %40, align 8, !tbaa !5
  %663 = load i64, ptr %662, align 8, !tbaa !9
  %664 = load ptr, ptr %40, align 8, !tbaa !5
  %665 = load i64, ptr %664, align 8, !tbaa !9
  %666 = load i64, ptr %56, align 8, !tbaa !9
  %667 = mul nsw i64 %665, %666
  %668 = add nsw i64 %663, %667
  %669 = getelementptr inbounds float, ptr %661, i64 %668
  %670 = load float, ptr %669, align 4, !tbaa !11
  store float %670, ptr %70, align 4, !tbaa !11
  %671 = load float, ptr %70, align 4, !tbaa !11
  %672 = fcmp oge float %671, 0.000000e+00
  br i1 %672, label %673, label %675

673:                                              ; preds = %660
  %674 = load float, ptr %70, align 4, !tbaa !11
  br label %678

675:                                              ; preds = %660
  %676 = load float, ptr %70, align 4, !tbaa !11
  %677 = fneg float %676
  br label %678

678:                                              ; preds = %675, %673
  %679 = phi float [ %674, %673 ], [ %677, %675 ]
  %680 = fpext float %679 to double
  %681 = load ptr, ptr %47, align 8, !tbaa !5
  %682 = load ptr, ptr %40, align 8, !tbaa !5
  %683 = load i64, ptr %682, align 8, !tbaa !9
  %684 = load ptr, ptr %40, align 8, !tbaa !5
  %685 = load i64, ptr %684, align 8, !tbaa !9
  %686 = sub nsw i64 %685, 1
  %687 = load i64, ptr %56, align 8, !tbaa !9
  %688 = mul nsw i64 %686, %687
  %689 = add nsw i64 %683, %688
  %690 = getelementptr inbounds float, ptr %681, i64 %689
  %691 = load float, ptr %690, align 4, !tbaa !11
  store float %691, ptr %68, align 4, !tbaa !11
  %692 = load float, ptr %68, align 4, !tbaa !11
  %693 = fcmp oge float %692, 0.000000e+00
  br i1 %693, label %694, label %696

694:                                              ; preds = %678
  %695 = load float, ptr %68, align 4, !tbaa !11
  br label %699

696:                                              ; preds = %678
  %697 = load float, ptr %68, align 4, !tbaa !11
  %698 = fneg float %697
  br label %699

699:                                              ; preds = %696, %694
  %700 = phi float [ %695, %694 ], [ %698, %696 ]
  %701 = fpext float %700 to double
  %702 = call double @sqrt(double noundef %701) #5
  %703 = load ptr, ptr %47, align 8, !tbaa !5
  %704 = load ptr, ptr %40, align 8, !tbaa !5
  %705 = load i64, ptr %704, align 8, !tbaa !9
  %706 = sub nsw i64 %705, 1
  %707 = load ptr, ptr %40, align 8, !tbaa !5
  %708 = load i64, ptr %707, align 8, !tbaa !9
  %709 = load i64, ptr %56, align 8, !tbaa !9
  %710 = mul nsw i64 %708, %709
  %711 = add nsw i64 %706, %710
  %712 = getelementptr inbounds float, ptr %703, i64 %711
  %713 = load float, ptr %712, align 4, !tbaa !11
  store float %713, ptr %69, align 4, !tbaa !11
  %714 = load float, ptr %69, align 4, !tbaa !11
  %715 = fcmp oge float %714, 0.000000e+00
  br i1 %715, label %716, label %718

716:                                              ; preds = %699
  %717 = load float, ptr %69, align 4, !tbaa !11
  br label %721

718:                                              ; preds = %699
  %719 = load float, ptr %69, align 4, !tbaa !11
  %720 = fneg float %719
  br label %721

721:                                              ; preds = %718, %716
  %722 = phi float [ %717, %716 ], [ %720, %718 ]
  %723 = fpext float %722 to double
  %724 = call double @sqrt(double noundef %723) #5
  %725 = call double @llvm.fmuladd.f64(double %702, double %724, double %680)
  %726 = fptrunc double %725 to float
  store float %726, ptr %87, align 4, !tbaa !11
  %727 = load float, ptr %87, align 4, !tbaa !11
  %728 = fcmp oeq float %727, 0.000000e+00
  br i1 %728, label %729, label %741

729:                                              ; preds = %721
  %730 = load float, ptr %77, align 4, !tbaa !11
  %731 = fcmp oge float %730, 0.000000e+00
  br i1 %731, label %732, label %734

732:                                              ; preds = %729
  %733 = load float, ptr %77, align 4, !tbaa !11
  br label %737

734:                                              ; preds = %729
  %735 = load float, ptr %77, align 4, !tbaa !11
  %736 = fneg float %735
  br label %737

737:                                              ; preds = %734, %732
  %738 = phi float [ %733, %732 ], [ %736, %734 ]
  %739 = fpext float %738 to double
  %740 = fptrunc double %739 to float
  store float %740, ptr %87, align 4, !tbaa !11
  br label %741

741:                                              ; preds = %737, %721
  %742 = load float, ptr %77, align 4, !tbaa !11
  %743 = load ptr, ptr %44, align 8, !tbaa !5
  %744 = load ptr, ptr %40, align 8, !tbaa !5
  %745 = load i64, ptr %744, align 8, !tbaa !9
  %746 = load i64, ptr %58, align 8, !tbaa !9
  %747 = mul nsw i64 %745, %746
  %748 = add nsw i64 %747, 1
  %749 = getelementptr inbounds float, ptr %743, i64 %748
  %750 = load float, ptr %749, align 4, !tbaa !11
  %751 = fmul float %742, %750
  store float %751, ptr %68, align 4, !tbaa !11
  %752 = load float, ptr %68, align 4, !tbaa !11
  %753 = fcmp oge float %752, 0.000000e+00
  br i1 %753, label %754, label %756

754:                                              ; preds = %741
  %755 = load float, ptr %68, align 4, !tbaa !11
  br label %759

756:                                              ; preds = %741
  %757 = load float, ptr %68, align 4, !tbaa !11
  %758 = fneg float %757
  br label %759

759:                                              ; preds = %756, %754
  %760 = phi float [ %755, %754 ], [ %758, %756 ]
  %761 = fpext float %760 to double
  %762 = fptrunc double %761 to float
  store float %762, ptr %70, align 4, !tbaa !11
  %763 = load float, ptr %77, align 4, !tbaa !11
  %764 = load ptr, ptr %44, align 8, !tbaa !5
  %765 = load ptr, ptr %40, align 8, !tbaa !5
  %766 = load i64, ptr %765, align 8, !tbaa !9
  %767 = sub nsw i64 %766, 1
  %768 = load i64, ptr %58, align 8, !tbaa !9
  %769 = mul nsw i64 %767, %768
  %770 = add nsw i64 %769, 1
  %771 = getelementptr inbounds float, ptr %764, i64 %770
  %772 = load float, ptr %771, align 4, !tbaa !11
  %773 = fmul float %763, %772
  store float %773, ptr %69, align 4, !tbaa !11
  %774 = load float, ptr %69, align 4, !tbaa !11
  %775 = fcmp oge float %774, 0.000000e+00
  br i1 %775, label %776, label %778

776:                                              ; preds = %759
  %777 = load float, ptr %69, align 4, !tbaa !11
  br label %781

778:                                              ; preds = %759
  %779 = load float, ptr %69, align 4, !tbaa !11
  %780 = fneg float %779
  br label %781

781:                                              ; preds = %778, %776
  %782 = phi float [ %777, %776 ], [ %780, %778 ]
  %783 = fpext float %782 to double
  %784 = fptrunc double %783 to float
  store float %784, ptr %71, align 4, !tbaa !11
  %785 = load float, ptr %109, align 4, !tbaa !11
  store float %785, ptr %72, align 4, !tbaa !11
  %786 = load float, ptr %90, align 4, !tbaa !11
  %787 = load float, ptr %87, align 4, !tbaa !11
  %788 = fmul float %786, %787
  store float %788, ptr %73, align 4, !tbaa !11
  %789 = load float, ptr %70, align 4, !tbaa !11
  %790 = load float, ptr %71, align 4, !tbaa !11
  %791 = fcmp oge float %789, %790
  br i1 %791, label %792, label %794

792:                                              ; preds = %781
  %793 = load float, ptr %70, align 4, !tbaa !11
  br label %796

794:                                              ; preds = %781
  %795 = load float, ptr %71, align 4, !tbaa !11
  br label %796

796:                                              ; preds = %794, %792
  %797 = phi float [ %793, %792 ], [ %795, %794 ]
  %798 = fpext float %797 to double
  %799 = load float, ptr %72, align 4, !tbaa !11
  %800 = load float, ptr %73, align 4, !tbaa !11
  %801 = fcmp oge float %799, %800
  br i1 %801, label %802, label %804

802:                                              ; preds = %796
  %803 = load float, ptr %72, align 4, !tbaa !11
  br label %806

804:                                              ; preds = %796
  %805 = load float, ptr %73, align 4, !tbaa !11
  br label %806

806:                                              ; preds = %804, %802
  %807 = phi float [ %803, %802 ], [ %805, %804 ]
  %808 = fpext float %807 to double
  %809 = fcmp ole double %798, %808
  br i1 %809, label %810, label %814

810:                                              ; preds = %806
  %811 = load ptr, ptr %40, align 8, !tbaa !5
  %812 = load i64, ptr %811, align 8, !tbaa !9
  %813 = add nsw i64 %812, -2
  store i64 %813, ptr %811, align 8, !tbaa !9
  br label %830

814:                                              ; preds = %806
  %815 = load ptr, ptr %40, align 8, !tbaa !5
  %816 = load i64, ptr %815, align 8, !tbaa !9
  store i64 %816, ptr %99, align 8, !tbaa !9
  %817 = load ptr, ptr %47, align 8, !tbaa !5
  %818 = load i64, ptr %57, align 8, !tbaa !9
  %819 = getelementptr inbounds float, ptr %817, i64 %818
  %820 = load ptr, ptr %48, align 8, !tbaa !5
  %821 = load ptr, ptr %44, align 8, !tbaa !5
  %822 = load i64, ptr %59, align 8, !tbaa !9
  %823 = getelementptr inbounds float, ptr %821, i64 %822
  %824 = load ptr, ptr %45, align 8, !tbaa !5
  %825 = load ptr, ptr %52, align 8, !tbaa !5
  %826 = getelementptr inbounds float, ptr %825, i64 1
  %827 = call i32 @strexc_(ptr noundef @.str.8, ptr noundef %84, ptr noundef %819, ptr noundef %820, ptr noundef %823, ptr noundef %824, ptr noundef %99, ptr noundef %100, ptr noundef %826, ptr noundef %97)
  %828 = load i64, ptr %100, align 8, !tbaa !9
  %829 = add nsw i64 %828, 2
  store i64 %829, ptr %100, align 8, !tbaa !9
  br label %830

830:                                              ; preds = %814, %810
  br label %831

831:                                              ; preds = %830, %659
  br label %539

832:                                              ; preds = %539
  %833 = load ptr, ptr %40, align 8, !tbaa !5
  %834 = load i64, ptr %833, align 8, !tbaa !9
  %835 = icmp eq i64 %834, 0
  br i1 %835, label %836, label %837

836:                                              ; preds = %832
  store float 0.000000e+00, ptr %77, align 4, !tbaa !11
  br label %837

837:                                              ; preds = %836, %832
  %838 = load ptr, ptr %40, align 8, !tbaa !5
  %839 = load i64, ptr %838, align 8, !tbaa !9
  %840 = load i64, ptr %84, align 8, !tbaa !9
  %841 = icmp slt i64 %839, %840
  br i1 %841, label %842, label %1143

842:                                              ; preds = %837
  store i64 0, ptr %108, align 8, !tbaa !9
  %843 = load ptr, ptr %40, align 8, !tbaa !5
  %844 = load i64, ptr %843, align 8, !tbaa !9
  %845 = add nsw i64 %844, 1
  store i64 %845, ptr %74, align 8, !tbaa !9
  br label %846

846:                                              ; preds = %1141, %842
  %847 = load i64, ptr %108, align 8, !tbaa !9
  %848 = icmp ne i64 %847, 0
  br i1 %848, label %849, label %850

849:                                              ; preds = %846
  br label %1142

850:                                              ; preds = %846
  store i64 1, ptr %108, align 8, !tbaa !9
  %851 = load i64, ptr %74, align 8, !tbaa !9
  %852 = sub nsw i64 %851, 1
  store i64 %852, ptr %95, align 8, !tbaa !9
  %853 = load i64, ptr %104, align 8, !tbaa !9
  %854 = add nsw i64 %853, 1
  store i64 %854, ptr %74, align 8, !tbaa !9
  %855 = load i64, ptr %74, align 8, !tbaa !9
  %856 = load ptr, ptr %40, align 8, !tbaa !5
  %857 = load i64, ptr %856, align 8, !tbaa !9
  %858 = icmp eq i64 %855, %857
  br i1 %858, label %859, label %862

859:                                              ; preds = %850
  %860 = load i64, ptr %74, align 8, !tbaa !9
  %861 = add nsw i64 %860, 1
  store i64 %861, ptr %76, align 8, !tbaa !9
  br label %880

862:                                              ; preds = %850
  %863 = load ptr, ptr %47, align 8, !tbaa !5
  %864 = load i64, ptr %74, align 8, !tbaa !9
  %865 = add nsw i64 %864, 1
  %866 = load i64, ptr %74, align 8, !tbaa !9
  %867 = load i64, ptr %56, align 8, !tbaa !9
  %868 = mul nsw i64 %866, %867
  %869 = add nsw i64 %865, %868
  %870 = getelementptr inbounds float, ptr %863, i64 %869
  %871 = load float, ptr %870, align 4, !tbaa !11
  %872 = fcmp oeq float %871, 0.000000e+00
  br i1 %872, label %873, label %876

873:                                              ; preds = %862
  %874 = load i64, ptr %74, align 8, !tbaa !9
  %875 = add nsw i64 %874, 1
  store i64 %875, ptr %76, align 8, !tbaa !9
  br label %879

876:                                              ; preds = %862
  %877 = load i64, ptr %74, align 8, !tbaa !9
  %878 = add nsw i64 %877, 2
  store i64 %878, ptr %76, align 8, !tbaa !9
  br label %879

879:                                              ; preds = %876, %873
  br label %880

880:                                              ; preds = %879, %859
  br label %881

881:                                              ; preds = %1140, %880
  %882 = load i64, ptr %76, align 8, !tbaa !9
  %883 = load i64, ptr %95, align 8, !tbaa !9
  %884 = icmp sle i64 %882, %883
  br i1 %884, label %885, label %1141

885:                                              ; preds = %881
  %886 = load i64, ptr %76, align 8, !tbaa !9
  %887 = load i64, ptr %74, align 8, !tbaa !9
  %888 = add nsw i64 %887, 1
  %889 = icmp eq i64 %886, %888
  br i1 %889, label %890, label %910

890:                                              ; preds = %885
  %891 = load ptr, ptr %47, align 8, !tbaa !5
  %892 = load i64, ptr %74, align 8, !tbaa !9
  %893 = load i64, ptr %74, align 8, !tbaa !9
  %894 = load i64, ptr %56, align 8, !tbaa !9
  %895 = mul nsw i64 %893, %894
  %896 = add nsw i64 %892, %895
  %897 = getelementptr inbounds float, ptr %891, i64 %896
  %898 = load float, ptr %897, align 4, !tbaa !11
  store float %898, ptr %68, align 4, !tbaa !11
  %899 = load float, ptr %68, align 4, !tbaa !11
  %900 = fcmp oge float %899, 0.000000e+00
  br i1 %900, label %901, label %903

901:                                              ; preds = %890
  %902 = load float, ptr %68, align 4, !tbaa !11
  br label %906

903:                                              ; preds = %890
  %904 = load float, ptr %68, align 4, !tbaa !11
  %905 = fneg float %904
  br label %906

906:                                              ; preds = %903, %901
  %907 = phi float [ %902, %901 ], [ %905, %903 ]
  %908 = fpext float %907 to double
  %909 = fptrunc double %908 to float
  store float %909, ptr %85, align 4, !tbaa !11
  br label %971

910:                                              ; preds = %885
  %911 = load ptr, ptr %47, align 8, !tbaa !5
  %912 = load i64, ptr %74, align 8, !tbaa !9
  %913 = load i64, ptr %74, align 8, !tbaa !9
  %914 = load i64, ptr %56, align 8, !tbaa !9
  %915 = mul nsw i64 %913, %914
  %916 = add nsw i64 %912, %915
  %917 = getelementptr inbounds float, ptr %911, i64 %916
  %918 = load float, ptr %917, align 4, !tbaa !11
  store float %918, ptr %70, align 4, !tbaa !11
  %919 = load float, ptr %70, align 4, !tbaa !11
  %920 = fcmp oge float %919, 0.000000e+00
  br i1 %920, label %921, label %923

921:                                              ; preds = %910
  %922 = load float, ptr %70, align 4, !tbaa !11
  br label %926

923:                                              ; preds = %910
  %924 = load float, ptr %70, align 4, !tbaa !11
  %925 = fneg float %924
  br label %926

926:                                              ; preds = %923, %921
  %927 = phi float [ %922, %921 ], [ %925, %923 ]
  %928 = fpext float %927 to double
  %929 = load ptr, ptr %47, align 8, !tbaa !5
  %930 = load i64, ptr %74, align 8, !tbaa !9
  %931 = add nsw i64 %930, 1
  %932 = load i64, ptr %74, align 8, !tbaa !9
  %933 = load i64, ptr %56, align 8, !tbaa !9
  %934 = mul nsw i64 %932, %933
  %935 = add nsw i64 %931, %934
  %936 = getelementptr inbounds float, ptr %929, i64 %935
  %937 = load float, ptr %936, align 4, !tbaa !11
  store float %937, ptr %68, align 4, !tbaa !11
  %938 = load float, ptr %68, align 4, !tbaa !11
  %939 = fcmp oge float %938, 0.000000e+00
  br i1 %939, label %940, label %942

940:                                              ; preds = %926
  %941 = load float, ptr %68, align 4, !tbaa !11
  br label %945

942:                                              ; preds = %926
  %943 = load float, ptr %68, align 4, !tbaa !11
  %944 = fneg float %943
  br label %945

945:                                              ; preds = %942, %940
  %946 = phi float [ %941, %940 ], [ %944, %942 ]
  %947 = fpext float %946 to double
  %948 = call double @sqrt(double noundef %947) #5
  %949 = load ptr, ptr %47, align 8, !tbaa !5
  %950 = load i64, ptr %74, align 8, !tbaa !9
  %951 = load i64, ptr %74, align 8, !tbaa !9
  %952 = add nsw i64 %951, 1
  %953 = load i64, ptr %56, align 8, !tbaa !9
  %954 = mul nsw i64 %952, %953
  %955 = add nsw i64 %950, %954
  %956 = getelementptr inbounds float, ptr %949, i64 %955
  %957 = load float, ptr %956, align 4, !tbaa !11
  store float %957, ptr %69, align 4, !tbaa !11
  %958 = load float, ptr %69, align 4, !tbaa !11
  %959 = fcmp oge float %958, 0.000000e+00
  br i1 %959, label %960, label %962

960:                                              ; preds = %945
  %961 = load float, ptr %69, align 4, !tbaa !11
  br label %965

962:                                              ; preds = %945
  %963 = load float, ptr %69, align 4, !tbaa !11
  %964 = fneg float %963
  br label %965

965:                                              ; preds = %962, %960
  %966 = phi float [ %961, %960 ], [ %964, %962 ]
  %967 = fpext float %966 to double
  %968 = call double @sqrt(double noundef %967) #5
  %969 = call double @llvm.fmuladd.f64(double %948, double %968, double %928)
  %970 = fptrunc double %969 to float
  store float %970, ptr %85, align 4, !tbaa !11
  br label %971

971:                                              ; preds = %965, %906
  %972 = load i64, ptr %76, align 8, !tbaa !9
  %973 = load i64, ptr %95, align 8, !tbaa !9
  %974 = icmp eq i64 %972, %973
  br i1 %974, label %975, label %995

975:                                              ; preds = %971
  %976 = load ptr, ptr %47, align 8, !tbaa !5
  %977 = load i64, ptr %76, align 8, !tbaa !9
  %978 = load i64, ptr %76, align 8, !tbaa !9
  %979 = load i64, ptr %56, align 8, !tbaa !9
  %980 = mul nsw i64 %978, %979
  %981 = add nsw i64 %977, %980
  %982 = getelementptr inbounds float, ptr %976, i64 %981
  %983 = load float, ptr %982, align 4, !tbaa !11
  store float %983, ptr %68, align 4, !tbaa !11
  %984 = load float, ptr %68, align 4, !tbaa !11
  %985 = fcmp oge float %984, 0.000000e+00
  br i1 %985, label %986, label %988

986:                                              ; preds = %975
  %987 = load float, ptr %68, align 4, !tbaa !11
  br label %991

988:                                              ; preds = %975
  %989 = load float, ptr %68, align 4, !tbaa !11
  %990 = fneg float %989
  br label %991

991:                                              ; preds = %988, %986
  %992 = phi float [ %987, %986 ], [ %990, %988 ]
  %993 = fpext float %992 to double
  %994 = fptrunc double %993 to float
  store float %994, ptr %86, align 4, !tbaa !11
  br label %1088

995:                                              ; preds = %971
  %996 = load ptr, ptr %47, align 8, !tbaa !5
  %997 = load i64, ptr %76, align 8, !tbaa !9
  %998 = add nsw i64 %997, 1
  %999 = load i64, ptr %76, align 8, !tbaa !9
  %1000 = load i64, ptr %56, align 8, !tbaa !9
  %1001 = mul nsw i64 %999, %1000
  %1002 = add nsw i64 %998, %1001
  %1003 = getelementptr inbounds float, ptr %996, i64 %1002
  %1004 = load float, ptr %1003, align 4, !tbaa !11
  %1005 = fcmp oeq float %1004, 0.000000e+00
  br i1 %1005, label %1006, label %1026

1006:                                             ; preds = %995
  %1007 = load ptr, ptr %47, align 8, !tbaa !5
  %1008 = load i64, ptr %76, align 8, !tbaa !9
  %1009 = load i64, ptr %76, align 8, !tbaa !9
  %1010 = load i64, ptr %56, align 8, !tbaa !9
  %1011 = mul nsw i64 %1009, %1010
  %1012 = add nsw i64 %1008, %1011
  %1013 = getelementptr inbounds float, ptr %1007, i64 %1012
  %1014 = load float, ptr %1013, align 4, !tbaa !11
  store float %1014, ptr %68, align 4, !tbaa !11
  %1015 = load float, ptr %68, align 4, !tbaa !11
  %1016 = fcmp oge float %1015, 0.000000e+00
  br i1 %1016, label %1017, label %1019

1017:                                             ; preds = %1006
  %1018 = load float, ptr %68, align 4, !tbaa !11
  br label %1022

1019:                                             ; preds = %1006
  %1020 = load float, ptr %68, align 4, !tbaa !11
  %1021 = fneg float %1020
  br label %1022

1022:                                             ; preds = %1019, %1017
  %1023 = phi float [ %1018, %1017 ], [ %1021, %1019 ]
  %1024 = fpext float %1023 to double
  %1025 = fptrunc double %1024 to float
  store float %1025, ptr %86, align 4, !tbaa !11
  br label %1087

1026:                                             ; preds = %995
  %1027 = load ptr, ptr %47, align 8, !tbaa !5
  %1028 = load i64, ptr %76, align 8, !tbaa !9
  %1029 = load i64, ptr %76, align 8, !tbaa !9
  %1030 = load i64, ptr %56, align 8, !tbaa !9
  %1031 = mul nsw i64 %1029, %1030
  %1032 = add nsw i64 %1028, %1031
  %1033 = getelementptr inbounds float, ptr %1027, i64 %1032
  %1034 = load float, ptr %1033, align 4, !tbaa !11
  store float %1034, ptr %70, align 4, !tbaa !11
  %1035 = load float, ptr %70, align 4, !tbaa !11
  %1036 = fcmp oge float %1035, 0.000000e+00
  br i1 %1036, label %1037, label %1039

1037:                                             ; preds = %1026
  %1038 = load float, ptr %70, align 4, !tbaa !11
  br label %1042

1039:                                             ; preds = %1026
  %1040 = load float, ptr %70, align 4, !tbaa !11
  %1041 = fneg float %1040
  br label %1042

1042:                                             ; preds = %1039, %1037
  %1043 = phi float [ %1038, %1037 ], [ %1041, %1039 ]
  %1044 = fpext float %1043 to double
  %1045 = load ptr, ptr %47, align 8, !tbaa !5
  %1046 = load i64, ptr %76, align 8, !tbaa !9
  %1047 = add nsw i64 %1046, 1
  %1048 = load i64, ptr %76, align 8, !tbaa !9
  %1049 = load i64, ptr %56, align 8, !tbaa !9
  %1050 = mul nsw i64 %1048, %1049
  %1051 = add nsw i64 %1047, %1050
  %1052 = getelementptr inbounds float, ptr %1045, i64 %1051
  %1053 = load float, ptr %1052, align 4, !tbaa !11
  store float %1053, ptr %68, align 4, !tbaa !11
  %1054 = load float, ptr %68, align 4, !tbaa !11
  %1055 = fcmp oge float %1054, 0.000000e+00
  br i1 %1055, label %1056, label %1058

1056:                                             ; preds = %1042
  %1057 = load float, ptr %68, align 4, !tbaa !11
  br label %1061

1058:                                             ; preds = %1042
  %1059 = load float, ptr %68, align 4, !tbaa !11
  %1060 = fneg float %1059
  br label %1061

1061:                                             ; preds = %1058, %1056
  %1062 = phi float [ %1057, %1056 ], [ %1060, %1058 ]
  %1063 = fpext float %1062 to double
  %1064 = call double @sqrt(double noundef %1063) #5
  %1065 = load ptr, ptr %47, align 8, !tbaa !5
  %1066 = load i64, ptr %76, align 8, !tbaa !9
  %1067 = load i64, ptr %76, align 8, !tbaa !9
  %1068 = add nsw i64 %1067, 1
  %1069 = load i64, ptr %56, align 8, !tbaa !9
  %1070 = mul nsw i64 %1068, %1069
  %1071 = add nsw i64 %1066, %1070
  %1072 = getelementptr inbounds float, ptr %1065, i64 %1071
  %1073 = load float, ptr %1072, align 4, !tbaa !11
  store float %1073, ptr %69, align 4, !tbaa !11
  %1074 = load float, ptr %69, align 4, !tbaa !11
  %1075 = fcmp oge float %1074, 0.000000e+00
  br i1 %1075, label %1076, label %1078

1076:                                             ; preds = %1061
  %1077 = load float, ptr %69, align 4, !tbaa !11
  br label %1081

1078:                                             ; preds = %1061
  %1079 = load float, ptr %69, align 4, !tbaa !11
  %1080 = fneg float %1079
  br label %1081

1081:                                             ; preds = %1078, %1076
  %1082 = phi float [ %1077, %1076 ], [ %1080, %1078 ]
  %1083 = fpext float %1082 to double
  %1084 = call double @sqrt(double noundef %1083) #5
  %1085 = call double @llvm.fmuladd.f64(double %1064, double %1084, double %1044)
  %1086 = fptrunc double %1085 to float
  store float %1086, ptr %86, align 4, !tbaa !11
  br label %1087

1087:                                             ; preds = %1081, %1022
  br label %1088

1088:                                             ; preds = %1087, %991
  %1089 = load float, ptr %85, align 4, !tbaa !11
  %1090 = load float, ptr %86, align 4, !tbaa !11
  %1091 = fcmp oge float %1089, %1090
  br i1 %1091, label %1092, label %1094

1092:                                             ; preds = %1088
  %1093 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %1093, ptr %74, align 8, !tbaa !9
  br label %1115

1094:                                             ; preds = %1088
  store i64 0, ptr %108, align 8, !tbaa !9
  %1095 = load i64, ptr %74, align 8, !tbaa !9
  store i64 %1095, ptr %99, align 8, !tbaa !9
  %1096 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %1096, ptr %100, align 8, !tbaa !9
  %1097 = load ptr, ptr %47, align 8, !tbaa !5
  %1098 = load i64, ptr %57, align 8, !tbaa !9
  %1099 = getelementptr inbounds float, ptr %1097, i64 %1098
  %1100 = load ptr, ptr %48, align 8, !tbaa !5
  %1101 = load ptr, ptr %44, align 8, !tbaa !5
  %1102 = load i64, ptr %59, align 8, !tbaa !9
  %1103 = getelementptr inbounds float, ptr %1101, i64 %1102
  %1104 = load ptr, ptr %45, align 8, !tbaa !5
  %1105 = load ptr, ptr %52, align 8, !tbaa !5
  %1106 = getelementptr inbounds float, ptr %1105, i64 1
  %1107 = call i32 @strexc_(ptr noundef @.str.8, ptr noundef %84, ptr noundef %1099, ptr noundef %1100, ptr noundef %1103, ptr noundef %1104, ptr noundef %99, ptr noundef %100, ptr noundef %1106, ptr noundef %97)
  %1108 = load i64, ptr %97, align 8, !tbaa !9
  %1109 = icmp eq i64 %1108, 0
  br i1 %1109, label %1110, label %1112

1110:                                             ; preds = %1094
  %1111 = load i64, ptr %100, align 8, !tbaa !9
  store i64 %1111, ptr %74, align 8, !tbaa !9
  br label %1114

1112:                                             ; preds = %1094
  %1113 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %1113, ptr %74, align 8, !tbaa !9
  br label %1114

1114:                                             ; preds = %1112, %1110
  br label %1115

1115:                                             ; preds = %1114, %1092
  %1116 = load i64, ptr %74, align 8, !tbaa !9
  %1117 = load i64, ptr %95, align 8, !tbaa !9
  %1118 = icmp eq i64 %1116, %1117
  br i1 %1118, label %1119, label %1122

1119:                                             ; preds = %1115
  %1120 = load i64, ptr %74, align 8, !tbaa !9
  %1121 = add nsw i64 %1120, 1
  store i64 %1121, ptr %76, align 8, !tbaa !9
  br label %1140

1122:                                             ; preds = %1115
  %1123 = load ptr, ptr %47, align 8, !tbaa !5
  %1124 = load i64, ptr %74, align 8, !tbaa !9
  %1125 = add nsw i64 %1124, 1
  %1126 = load i64, ptr %74, align 8, !tbaa !9
  %1127 = load i64, ptr %56, align 8, !tbaa !9
  %1128 = mul nsw i64 %1126, %1127
  %1129 = add nsw i64 %1125, %1128
  %1130 = getelementptr inbounds float, ptr %1123, i64 %1129
  %1131 = load float, ptr %1130, align 4, !tbaa !11
  %1132 = fcmp oeq float %1131, 0.000000e+00
  br i1 %1132, label %1133, label %1136

1133:                                             ; preds = %1122
  %1134 = load i64, ptr %74, align 8, !tbaa !9
  %1135 = add nsw i64 %1134, 1
  store i64 %1135, ptr %76, align 8, !tbaa !9
  br label %1139

1136:                                             ; preds = %1122
  %1137 = load i64, ptr %74, align 8, !tbaa !9
  %1138 = add nsw i64 %1137, 2
  store i64 %1138, ptr %76, align 8, !tbaa !9
  br label %1139

1139:                                             ; preds = %1136, %1133
  br label %1140

1140:                                             ; preds = %1139, %1119
  br label %881

1141:                                             ; preds = %881
  br label %846

1142:                                             ; preds = %849
  br label %1143

1143:                                             ; preds = %1142, %837
  %1144 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %1144, ptr %74, align 8, !tbaa !9
  br label %1145

1145:                                             ; preds = %1277, %1143
  %1146 = load i64, ptr %74, align 8, !tbaa !9
  %1147 = load i64, ptr %104, align 8, !tbaa !9
  %1148 = add nsw i64 %1147, 1
  %1149 = icmp sge i64 %1146, %1148
  br i1 %1149, label %1150, label %1278

1150:                                             ; preds = %1145
  %1151 = load i64, ptr %74, align 8, !tbaa !9
  %1152 = load i64, ptr %104, align 8, !tbaa !9
  %1153 = add nsw i64 %1152, 1
  %1154 = icmp eq i64 %1151, %1153
  br i1 %1154, label %1155, label %1178

1155:                                             ; preds = %1150
  %1156 = load ptr, ptr %47, align 8, !tbaa !5
  %1157 = load i64, ptr %74, align 8, !tbaa !9
  %1158 = load i64, ptr %74, align 8, !tbaa !9
  %1159 = load i64, ptr %56, align 8, !tbaa !9
  %1160 = mul nsw i64 %1158, %1159
  %1161 = add nsw i64 %1157, %1160
  %1162 = getelementptr inbounds float, ptr %1156, i64 %1161
  %1163 = load float, ptr %1162, align 4, !tbaa !11
  %1164 = load ptr, ptr %42, align 8, !tbaa !5
  %1165 = load i64, ptr %105, align 8, !tbaa !9
  %1166 = load i64, ptr %74, align 8, !tbaa !9
  %1167 = add nsw i64 %1165, %1166
  %1168 = sub nsw i64 %1167, 1
  %1169 = getelementptr inbounds float, ptr %1164, i64 %1168
  store float %1163, ptr %1169, align 4, !tbaa !11
  %1170 = load ptr, ptr %43, align 8, !tbaa !5
  %1171 = load i64, ptr %105, align 8, !tbaa !9
  %1172 = load i64, ptr %74, align 8, !tbaa !9
  %1173 = add nsw i64 %1171, %1172
  %1174 = sub nsw i64 %1173, 1
  %1175 = getelementptr inbounds float, ptr %1170, i64 %1174
  store float 0.000000e+00, ptr %1175, align 4, !tbaa !11
  %1176 = load i64, ptr %74, align 8, !tbaa !9
  %1177 = add nsw i64 %1176, -1
  store i64 %1177, ptr %74, align 8, !tbaa !9
  br label %1277

1178:                                             ; preds = %1150
  %1179 = load ptr, ptr %47, align 8, !tbaa !5
  %1180 = load i64, ptr %74, align 8, !tbaa !9
  %1181 = load i64, ptr %74, align 8, !tbaa !9
  %1182 = sub nsw i64 %1181, 1
  %1183 = load i64, ptr %56, align 8, !tbaa !9
  %1184 = mul nsw i64 %1182, %1183
  %1185 = add nsw i64 %1180, %1184
  %1186 = getelementptr inbounds float, ptr %1179, i64 %1185
  %1187 = load float, ptr %1186, align 4, !tbaa !11
  %1188 = fcmp oeq float %1187, 0.000000e+00
  br i1 %1188, label %1189, label %1212

1189:                                             ; preds = %1178
  %1190 = load ptr, ptr %47, align 8, !tbaa !5
  %1191 = load i64, ptr %74, align 8, !tbaa !9
  %1192 = load i64, ptr %74, align 8, !tbaa !9
  %1193 = load i64, ptr %56, align 8, !tbaa !9
  %1194 = mul nsw i64 %1192, %1193
  %1195 = add nsw i64 %1191, %1194
  %1196 = getelementptr inbounds float, ptr %1190, i64 %1195
  %1197 = load float, ptr %1196, align 4, !tbaa !11
  %1198 = load ptr, ptr %42, align 8, !tbaa !5
  %1199 = load i64, ptr %105, align 8, !tbaa !9
  %1200 = load i64, ptr %74, align 8, !tbaa !9
  %1201 = add nsw i64 %1199, %1200
  %1202 = sub nsw i64 %1201, 1
  %1203 = getelementptr inbounds float, ptr %1198, i64 %1202
  store float %1197, ptr %1203, align 4, !tbaa !11
  %1204 = load ptr, ptr %43, align 8, !tbaa !5
  %1205 = load i64, ptr %105, align 8, !tbaa !9
  %1206 = load i64, ptr %74, align 8, !tbaa !9
  %1207 = add nsw i64 %1205, %1206
  %1208 = sub nsw i64 %1207, 1
  %1209 = getelementptr inbounds float, ptr %1204, i64 %1208
  store float 0.000000e+00, ptr %1209, align 4, !tbaa !11
  %1210 = load i64, ptr %74, align 8, !tbaa !9
  %1211 = add nsw i64 %1210, -1
  store i64 %1211, ptr %74, align 8, !tbaa !9
  br label %1276

1212:                                             ; preds = %1178
  %1213 = load ptr, ptr %47, align 8, !tbaa !5
  %1214 = load i64, ptr %74, align 8, !tbaa !9
  %1215 = sub nsw i64 %1214, 1
  %1216 = load i64, ptr %74, align 8, !tbaa !9
  %1217 = sub nsw i64 %1216, 1
  %1218 = load i64, ptr %56, align 8, !tbaa !9
  %1219 = mul nsw i64 %1217, %1218
  %1220 = add nsw i64 %1215, %1219
  %1221 = getelementptr inbounds float, ptr %1213, i64 %1220
  %1222 = load float, ptr %1221, align 4, !tbaa !11
  store float %1222, ptr %78, align 4, !tbaa !11
  %1223 = load ptr, ptr %47, align 8, !tbaa !5
  %1224 = load i64, ptr %74, align 8, !tbaa !9
  %1225 = load i64, ptr %74, align 8, !tbaa !9
  %1226 = sub nsw i64 %1225, 1
  %1227 = load i64, ptr %56, align 8, !tbaa !9
  %1228 = mul nsw i64 %1226, %1227
  %1229 = add nsw i64 %1224, %1228
  %1230 = getelementptr inbounds float, ptr %1223, i64 %1229
  %1231 = load float, ptr %1230, align 4, !tbaa !11
  store float %1231, ptr %80, align 4, !tbaa !11
  %1232 = load ptr, ptr %47, align 8, !tbaa !5
  %1233 = load i64, ptr %74, align 8, !tbaa !9
  %1234 = sub nsw i64 %1233, 1
  %1235 = load i64, ptr %74, align 8, !tbaa !9
  %1236 = load i64, ptr %56, align 8, !tbaa !9
  %1237 = mul nsw i64 %1235, %1236
  %1238 = add nsw i64 %1234, %1237
  %1239 = getelementptr inbounds float, ptr %1232, i64 %1238
  %1240 = load float, ptr %1239, align 4, !tbaa !11
  store float %1240, ptr %79, align 4, !tbaa !11
  %1241 = load ptr, ptr %47, align 8, !tbaa !5
  %1242 = load i64, ptr %74, align 8, !tbaa !9
  %1243 = load i64, ptr %74, align 8, !tbaa !9
  %1244 = load i64, ptr %56, align 8, !tbaa !9
  %1245 = mul nsw i64 %1243, %1244
  %1246 = add nsw i64 %1242, %1245
  %1247 = getelementptr inbounds float, ptr %1241, i64 %1246
  %1248 = load float, ptr %1247, align 4, !tbaa !11
  store float %1248, ptr %81, align 4, !tbaa !11
  %1249 = load ptr, ptr %42, align 8, !tbaa !5
  %1250 = load i64, ptr %105, align 8, !tbaa !9
  %1251 = load i64, ptr %74, align 8, !tbaa !9
  %1252 = add nsw i64 %1250, %1251
  %1253 = sub nsw i64 %1252, 2
  %1254 = getelementptr inbounds float, ptr %1249, i64 %1253
  %1255 = load ptr, ptr %43, align 8, !tbaa !5
  %1256 = load i64, ptr %105, align 8, !tbaa !9
  %1257 = load i64, ptr %74, align 8, !tbaa !9
  %1258 = add nsw i64 %1256, %1257
  %1259 = sub nsw i64 %1258, 2
  %1260 = getelementptr inbounds float, ptr %1255, i64 %1259
  %1261 = load ptr, ptr %42, align 8, !tbaa !5
  %1262 = load i64, ptr %105, align 8, !tbaa !9
  %1263 = load i64, ptr %74, align 8, !tbaa !9
  %1264 = add nsw i64 %1262, %1263
  %1265 = sub nsw i64 %1264, 1
  %1266 = getelementptr inbounds float, ptr %1261, i64 %1265
  %1267 = load ptr, ptr %43, align 8, !tbaa !5
  %1268 = load i64, ptr %105, align 8, !tbaa !9
  %1269 = load i64, ptr %74, align 8, !tbaa !9
  %1270 = add nsw i64 %1268, %1269
  %1271 = sub nsw i64 %1270, 1
  %1272 = getelementptr inbounds float, ptr %1267, i64 %1271
  %1273 = call i32 @slanv2_(ptr noundef %78, ptr noundef %79, ptr noundef %80, ptr noundef %81, ptr noundef %1254, ptr noundef %1260, ptr noundef %1266, ptr noundef %1272, ptr noundef %82, ptr noundef %83)
  %1274 = load i64, ptr %74, align 8, !tbaa !9
  %1275 = add nsw i64 %1274, -2
  store i64 %1275, ptr %74, align 8, !tbaa !9
  br label %1276

1276:                                             ; preds = %1212, %1189
  br label %1277

1277:                                             ; preds = %1276, %1155
  br label %1145

1278:                                             ; preds = %1145
  %1279 = load ptr, ptr %40, align 8, !tbaa !5
  %1280 = load i64, ptr %1279, align 8, !tbaa !9
  %1281 = load i64, ptr %84, align 8, !tbaa !9
  %1282 = icmp slt i64 %1280, %1281
  br i1 %1282, label %1286, label %1283

1283:                                             ; preds = %1278
  %1284 = load float, ptr %77, align 4, !tbaa !11
  %1285 = fcmp oeq float %1284, 0.000000e+00
  br i1 %1285, label %1286, label %1695

1286:                                             ; preds = %1283, %1278
  %1287 = load ptr, ptr %40, align 8, !tbaa !5
  %1288 = load i64, ptr %1287, align 8, !tbaa !9
  %1289 = icmp sgt i64 %1288, 1
  br i1 %1289, label %1290, label %1374

1290:                                             ; preds = %1286
  %1291 = load float, ptr %77, align 4, !tbaa !11
  %1292 = fcmp une float %1291, 0.000000e+00
  br i1 %1292, label %1293, label %1374

1293:                                             ; preds = %1290
  %1294 = load ptr, ptr %40, align 8, !tbaa !5
  %1295 = load ptr, ptr %44, align 8, !tbaa !5
  %1296 = load i64, ptr %59, align 8, !tbaa !9
  %1297 = getelementptr inbounds float, ptr %1295, i64 %1296
  %1298 = load ptr, ptr %45, align 8, !tbaa !5
  %1299 = load ptr, ptr %52, align 8, !tbaa !5
  %1300 = getelementptr inbounds float, ptr %1299, i64 1
  %1301 = call i32 @f2c_scopy(ptr noundef %1294, ptr noundef %1297, ptr noundef %1298, ptr noundef %1300, ptr noundef @c__1)
  %1302 = load ptr, ptr %52, align 8, !tbaa !5
  %1303 = getelementptr inbounds float, ptr %1302, i64 1
  %1304 = load float, ptr %1303, align 4, !tbaa !11
  store float %1304, ptr %94, align 4, !tbaa !11
  %1305 = load ptr, ptr %40, align 8, !tbaa !5
  %1306 = load ptr, ptr %52, align 8, !tbaa !5
  %1307 = getelementptr inbounds float, ptr %1306, i64 2
  %1308 = call i32 @slarfg_(ptr noundef %1305, ptr noundef %94, ptr noundef %1307, ptr noundef @c__1, ptr noundef %89)
  %1309 = load ptr, ptr %52, align 8, !tbaa !5
  %1310 = getelementptr inbounds float, ptr %1309, i64 1
  store float 1.000000e+00, ptr %1310, align 4, !tbaa !11
  %1311 = load i64, ptr %84, align 8, !tbaa !9
  %1312 = sub nsw i64 %1311, 2
  store i64 %1312, ptr %64, align 8, !tbaa !9
  %1313 = load i64, ptr %84, align 8, !tbaa !9
  %1314 = sub nsw i64 %1313, 2
  store i64 %1314, ptr %65, align 8, !tbaa !9
  %1315 = load ptr, ptr %47, align 8, !tbaa !5
  %1316 = load i64, ptr %56, align 8, !tbaa !9
  %1317 = add nsw i64 %1316, 3
  %1318 = getelementptr inbounds float, ptr %1315, i64 %1317
  %1319 = load ptr, ptr %48, align 8, !tbaa !5
  %1320 = call i32 @slaset_(ptr noundef @.str.9, ptr noundef %64, ptr noundef %65, ptr noundef @c_b17, ptr noundef @c_b17, ptr noundef %1318, ptr noundef %1319)
  %1321 = load ptr, ptr %40, align 8, !tbaa !5
  %1322 = load ptr, ptr %52, align 8, !tbaa !5
  %1323 = getelementptr inbounds float, ptr %1322, i64 1
  %1324 = load ptr, ptr %47, align 8, !tbaa !5
  %1325 = load i64, ptr %57, align 8, !tbaa !9
  %1326 = getelementptr inbounds float, ptr %1324, i64 %1325
  %1327 = load ptr, ptr %48, align 8, !tbaa !5
  %1328 = load ptr, ptr %52, align 8, !tbaa !5
  %1329 = load i64, ptr %84, align 8, !tbaa !9
  %1330 = add nsw i64 %1329, 1
  %1331 = getelementptr inbounds float, ptr %1328, i64 %1330
  %1332 = call i32 @slarf_(ptr noundef @.str.9, ptr noundef %1321, ptr noundef %84, ptr noundef %1323, ptr noundef @c__1, ptr noundef %89, ptr noundef %1326, ptr noundef %1327, ptr noundef %1331)
  %1333 = load ptr, ptr %40, align 8, !tbaa !5
  %1334 = load ptr, ptr %40, align 8, !tbaa !5
  %1335 = load ptr, ptr %52, align 8, !tbaa !5
  %1336 = getelementptr inbounds float, ptr %1335, i64 1
  %1337 = load ptr, ptr %47, align 8, !tbaa !5
  %1338 = load i64, ptr %57, align 8, !tbaa !9
  %1339 = getelementptr inbounds float, ptr %1337, i64 %1338
  %1340 = load ptr, ptr %48, align 8, !tbaa !5
  %1341 = load ptr, ptr %52, align 8, !tbaa !5
  %1342 = load i64, ptr %84, align 8, !tbaa !9
  %1343 = add nsw i64 %1342, 1
  %1344 = getelementptr inbounds float, ptr %1341, i64 %1343
  %1345 = call i32 @slarf_(ptr noundef @.str, ptr noundef %1333, ptr noundef %1334, ptr noundef %1336, ptr noundef @c__1, ptr noundef %89, ptr noundef %1339, ptr noundef %1340, ptr noundef %1344)
  %1346 = load ptr, ptr %40, align 8, !tbaa !5
  %1347 = load ptr, ptr %52, align 8, !tbaa !5
  %1348 = getelementptr inbounds float, ptr %1347, i64 1
  %1349 = load ptr, ptr %44, align 8, !tbaa !5
  %1350 = load i64, ptr %59, align 8, !tbaa !9
  %1351 = getelementptr inbounds float, ptr %1349, i64 %1350
  %1352 = load ptr, ptr %45, align 8, !tbaa !5
  %1353 = load ptr, ptr %52, align 8, !tbaa !5
  %1354 = load i64, ptr %84, align 8, !tbaa !9
  %1355 = add nsw i64 %1354, 1
  %1356 = getelementptr inbounds float, ptr %1353, i64 %1355
  %1357 = call i32 @slarf_(ptr noundef @.str, ptr noundef %84, ptr noundef %1346, ptr noundef %1348, ptr noundef @c__1, ptr noundef %89, ptr noundef %1351, ptr noundef %1352, ptr noundef %1356)
  %1358 = load ptr, ptr %53, align 8, !tbaa !5
  %1359 = load i64, ptr %1358, align 8, !tbaa !9
  %1360 = load i64, ptr %84, align 8, !tbaa !9
  %1361 = sub nsw i64 %1359, %1360
  store i64 %1361, ptr %64, align 8, !tbaa !9
  %1362 = load ptr, ptr %40, align 8, !tbaa !5
  %1363 = load ptr, ptr %47, align 8, !tbaa !5
  %1364 = load i64, ptr %57, align 8, !tbaa !9
  %1365 = getelementptr inbounds float, ptr %1363, i64 %1364
  %1366 = load ptr, ptr %48, align 8, !tbaa !5
  %1367 = load ptr, ptr %52, align 8, !tbaa !5
  %1368 = getelementptr inbounds float, ptr %1367, i64 1
  %1369 = load ptr, ptr %52, align 8, !tbaa !5
  %1370 = load i64, ptr %84, align 8, !tbaa !9
  %1371 = add nsw i64 %1370, 1
  %1372 = getelementptr inbounds float, ptr %1369, i64 %1371
  %1373 = call i32 @sgehrd_(ptr noundef %84, ptr noundef @c__1, ptr noundef %1362, ptr noundef %1365, ptr noundef %1366, ptr noundef %1368, ptr noundef %1372, ptr noundef %64, ptr noundef %97)
  br label %1374

1374:                                             ; preds = %1293, %1290, %1286
  %1375 = load i64, ptr %105, align 8, !tbaa !9
  %1376 = icmp sgt i64 %1375, 1
  br i1 %1376, label %1377, label %1393

1377:                                             ; preds = %1374
  %1378 = load float, ptr %77, align 4, !tbaa !11
  %1379 = load ptr, ptr %44, align 8, !tbaa !5
  %1380 = load i64, ptr %58, align 8, !tbaa !9
  %1381 = add nsw i64 %1380, 1
  %1382 = getelementptr inbounds float, ptr %1379, i64 %1381
  %1383 = load float, ptr %1382, align 4, !tbaa !11
  %1384 = fmul float %1378, %1383
  %1385 = load ptr, ptr %34, align 8, !tbaa !5
  %1386 = load i64, ptr %105, align 8, !tbaa !9
  %1387 = load i64, ptr %105, align 8, !tbaa !9
  %1388 = sub nsw i64 %1387, 1
  %1389 = load i64, ptr %54, align 8, !tbaa !9
  %1390 = mul nsw i64 %1388, %1389
  %1391 = add nsw i64 %1386, %1390
  %1392 = getelementptr inbounds float, ptr %1385, i64 %1391
  store float %1384, ptr %1392, align 4, !tbaa !11
  br label %1393

1393:                                             ; preds = %1377, %1374
  %1394 = load ptr, ptr %47, align 8, !tbaa !5
  %1395 = load i64, ptr %57, align 8, !tbaa !9
  %1396 = getelementptr inbounds float, ptr %1394, i64 %1395
  %1397 = load ptr, ptr %48, align 8, !tbaa !5
  %1398 = load ptr, ptr %34, align 8, !tbaa !5
  %1399 = load i64, ptr %105, align 8, !tbaa !9
  %1400 = load i64, ptr %105, align 8, !tbaa !9
  %1401 = load i64, ptr %54, align 8, !tbaa !9
  %1402 = mul nsw i64 %1400, %1401
  %1403 = add nsw i64 %1399, %1402
  %1404 = getelementptr inbounds float, ptr %1398, i64 %1403
  %1405 = load ptr, ptr %35, align 8, !tbaa !5
  %1406 = call i32 @slacpy_(ptr noundef @.str.4, ptr noundef %84, ptr noundef %84, ptr noundef %1396, ptr noundef %1397, ptr noundef %1404, ptr noundef %1405)
  %1407 = load i64, ptr %84, align 8, !tbaa !9
  %1408 = sub nsw i64 %1407, 1
  store i64 %1408, ptr %64, align 8, !tbaa !9
  %1409 = load ptr, ptr %48, align 8, !tbaa !5
  %1410 = load i64, ptr %1409, align 8, !tbaa !9
  %1411 = add nsw i64 %1410, 1
  store i64 %1411, ptr %65, align 8, !tbaa !9
  %1412 = load ptr, ptr %35, align 8, !tbaa !5
  %1413 = load i64, ptr %1412, align 8, !tbaa !9
  %1414 = add nsw i64 %1413, 1
  store i64 %1414, ptr %66, align 8, !tbaa !9
  %1415 = load ptr, ptr %47, align 8, !tbaa !5
  %1416 = load i64, ptr %56, align 8, !tbaa !9
  %1417 = add nsw i64 %1416, 2
  %1418 = getelementptr inbounds float, ptr %1415, i64 %1417
  %1419 = load ptr, ptr %34, align 8, !tbaa !5
  %1420 = load i64, ptr %105, align 8, !tbaa !9
  %1421 = add nsw i64 %1420, 1
  %1422 = load i64, ptr %105, align 8, !tbaa !9
  %1423 = load i64, ptr %54, align 8, !tbaa !9
  %1424 = mul nsw i64 %1422, %1423
  %1425 = add nsw i64 %1421, %1424
  %1426 = getelementptr inbounds float, ptr %1419, i64 %1425
  %1427 = call i32 @f2c_scopy(ptr noundef %64, ptr noundef %1418, ptr noundef %65, ptr noundef %1426, ptr noundef %66)
  %1428 = load ptr, ptr %40, align 8, !tbaa !5
  %1429 = load i64, ptr %1428, align 8, !tbaa !9
  %1430 = icmp sgt i64 %1429, 1
  br i1 %1430, label %1431, label %1456

1431:                                             ; preds = %1393
  %1432 = load float, ptr %77, align 4, !tbaa !11
  %1433 = fcmp une float %1432, 0.000000e+00
  br i1 %1433, label %1434, label %1456

1434:                                             ; preds = %1431
  %1435 = load ptr, ptr %53, align 8, !tbaa !5
  %1436 = load i64, ptr %1435, align 8, !tbaa !9
  %1437 = load i64, ptr %84, align 8, !tbaa !9
  %1438 = sub nsw i64 %1436, %1437
  store i64 %1438, ptr %64, align 8, !tbaa !9
  %1439 = load ptr, ptr %40, align 8, !tbaa !5
  %1440 = load ptr, ptr %40, align 8, !tbaa !5
  %1441 = load ptr, ptr %47, align 8, !tbaa !5
  %1442 = load i64, ptr %57, align 8, !tbaa !9
  %1443 = getelementptr inbounds float, ptr %1441, i64 %1442
  %1444 = load ptr, ptr %48, align 8, !tbaa !5
  %1445 = load ptr, ptr %52, align 8, !tbaa !5
  %1446 = getelementptr inbounds float, ptr %1445, i64 1
  %1447 = load ptr, ptr %44, align 8, !tbaa !5
  %1448 = load i64, ptr %59, align 8, !tbaa !9
  %1449 = getelementptr inbounds float, ptr %1447, i64 %1448
  %1450 = load ptr, ptr %45, align 8, !tbaa !5
  %1451 = load ptr, ptr %52, align 8, !tbaa !5
  %1452 = load i64, ptr %84, align 8, !tbaa !9
  %1453 = add nsw i64 %1452, 1
  %1454 = getelementptr inbounds float, ptr %1451, i64 %1453
  %1455 = call i32 @sormhr_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %84, ptr noundef %1439, ptr noundef @c__1, ptr noundef %1440, ptr noundef %1443, ptr noundef %1444, ptr noundef %1446, ptr noundef %1449, ptr noundef %1450, ptr noundef %1454, ptr noundef %64, ptr noundef %97)
  br label %1456

1456:                                             ; preds = %1434, %1431, %1393
  %1457 = load ptr, ptr %28, align 8, !tbaa !5
  %1458 = load i64, ptr %1457, align 8, !tbaa !9
  %1459 = icmp ne i64 %1458, 0
  br i1 %1459, label %1460, label %1461

1460:                                             ; preds = %1456
  store i64 1, ptr %101, align 8, !tbaa !9
  br label %1464

1461:                                             ; preds = %1456
  %1462 = load ptr, ptr %31, align 8, !tbaa !5
  %1463 = load i64, ptr %1462, align 8, !tbaa !9
  store i64 %1463, ptr %101, align 8, !tbaa !9
  br label %1464

1464:                                             ; preds = %1461, %1460
  %1465 = load i64, ptr %105, align 8, !tbaa !9
  %1466 = sub nsw i64 %1465, 1
  store i64 %1466, ptr %64, align 8, !tbaa !9
  %1467 = load ptr, ptr %49, align 8, !tbaa !5
  %1468 = load i64, ptr %1467, align 8, !tbaa !9
  store i64 %1468, ptr %65, align 8, !tbaa !9
  %1469 = load i64, ptr %101, align 8, !tbaa !9
  store i64 %1469, ptr %102, align 8, !tbaa !9
  br label %1470

1470:                                             ; preds = %1531, %1464
  %1471 = load i64, ptr %65, align 8, !tbaa !9
  %1472 = icmp slt i64 %1471, 0
  br i1 %1472, label %1473, label %1478

1473:                                             ; preds = %1470
  %1474 = load i64, ptr %102, align 8, !tbaa !9
  %1475 = load i64, ptr %64, align 8, !tbaa !9
  %1476 = icmp sge i64 %1474, %1475
  %1477 = zext i1 %1476 to i32
  br label %1483

1478:                                             ; preds = %1470
  %1479 = load i64, ptr %102, align 8, !tbaa !9
  %1480 = load i64, ptr %64, align 8, !tbaa !9
  %1481 = icmp sle i64 %1479, %1480
  %1482 = zext i1 %1481 to i32
  br label %1483

1483:                                             ; preds = %1478, %1473
  %1484 = phi i32 [ %1477, %1473 ], [ %1482, %1478 ]
  %1485 = icmp ne i32 %1484, 0
  br i1 %1485, label %1486, label %1535

1486:                                             ; preds = %1483
  %1487 = load ptr, ptr %49, align 8, !tbaa !5
  %1488 = load i64, ptr %1487, align 8, !tbaa !9
  store i64 %1488, ptr %66, align 8, !tbaa !9
  %1489 = load i64, ptr %105, align 8, !tbaa !9
  %1490 = load i64, ptr %102, align 8, !tbaa !9
  %1491 = sub nsw i64 %1489, %1490
  store i64 %1491, ptr %67, align 8, !tbaa !9
  %1492 = load i64, ptr %66, align 8, !tbaa !9
  %1493 = load i64, ptr %67, align 8, !tbaa !9
  %1494 = icmp sle i64 %1492, %1493
  br i1 %1494, label %1495, label %1497

1495:                                             ; preds = %1486
  %1496 = load i64, ptr %66, align 8, !tbaa !9
  br label %1499

1497:                                             ; preds = %1486
  %1498 = load i64, ptr %67, align 8, !tbaa !9
  br label %1499

1499:                                             ; preds = %1497, %1495
  %1500 = phi i64 [ %1496, %1495 ], [ %1498, %1497 ]
  store i64 %1500, ptr %88, align 8, !tbaa !9
  %1501 = load ptr, ptr %34, align 8, !tbaa !5
  %1502 = load i64, ptr %102, align 8, !tbaa !9
  %1503 = load i64, ptr %105, align 8, !tbaa !9
  %1504 = load i64, ptr %54, align 8, !tbaa !9
  %1505 = mul nsw i64 %1503, %1504
  %1506 = add nsw i64 %1502, %1505
  %1507 = getelementptr inbounds float, ptr %1501, i64 %1506
  %1508 = load ptr, ptr %35, align 8, !tbaa !5
  %1509 = load ptr, ptr %44, align 8, !tbaa !5
  %1510 = load i64, ptr %59, align 8, !tbaa !9
  %1511 = getelementptr inbounds float, ptr %1509, i64 %1510
  %1512 = load ptr, ptr %45, align 8, !tbaa !5
  %1513 = load ptr, ptr %50, align 8, !tbaa !5
  %1514 = load i64, ptr %61, align 8, !tbaa !9
  %1515 = getelementptr inbounds float, ptr %1513, i64 %1514
  %1516 = load ptr, ptr %51, align 8, !tbaa !5
  %1517 = call i32 @f2c_sgemm(ptr noundef @.str.1, ptr noundef @.str.1, ptr noundef %88, ptr noundef %84, ptr noundef %84, ptr noundef @c_b18, ptr noundef %1507, ptr noundef %1508, ptr noundef %1511, ptr noundef %1512, ptr noundef @c_b17, ptr noundef %1515, ptr noundef %1516)
  %1518 = load ptr, ptr %50, align 8, !tbaa !5
  %1519 = load i64, ptr %61, align 8, !tbaa !9
  %1520 = getelementptr inbounds float, ptr %1518, i64 %1519
  %1521 = load ptr, ptr %51, align 8, !tbaa !5
  %1522 = load ptr, ptr %34, align 8, !tbaa !5
  %1523 = load i64, ptr %102, align 8, !tbaa !9
  %1524 = load i64, ptr %105, align 8, !tbaa !9
  %1525 = load i64, ptr %54, align 8, !tbaa !9
  %1526 = mul nsw i64 %1524, %1525
  %1527 = add nsw i64 %1523, %1526
  %1528 = getelementptr inbounds float, ptr %1522, i64 %1527
  %1529 = load ptr, ptr %35, align 8, !tbaa !5
  %1530 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %88, ptr noundef %84, ptr noundef %1520, ptr noundef %1521, ptr noundef %1528, ptr noundef %1529)
  br label %1531

1531:                                             ; preds = %1499
  %1532 = load i64, ptr %65, align 8, !tbaa !9
  %1533 = load i64, ptr %102, align 8, !tbaa !9
  %1534 = add nsw i64 %1533, %1532
  store i64 %1534, ptr %102, align 8, !tbaa !9
  br label %1470, !llvm.loop !15

1535:                                             ; preds = %1483
  %1536 = load ptr, ptr %28, align 8, !tbaa !5
  %1537 = load i64, ptr %1536, align 8, !tbaa !9
  %1538 = icmp ne i64 %1537, 0
  br i1 %1538, label %1539, label %1615

1539:                                             ; preds = %1535
  %1540 = load ptr, ptr %30, align 8, !tbaa !5
  %1541 = load i64, ptr %1540, align 8, !tbaa !9
  store i64 %1541, ptr %65, align 8, !tbaa !9
  %1542 = load ptr, ptr %46, align 8, !tbaa !5
  %1543 = load i64, ptr %1542, align 8, !tbaa !9
  store i64 %1543, ptr %64, align 8, !tbaa !9
  %1544 = load ptr, ptr %32, align 8, !tbaa !5
  %1545 = load i64, ptr %1544, align 8, !tbaa !9
  %1546 = add nsw i64 %1545, 1
  store i64 %1546, ptr %96, align 8, !tbaa !9
  br label %1547

1547:                                             ; preds = %1610, %1539
  %1548 = load i64, ptr %64, align 8, !tbaa !9
  %1549 = icmp slt i64 %1548, 0
  br i1 %1549, label %1550, label %1555

1550:                                             ; preds = %1547
  %1551 = load i64, ptr %96, align 8, !tbaa !9
  %1552 = load i64, ptr %65, align 8, !tbaa !9
  %1553 = icmp sge i64 %1551, %1552
  %1554 = zext i1 %1553 to i32
  br label %1560

1555:                                             ; preds = %1547
  %1556 = load i64, ptr %96, align 8, !tbaa !9
  %1557 = load i64, ptr %65, align 8, !tbaa !9
  %1558 = icmp sle i64 %1556, %1557
  %1559 = zext i1 %1558 to i32
  br label %1560

1560:                                             ; preds = %1555, %1550
  %1561 = phi i32 [ %1554, %1550 ], [ %1559, %1555 ]
  %1562 = icmp ne i32 %1561, 0
  br i1 %1562, label %1563, label %1614

1563:                                             ; preds = %1560
  %1564 = load ptr, ptr %46, align 8, !tbaa !5
  %1565 = load i64, ptr %1564, align 8, !tbaa !9
  store i64 %1565, ptr %66, align 8, !tbaa !9
  %1566 = load ptr, ptr %30, align 8, !tbaa !5
  %1567 = load i64, ptr %1566, align 8, !tbaa !9
  %1568 = load i64, ptr %96, align 8, !tbaa !9
  %1569 = sub nsw i64 %1567, %1568
  %1570 = add nsw i64 %1569, 1
  store i64 %1570, ptr %67, align 8, !tbaa !9
  %1571 = load i64, ptr %66, align 8, !tbaa !9
  %1572 = load i64, ptr %67, align 8, !tbaa !9
  %1573 = icmp sle i64 %1571, %1572
  br i1 %1573, label %1574, label %1576

1574:                                             ; preds = %1563
  %1575 = load i64, ptr %66, align 8, !tbaa !9
  br label %1578

1576:                                             ; preds = %1563
  %1577 = load i64, ptr %67, align 8, !tbaa !9
  br label %1578

1578:                                             ; preds = %1576, %1574
  %1579 = phi i64 [ %1575, %1574 ], [ %1577, %1576 ]
  store i64 %1579, ptr %88, align 8, !tbaa !9
  %1580 = load ptr, ptr %44, align 8, !tbaa !5
  %1581 = load i64, ptr %59, align 8, !tbaa !9
  %1582 = getelementptr inbounds float, ptr %1580, i64 %1581
  %1583 = load ptr, ptr %45, align 8, !tbaa !5
  %1584 = load ptr, ptr %34, align 8, !tbaa !5
  %1585 = load i64, ptr %105, align 8, !tbaa !9
  %1586 = load i64, ptr %96, align 8, !tbaa !9
  %1587 = load i64, ptr %54, align 8, !tbaa !9
  %1588 = mul nsw i64 %1586, %1587
  %1589 = add nsw i64 %1585, %1588
  %1590 = getelementptr inbounds float, ptr %1584, i64 %1589
  %1591 = load ptr, ptr %35, align 8, !tbaa !5
  %1592 = load ptr, ptr %47, align 8, !tbaa !5
  %1593 = load i64, ptr %57, align 8, !tbaa !9
  %1594 = getelementptr inbounds float, ptr %1592, i64 %1593
  %1595 = load ptr, ptr %48, align 8, !tbaa !5
  %1596 = call i32 @f2c_sgemm(ptr noundef @.str.10, ptr noundef @.str.1, ptr noundef %84, ptr noundef %88, ptr noundef %84, ptr noundef @c_b18, ptr noundef %1582, ptr noundef %1583, ptr noundef %1590, ptr noundef %1591, ptr noundef @c_b17, ptr noundef %1594, ptr noundef %1595)
  %1597 = load ptr, ptr %47, align 8, !tbaa !5
  %1598 = load i64, ptr %57, align 8, !tbaa !9
  %1599 = getelementptr inbounds float, ptr %1597, i64 %1598
  %1600 = load ptr, ptr %48, align 8, !tbaa !5
  %1601 = load ptr, ptr %34, align 8, !tbaa !5
  %1602 = load i64, ptr %105, align 8, !tbaa !9
  %1603 = load i64, ptr %96, align 8, !tbaa !9
  %1604 = load i64, ptr %54, align 8, !tbaa !9
  %1605 = mul nsw i64 %1603, %1604
  %1606 = add nsw i64 %1602, %1605
  %1607 = getelementptr inbounds float, ptr %1601, i64 %1606
  %1608 = load ptr, ptr %35, align 8, !tbaa !5
  %1609 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %84, ptr noundef %88, ptr noundef %1599, ptr noundef %1600, ptr noundef %1607, ptr noundef %1608)
  br label %1610

1610:                                             ; preds = %1578
  %1611 = load i64, ptr %64, align 8, !tbaa !9
  %1612 = load i64, ptr %96, align 8, !tbaa !9
  %1613 = add nsw i64 %1612, %1611
  store i64 %1613, ptr %96, align 8, !tbaa !9
  br label %1547, !llvm.loop !16

1614:                                             ; preds = %1560
  br label %1615

1615:                                             ; preds = %1614, %1535
  %1616 = load ptr, ptr %29, align 8, !tbaa !5
  %1617 = load i64, ptr %1616, align 8, !tbaa !9
  %1618 = icmp ne i64 %1617, 0
  br i1 %1618, label %1619, label %1694

1619:                                             ; preds = %1615
  %1620 = load ptr, ptr %37, align 8, !tbaa !5
  %1621 = load i64, ptr %1620, align 8, !tbaa !9
  store i64 %1621, ptr %64, align 8, !tbaa !9
  %1622 = load ptr, ptr %49, align 8, !tbaa !5
  %1623 = load i64, ptr %1622, align 8, !tbaa !9
  store i64 %1623, ptr %65, align 8, !tbaa !9
  %1624 = load ptr, ptr %36, align 8, !tbaa !5
  %1625 = load i64, ptr %1624, align 8, !tbaa !9
  store i64 %1625, ptr %102, align 8, !tbaa !9
  br label %1626

1626:                                             ; preds = %1689, %1619
  %1627 = load i64, ptr %65, align 8, !tbaa !9
  %1628 = icmp slt i64 %1627, 0
  br i1 %1628, label %1629, label %1634

1629:                                             ; preds = %1626
  %1630 = load i64, ptr %102, align 8, !tbaa !9
  %1631 = load i64, ptr %64, align 8, !tbaa !9
  %1632 = icmp sge i64 %1630, %1631
  %1633 = zext i1 %1632 to i32
  br label %1639

1634:                                             ; preds = %1626
  %1635 = load i64, ptr %102, align 8, !tbaa !9
  %1636 = load i64, ptr %64, align 8, !tbaa !9
  %1637 = icmp sle i64 %1635, %1636
  %1638 = zext i1 %1637 to i32
  br label %1639

1639:                                             ; preds = %1634, %1629
  %1640 = phi i32 [ %1633, %1629 ], [ %1638, %1634 ]
  %1641 = icmp ne i32 %1640, 0
  br i1 %1641, label %1642, label %1693

1642:                                             ; preds = %1639
  %1643 = load ptr, ptr %49, align 8, !tbaa !5
  %1644 = load i64, ptr %1643, align 8, !tbaa !9
  store i64 %1644, ptr %66, align 8, !tbaa !9
  %1645 = load ptr, ptr %37, align 8, !tbaa !5
  %1646 = load i64, ptr %1645, align 8, !tbaa !9
  %1647 = load i64, ptr %102, align 8, !tbaa !9
  %1648 = sub nsw i64 %1646, %1647
  %1649 = add nsw i64 %1648, 1
  store i64 %1649, ptr %67, align 8, !tbaa !9
  %1650 = load i64, ptr %66, align 8, !tbaa !9
  %1651 = load i64, ptr %67, align 8, !tbaa !9
  %1652 = icmp sle i64 %1650, %1651
  br i1 %1652, label %1653, label %1655

1653:                                             ; preds = %1642
  %1654 = load i64, ptr %66, align 8, !tbaa !9
  br label %1657

1655:                                             ; preds = %1642
  %1656 = load i64, ptr %67, align 8, !tbaa !9
  br label %1657

1657:                                             ; preds = %1655, %1653
  %1658 = phi i64 [ %1654, %1653 ], [ %1656, %1655 ]
  store i64 %1658, ptr %88, align 8, !tbaa !9
  %1659 = load ptr, ptr %38, align 8, !tbaa !5
  %1660 = load i64, ptr %102, align 8, !tbaa !9
  %1661 = load i64, ptr %105, align 8, !tbaa !9
  %1662 = load i64, ptr %62, align 8, !tbaa !9
  %1663 = mul nsw i64 %1661, %1662
  %1664 = add nsw i64 %1660, %1663
  %1665 = getelementptr inbounds float, ptr %1659, i64 %1664
  %1666 = load ptr, ptr %39, align 8, !tbaa !5
  %1667 = load ptr, ptr %44, align 8, !tbaa !5
  %1668 = load i64, ptr %59, align 8, !tbaa !9
  %1669 = getelementptr inbounds float, ptr %1667, i64 %1668
  %1670 = load ptr, ptr %45, align 8, !tbaa !5
  %1671 = load ptr, ptr %50, align 8, !tbaa !5
  %1672 = load i64, ptr %61, align 8, !tbaa !9
  %1673 = getelementptr inbounds float, ptr %1671, i64 %1672
  %1674 = load ptr, ptr %51, align 8, !tbaa !5
  %1675 = call i32 @f2c_sgemm(ptr noundef @.str.1, ptr noundef @.str.1, ptr noundef %88, ptr noundef %84, ptr noundef %84, ptr noundef @c_b18, ptr noundef %1665, ptr noundef %1666, ptr noundef %1669, ptr noundef %1670, ptr noundef @c_b17, ptr noundef %1673, ptr noundef %1674)
  %1676 = load ptr, ptr %50, align 8, !tbaa !5
  %1677 = load i64, ptr %61, align 8, !tbaa !9
  %1678 = getelementptr inbounds float, ptr %1676, i64 %1677
  %1679 = load ptr, ptr %51, align 8, !tbaa !5
  %1680 = load ptr, ptr %38, align 8, !tbaa !5
  %1681 = load i64, ptr %102, align 8, !tbaa !9
  %1682 = load i64, ptr %105, align 8, !tbaa !9
  %1683 = load i64, ptr %62, align 8, !tbaa !9
  %1684 = mul nsw i64 %1682, %1683
  %1685 = add nsw i64 %1681, %1684
  %1686 = getelementptr inbounds float, ptr %1680, i64 %1685
  %1687 = load ptr, ptr %39, align 8, !tbaa !5
  %1688 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %88, ptr noundef %84, ptr noundef %1678, ptr noundef %1679, ptr noundef %1686, ptr noundef %1687)
  br label %1689

1689:                                             ; preds = %1657
  %1690 = load i64, ptr %65, align 8, !tbaa !9
  %1691 = load i64, ptr %102, align 8, !tbaa !9
  %1692 = add nsw i64 %1691, %1690
  store i64 %1692, ptr %102, align 8, !tbaa !9
  br label %1626, !llvm.loop !17

1693:                                             ; preds = %1639
  br label %1694

1694:                                             ; preds = %1693, %1615
  br label %1695

1695:                                             ; preds = %1694, %1283
  %1696 = load i64, ptr %84, align 8, !tbaa !9
  %1697 = load ptr, ptr %40, align 8, !tbaa !5
  %1698 = load i64, ptr %1697, align 8, !tbaa !9
  %1699 = sub nsw i64 %1696, %1698
  %1700 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 %1699, ptr %1700, align 8, !tbaa !9
  %1701 = load i64, ptr %104, align 8, !tbaa !9
  %1702 = load ptr, ptr %40, align 8, !tbaa !5
  %1703 = load i64, ptr %1702, align 8, !tbaa !9
  %1704 = sub nsw i64 %1703, %1701
  store i64 %1704, ptr %1702, align 8, !tbaa !9
  %1705 = load i64, ptr %110, align 8, !tbaa !9
  %1706 = sitofp i64 %1705 to float
  %1707 = load ptr, ptr %52, align 8, !tbaa !5
  %1708 = getelementptr inbounds float, ptr %1707, i64 1
  store float %1706, ptr %1708, align 4, !tbaa !11
  store i32 0, ptr %27, align 4
  store i32 1, ptr %111, align 4
  br label %1709

1709:                                             ; preds = %1695, %412, %276, %271, %256
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, 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 8, 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 8, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  %1710 = load i32, ptr %27, align 4
  ret i32 %1710
}

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

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

declare i32 @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 i32 @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 double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nounwind }

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

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


; 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 i64, align 8
@c_n1 = external hidden global i64, align 8
@.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 i64, align 8
@.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 i64, align 8
@.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 noundef i32 @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 i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 8, 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 i64, ptr %7, align 8, !tbaa !5
  %47 = xor i64 %46, -1
  %48 = getelementptr inbounds float, ptr %6, i64 %47
  %49 = load i64, ptr %11, align 8, !tbaa !5
  %50 = xor i64 %49, -1
  %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 i64, ptr %17, align 8, !tbaa !5
  %55 = xor i64 %54, -1
  %56 = getelementptr inbounds float, ptr %16, i64 %55
  %57 = load i64, ptr %20, align 8, !tbaa !5
  %58 = xor i64 %57, -1
  %59 = getelementptr inbounds float, ptr %19, i64 %58
  %60 = load i64, ptr %5, align 8, !tbaa !5
  store i64 %60, ptr %27, align 8, !tbaa !5
  %61 = load i64, ptr %4, align 8, !tbaa !5
  %62 = load i64, ptr %3, align 8, !tbaa !5
  %63 = sub nsw i64 %61, %62
  %64 = add nsw i64 %63, 1
  store i64 %64, ptr %28, align 8, !tbaa !5
  %65 = tail call i64 @llvm.smin.i64(i64 %60, i64 %64)
  store i64 %65, ptr %36, align 8, !tbaa !5
  %66 = icmp slt i64 %65, 3
  br i1 %66, label %84, label %67

67:                                               ; preds = %26
  %68 = add nsw i64 %65, -1
  store i64 %68, ptr %27, align 8, !tbaa !5
  %69 = call i32 @sgehrd_(ptr noundef nonnull %36, 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 %40) #6
  %70 = load float, ptr %24, align 4, !tbaa !9
  %71 = fptosi float %70 to i64
  %72 = load i64, ptr %36, align 8, !tbaa !5
  %73 = add nsw i64 %72, -1
  store i64 %73, ptr %27, align 8, !tbaa !5
  %74 = call i32 @sormhr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %36, ptr noundef nonnull %36, 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 %40) #6
  %75 = load float, ptr %24, align 4, !tbaa !9
  %76 = fptosi float %75 to i64
  %77 = call i32 @slaqr4_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %14, ptr noundef %15, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %43) #6
  %78 = load float, ptr %24, align 4, !tbaa !9
  %79 = fptosi float %78 to i64
  %80 = load i64, ptr %36, align 8, !tbaa !5
  %81 = call i64 @llvm.smax.i64(i64 %71, i64 %76)
  %82 = add nsw i64 %80, %81
  store i64 %82, ptr %27, align 8, !tbaa !5
  %83 = call i64 @llvm.smax.i64(i64 %82, i64 %79)
  br label %84

84:                                               ; preds = %26, %67
  %.0 = phi i64 [ %83, %67 ], [ 1, %26 ]
  %85 = load i64, ptr %25, align 8, !tbaa !5
  %86 = icmp eq i64 %85, -1
  br i1 %86, label %87, label %89

87:                                               ; preds = %84
  %88 = sitofp i64 %.0 to float
  br label %.sink.split

89:                                               ; preds = %84
  store i64 0, ptr %12, align 8, !tbaa !5
  store i64 0, ptr %13, align 8, !tbaa !5
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %90 = load i64, ptr %3, align 8, !tbaa !5
  %91 = load i64, ptr %4, align 8, !tbaa !5
  %92 = icmp sgt i64 %90, %91
  br i1 %92, label %586, label %93

93:                                               ; preds = %89
  %94 = load i64, ptr %5, align 8, !tbaa !5
  %95 = icmp slt i64 %94, 1
  br i1 %95, label %586, label %96

96:                                               ; preds = %93
  %97 = call double @slamch_(ptr noundef nonnull @.str.2) #6
  %98 = fptrunc double %97 to float
  store float %98, ptr %44, align 4, !tbaa !9
  %99 = fdiv float 1.000000e+00, %98
  store float %99, ptr %45, align 4, !tbaa !9
  %100 = call i32 @slabad_(ptr noundef nonnull %44, ptr noundef nonnull %45) #6
  %101 = call double @slamch_(ptr noundef nonnull @.str.3) #6
  %102 = fptrunc double %101 to float
  %103 = load float, ptr %44, align 4, !tbaa !9
  %104 = load i64, ptr %2, align 8, !tbaa !5
  %105 = sitofp i64 %104 to float
  %106 = fdiv float %105, %102
  %107 = fmul float %103, %106
  %108 = load i64, ptr %5, align 8, !tbaa !5
  store i64 %108, ptr %27, align 8, !tbaa !5
  %109 = load i64, ptr %4, align 8, !tbaa !5
  %110 = load i64, ptr %3, align 8, !tbaa !5
  %111 = sub nsw i64 %109, %110
  %112 = add nsw i64 %111, 1
  store i64 %112, ptr %28, align 8, !tbaa !5
  %113 = call i64 @llvm.smin.i64(i64 %108, i64 %112)
  store i64 %113, ptr %36, align 8, !tbaa !5
  %114 = sub nsw i64 %109, %113
  %115 = add nsw i64 %114, 1
  %116 = icmp eq i64 %115, %110
  br i1 %116, label %122, label %117

117:                                              ; preds = %96
  %118 = mul nsw i64 %114, %46
  %119 = getelementptr float, ptr %48, i64 %115
  %120 = getelementptr float, ptr %119, i64 %118
  %121 = load float, ptr %120, align 4, !tbaa !9
  br label %122

122:                                              ; preds = %96, %117
  %.0631 = phi float [ %121, %117 ], [ 0.000000e+00, %96 ]
  %123 = icmp eq i64 %109, %115
  br i1 %123, label %124, label %148

124:                                              ; preds = %122
  %125 = add i64 %46, 1
  %126 = mul i64 %109, %125
  %127 = getelementptr inbounds float, ptr %48, i64 %126
  %128 = load float, ptr %127, align 4, !tbaa !9
  %129 = getelementptr float, ptr %14, i64 %114
  store float %128, ptr %129, align 4, !tbaa !9
  %130 = getelementptr float, ptr %15, i64 %114
  store float 0.000000e+00, ptr %130, align 4, !tbaa !9
  store i64 1, ptr %12, align 8, !tbaa !5
  store i64 0, ptr %13, align 8, !tbaa !5
  %131 = load float, ptr %127, align 4, !tbaa !9
  %132 = fcmp oge float %131, 0.000000e+00
  %133 = fneg float %131
  %134 = select i1 %132, float %131, float %133
  %135 = fmul float %134, %102
  %136 = fcmp oge float %.0631, 0.000000e+00
  %137 = fneg float %.0631
  %138 = select i1 %136, float %.0631, float %137
  %139 = fcmp oge float %107, %135
  %140 = select i1 %139, float %107, float %135
  %141 = fcmp ugt float %138, %140
  br i1 %141, label %.sink.split, label %142

142:                                              ; preds = %124
  store i64 0, ptr %12, align 8, !tbaa !5
  store i64 1, ptr %13, align 8, !tbaa !5
  %143 = load i64, ptr %3, align 8, !tbaa !5
  %.not669 = icmp slt i64 %114, %143
  br i1 %.not669, label %.sink.split, label %144

144:                                              ; preds = %142
  %145 = mul nsw i64 %114, %46
  %146 = getelementptr float, ptr %48, i64 %109
  %147 = getelementptr float, ptr %146, i64 %145
  store float 0.000000e+00, ptr %147, align 4, !tbaa !9
  br label %.sink.split

148:                                              ; preds = %122
  %149 = mul nsw i64 %115, %46
  %150 = getelementptr float, ptr %48, i64 %115
  %151 = getelementptr float, ptr %150, i64 %149
  %152 = call i32 @slacpy_(ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef %151, ptr noundef nonnull %7, ptr noundef %19, ptr noundef nonnull %20) #6
  %153 = load i64, ptr %36, align 8, !tbaa !5
  %154 = add nsw i64 %153, -1
  store i64 %154, ptr %27, align 8, !tbaa !5
  %155 = load i64, ptr %7, align 8, !tbaa !5
  %156 = add nsw i64 %155, 1
  store i64 %156, ptr %28, align 8, !tbaa !5
  %157 = load i64, ptr %20, align 8, !tbaa !5
  %158 = add nsw i64 %157, 1
  store i64 %158, ptr %29, align 8, !tbaa !5
  %159 = getelementptr float, ptr %48, i64 %114
  %160 = getelementptr i8, ptr %159, i64 8
  %161 = getelementptr float, ptr %160, i64 %149
  %162 = getelementptr inbounds i8, ptr %19, i64 4
  %163 = call i32 @f2c_scopy(ptr noundef nonnull %27, ptr noundef %161, ptr noundef nonnull %28, ptr noundef nonnull %162, ptr noundef nonnull %29) #6
  %164 = call i32 @slaset_(ptr noundef nonnull @.str.5, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef nonnull @c_b17, ptr noundef nonnull @c_b18, ptr noundef %16, ptr noundef nonnull %17) #6
  %165 = call i64 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef nonnull %25) #6
  %166 = load i64, ptr %36, align 8, !tbaa !5
  %167 = icmp sgt i64 %166, %165
  %168 = getelementptr float, ptr %14, i64 %114
  %169 = getelementptr float, ptr %15, i64 %114
  br i1 %167, label %170, label %172

170:                                              ; preds = %148
  %171 = call i32 @slaqr4_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %168, ptr noundef %169, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %43) #6
  br label %174

172:                                              ; preds = %148
  %173 = call i32 @slahqr_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %168, ptr noundef %169, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %43) #6
  br label %174

174:                                              ; preds = %172, %170
  %175 = load i64, ptr %36, align 8, !tbaa !5
  %176 = add nsw i64 %175, -3
  store i64 %176, ptr %27, align 8, !tbaa !5
  %.not675 = icmp slt i64 %175, 4
  br i1 %.not675, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %174
  %177 = add nsw i64 %175, -3
  %178 = add nsw i64 %175, -4
  %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
  %invariant.gep735 = getelementptr i8, ptr %59, i64 8
  %invariant.gep737 = getelementptr i8, ptr %59, i64 8
  %invariant.gep739 = getelementptr i8, ptr %59, i64 8
  %invariant.gep741 = getelementptr i8, ptr %59, i64 8
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %.0636676 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %191, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.3, %.lr.ph ]
  %180 = mul nsw i64 %.0636676, %57
  %gep736 = getelementptr float, ptr %invariant.gep735, i64 %.0636676
  %181 = getelementptr float, ptr %gep736, i64 %180
  store <2 x float> zeroinitializer, ptr %181, align 4, !tbaa !9
  %182 = add nuw nsw i64 %.0636676, 1
  %183 = mul nsw i64 %182, %57
  %gep738 = getelementptr float, ptr %invariant.gep737, i64 %182
  %184 = getelementptr float, ptr %gep738, i64 %183
  store <2 x float> zeroinitializer, ptr %184, align 4, !tbaa !9
  %185 = add nuw nsw i64 %.0636676, 2
  %186 = mul nsw i64 %185, %57
  %gep740 = getelementptr float, ptr %invariant.gep739, i64 %185
  %187 = getelementptr float, ptr %gep740, i64 %186
  store <2 x float> zeroinitializer, ptr %187, align 4, !tbaa !9
  %188 = add nuw i64 %.0636676, 3
  %189 = mul nsw i64 %188, %57
  %gep742 = getelementptr float, ptr %invariant.gep741, i64 %188
  %190 = getelementptr float, ptr %gep742, i64 %189
  store <2 x float> zeroinitializer, ptr %190, align 4, !tbaa !9
  %191 = add nuw i64 %.0636676, 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
  %.0636676.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %191, %.lr.ph ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil.preheader

.lr.ph.epil.preheader:                            ; preds = %._crit_edge.loopexit.unr-lcssa
  %invariant.gep733 = getelementptr i8, ptr %59, i64 8
  br label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %.lr.ph.epil, %.lr.ph.epil.preheader
  %.0636676.epil = phi i64 [ %194, %.lr.ph.epil ], [ %.0636676.unr, %.lr.ph.epil.preheader ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph.epil ], [ 0, %.lr.ph.epil.preheader ]
  %192 = mul nsw i64 %.0636676.epil, %57
  %gep734 = getelementptr float, ptr %invariant.gep733, i64 %.0636676.epil
  %193 = getelementptr float, ptr %gep734, i64 %192
  store <2 x float> zeroinitializer, ptr %193, align 4, !tbaa !9
  %194 = add nuw i64 %.0636676.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, %174
  %195 = icmp sgt i64 %175, 2
  br i1 %195, label %196, label %201

196:                                              ; preds = %._crit_edge
  %197 = add nsw i64 %175, -2
  %198 = mul nsw i64 %197, %57
  %199 = getelementptr float, ptr %59, i64 %175
  %200 = getelementptr float, ptr %199, i64 %198
  store float 0.000000e+00, ptr %200, align 4, !tbaa !9
  br label %201

201:                                              ; preds = %196, %._crit_edge
  store i64 %175, ptr %12, align 8, !tbaa !5
  %202 = load i64, ptr %43, align 8, !tbaa !5
  %203 = add nsw i64 %202, 1
  store i64 %203, ptr %42, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %59, i64 -4
  %invariant.gep677 = getelementptr i8, ptr %56, i64 4
  %.not656683.not = icmp slt i64 %202, %175
  br i1 %.not656683.not, label %.lr.ph685, label %._crit_edge686.thread

._crit_edge686.thread:                            ; preds = %201
  %204 = icmp eq i64 %175, 0
  %.1632725 = select i1 %204, float 0.000000e+00, float %.0631
  br label %.loopexit674

.lr.ph685:                                        ; preds = %201
  %205 = add i64 %57, 1
  %206 = fcmp oge float %.0631, 0.000000e+00
  %207 = fneg float %.0631
  %208 = select i1 %206, float %.0631, float %207
  %209 = insertelement <2 x float> poison, float %.0631, i64 0
  %210 = shufflevector <2 x float> %209, <2 x float> poison, <2 x i32> zeroinitializer
  br label %211

211:                                              ; preds = %.lr.ph685, %296
  %212 = phi i64 [ %203, %.lr.ph685 ], [ %297, %296 ]
  %213 = phi i64 [ %175, %.lr.ph685 ], [ %.pr, %296 ]
  %214 = icmp eq i64 %213, 1
  br i1 %214, label %.thread, label %215

215:                                              ; preds = %211
  %216 = add nsw i64 %213, -1
  %217 = mul nsw i64 %216, %57
  %218 = getelementptr float, ptr %59, i64 %213
  %219 = getelementptr float, ptr %218, i64 %217
  %220 = load float, ptr %219, align 4, !tbaa !9
  %221 = fcmp oeq float %220, 0.000000e+00
  br i1 %221, label %.thread, label %245

.thread:                                          ; preds = %211, %215
  %222 = mul i64 %213, %205
  %223 = getelementptr inbounds float, ptr %59, i64 %222
  %224 = load float, ptr %223, align 4, !tbaa !9
  %225 = fcmp oge float %224, 0.000000e+00
  %226 = fneg float %224
  %227 = select i1 %225, float %224, float %226
  %228 = fcmp oeq float %224, 0.000000e+00
  %.0627 = select i1 %228, float %208, float %227
  %229 = fmul float %.0627, %102
  %230 = mul nsw i64 %213, %54
  %gep682 = getelementptr float, ptr %invariant.gep677, i64 %230
  %231 = load float, ptr %gep682, align 4, !tbaa !9
  %232 = fmul float %.0631, %231
  %233 = fcmp oge float %232, 0.000000e+00
  %234 = fneg float %232
  %235 = select i1 %233, float %232, float %234
  %236 = fcmp oge float %107, %229
  %237 = select i1 %236, float %107, float %229
  %238 = fcmp ugt float %235, %237
  br i1 %238, label %241, label %239

239:                                              ; preds = %.thread
  %240 = add nsw i64 %213, -1
  store i64 %240, ptr %12, align 8, !tbaa !5
  br label %296

241:                                              ; preds = %.thread
  store i64 %213, ptr %41, align 8, !tbaa !5
  %242 = call i32 @strexc_(ptr noundef nonnull @.str.8, ptr noundef nonnull %36, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %24, ptr noundef nonnull %40) #6
  %243 = load i64, ptr %42, align 8, !tbaa !5
  %244 = add nsw i64 %243, 1
  store i64 %244, ptr %42, align 8, !tbaa !5
  br label %296

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

290:                                              ; preds = %245
  %291 = add nsw i64 %270, -2
  store i64 %291, ptr %12, align 8, !tbaa !5
  %.pre = load i64, ptr %42, align 8, !tbaa !5
  br label %296

292:                                              ; preds = %245
  store i64 %270, ptr %41, align 8, !tbaa !5
  %293 = call i32 @strexc_(ptr noundef nonnull @.str.8, ptr noundef nonnull %36, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %24, ptr noundef nonnull %40) #6
  %294 = load i64, ptr %42, align 8, !tbaa !5
  %295 = add nsw i64 %294, 2
  store i64 %295, ptr %42, align 8, !tbaa !5
  br label %296

296:                                              ; preds = %290, %292, %239, %241
  %297 = phi i64 [ %.pre, %290 ], [ %295, %292 ], [ %212, %239 ], [ %244, %241 ]
  %.pr = load i64, ptr %12, align 8, !tbaa !5
  %.not656 = icmp sgt i64 %297, %.pr
  br i1 %.not656, label %._crit_edge686, label %211

._crit_edge686:                                   ; preds = %296
  %.pre719 = load i64, ptr %36, align 8, !tbaa !5
  %298 = icmp eq i64 %.pr, 0
  %.1632 = select i1 %298, float 0.000000e+00, float %.0631
  %299 = icmp slt i64 %.pr, %.pre719
  br i1 %299, label %300, label %.loopexit674

300:                                              ; preds = %._crit_edge686
  %301 = add nsw i64 %.pr, 1
  %302 = add i64 %57, 1
  br label %303

.loopexit673:                                     ; preds = %401, %403
  %.not657 = icmp eq i64 %.2, 0
  br i1 %.not657, label %303, label %.loopexit674.loopexit

303:                                              ; preds = %300, %.loopexit673
  %.0637695 = phi i64 [ %301, %300 ], [ %.2639, %.loopexit673 ]
  %304 = add nsw i64 %.0637695, -1
  %305 = load i64, ptr %43, align 8, !tbaa !5
  %306 = add nsw i64 %305, 1
  %307 = load i64, ptr %12, align 8, !tbaa !5
  %308 = icmp eq i64 %306, %307
  %309 = add nsw i64 %305, 2
  br i1 %308, label %318, label %310

310:                                              ; preds = %303
  %311 = mul nsw i64 %306, %57
  %312 = getelementptr float, ptr %59, i64 %309
  %313 = getelementptr float, ptr %312, i64 %311
  %314 = load float, ptr %313, align 4, !tbaa !9
  %315 = fcmp oeq float %314, 0.000000e+00
  br i1 %315, label %318, label %316

316:                                              ; preds = %310
  %317 = add nsw i64 %305, 3
  br label %318

318:                                              ; preds = %303, %310, %316
  %.0633 = phi i64 [ %317, %316 ], [ %309, %310 ], [ %309, %303 ]
  %.not658.not687 = icmp slt i64 %.0633, %.0637695
  br i1 %.not658.not687, label %.lr.ph692.preheader, label %.loopexit674.loopexit

.lr.ph692.preheader:                              ; preds = %318
  %319 = mul i64 %304, %302
  %320 = getelementptr inbounds float, ptr %59, i64 %319
  br label %.lr.ph692

.lr.ph692:                                        ; preds = %.lr.ph692.preheader, %403
  %.1690 = phi i64 [ %.2, %403 ], [ 1, %.lr.ph692.preheader ]
  %.1634689 = phi i64 [ %.2635, %403 ], [ %.0633, %.lr.ph692.preheader ]
  %.1638688 = phi i64 [ %.2639, %403 ], [ %306, %.lr.ph692.preheader ]
  %321 = add nsw i64 %.1638688, 1
  %322 = icmp eq i64 %.1634689, %321
  br i1 %322, label %323, label %330

323:                                              ; preds = %.lr.ph692
  %324 = mul i64 %.1638688, %302
  %325 = getelementptr inbounds float, ptr %59, i64 %324
  %326 = load float, ptr %325, align 4, !tbaa !9
  %327 = fcmp oge float %326, 0.000000e+00
  %328 = fneg float %326
  %329 = select i1 %327, float %326, float %328
  br label %357

330:                                              ; preds = %.lr.ph692
  %331 = mul nsw i64 %.1638688, %57
  %332 = getelementptr float, ptr %59, i64 %.1638688
  %333 = getelementptr float, ptr %332, i64 %331
  %334 = load float, ptr %333, align 4, !tbaa !9
  %335 = fcmp oge float %334, 0.000000e+00
  %336 = fneg float %334
  %337 = select i1 %335, float %334, float %336
  %338 = fpext float %337 to double
  %339 = getelementptr float, ptr %59, i64 %321
  %340 = getelementptr float, ptr %339, i64 %331
  %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 = call double @sqrt(double noundef %345) #6
  %347 = mul nsw i64 %321, %57
  %348 = getelementptr float, ptr %332, 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 = call double @llvm.fmuladd.f64(double %346, double %354, double %338)
  %356 = fptrunc double %355 to float
  br label %357

357:                                              ; preds = %330, %323
  %.0630 = phi float [ %329, %323 ], [ %356, %330 ]
  %358 = icmp eq i64 %.1634689, %304
  br i1 %358, label %359, label %364

359:                                              ; preds = %357
  %360 = load float, ptr %320, align 4, !tbaa !9
  %361 = fcmp oge float %360, 0.000000e+00
  %362 = fneg float %360
  %363 = select i1 %361, float %360, float %362
  br label %394

364:                                              ; preds = %357
  %365 = add nsw i64 %.1634689, 1
  %366 = mul nsw i64 %.1634689, %57
  %367 = getelementptr float, ptr %59, i64 %365
  %368 = getelementptr float, ptr %367, i64 %366
  %369 = load float, ptr %368, align 4, !tbaa !9
  %370 = fcmp oeq float %369, 0.000000e+00
  %371 = getelementptr float, ptr %59, i64 %.1634689
  %372 = getelementptr float, ptr %371, i64 %366
  %373 = load float, ptr %372, align 4, !tbaa !9
  %374 = fcmp oge float %373, 0.000000e+00
  %375 = fneg float %373
  %376 = select i1 %374, float %373, float %375
  br i1 %370, label %394, label %377

377:                                              ; preds = %364
  %378 = fpext float %376 to double
  %379 = fcmp oge float %369, 0.000000e+00
  %380 = fneg float %369
  %381 = select i1 %379, float %369, float %380
  %382 = fpext float %381 to double
  %383 = call double @sqrt(double noundef %382) #6
  %384 = mul nsw i64 %365, %57
  %385 = getelementptr float, ptr %371, i64 %384
  %386 = load float, ptr %385, align 4, !tbaa !9
  %387 = fcmp oge float %386, 0.000000e+00
  %388 = fneg float %386
  %389 = select i1 %387, float %386, float %388
  %390 = fpext float %389 to double
  %391 = call double @sqrt(double noundef %390) #6
  %392 = call double @llvm.fmuladd.f64(double %383, double %391, double %378)
  %393 = fptrunc double %392 to float
  br label %394

394:                                              ; preds = %364, %377, %359
  %.0629 = phi float [ %363, %359 ], [ %393, %377 ], [ %376, %364 ]
  %395 = fcmp ult float %.0630, %.0629
  br i1 %395, label %396, label %401

396:                                              ; preds = %394
  store i64 %.1638688, ptr %41, align 8, !tbaa !5
  store i64 %.1634689, ptr %42, align 8, !tbaa !5
  %397 = call i32 @strexc_(ptr noundef nonnull @.str.8, ptr noundef nonnull %36, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %24, ptr noundef nonnull %40) #6
  %398 = load i64, ptr %40, align 8, !tbaa !5
  %399 = icmp eq i64 %398, 0
  %400 = load i64, ptr %42, align 8
  %spec.select = select i1 %399, i64 %400, i64 %.1634689
  br label %401

401:                                              ; preds = %396, %394
  %.2639 = phi i64 [ %.1634689, %394 ], [ %spec.select, %396 ]
  %.2 = phi i64 [ %.1690, %394 ], [ 0, %396 ]
  %402 = icmp eq i64 %.2639, %304
  br i1 %402, label %.loopexit673, label %403

403:                                              ; preds = %401
  %404 = add nsw i64 %.2639, 1
  %405 = mul nsw i64 %.2639, %57
  %406 = getelementptr float, ptr %59, i64 %404
  %407 = getelementptr float, ptr %406, i64 %405
  %408 = load float, ptr %407, align 4, !tbaa !9
  %409 = fcmp oeq float %408, 0.000000e+00
  %410 = add nsw i64 %.2639, 2
  %.2635 = select i1 %409, i64 %404, i64 %410
  %.not658.not = icmp slt i64 %.2635, %.0637695
  br i1 %.not658.not, label %.lr.ph692, label %.loopexit673

.loopexit674.loopexit:                            ; preds = %318, %.loopexit673
  %.pre720 = load i64, ptr %36, align 8, !tbaa !5
  br label %.loopexit674

.loopexit674:                                     ; preds = %._crit_edge686.thread, %.loopexit674.loopexit, %._crit_edge686
  %.1632726 = phi float [ %.1632, %.loopexit674.loopexit ], [ %.1632, %._crit_edge686 ], [ %.1632725, %._crit_edge686.thread ]
  %411 = phi i64 [ %.pre720, %.loopexit674.loopexit ], [ %.pre719, %._crit_edge686 ], [ %175, %._crit_edge686.thread ]
  %412 = load i64, ptr %43, align 8, !tbaa !5
  %.not659.not696 = icmp sgt i64 %411, %412
  br i1 %.not659.not696, label %.lr.ph699, label %._crit_edge700

.lr.ph699:                                        ; preds = %.loopexit674
  %413 = add i64 %114, -1
  %414 = add i64 %57, 1
  br label %415

415:                                              ; preds = %.lr.ph699, %458
  %416 = phi i64 [ %412, %.lr.ph699 ], [ %459, %458 ]
  %.3697 = phi i64 [ %411, %.lr.ph699 ], [ %.4, %458 ]
  %417 = add nsw i64 %416, 1
  %418 = icmp eq i64 %.3697, %417
  br i1 %418, label %419, label %427

419:                                              ; preds = %415
  %420 = mul i64 %.3697, %414
  %421 = getelementptr inbounds float, ptr %59, i64 %420
  %422 = load float, ptr %421, align 4, !tbaa !9
  %423 = add i64 %.3697, %114
  %424 = getelementptr inbounds float, ptr %52, i64 %423
  store float %422, ptr %424, align 4, !tbaa !9
  %425 = getelementptr inbounds float, ptr %53, i64 %423
  store float 0.000000e+00, ptr %425, align 4, !tbaa !9
  %426 = add nsw i64 %.3697, -1
  br label %458

427:                                              ; preds = %415
  %428 = add nsw i64 %.3697, -1
  %429 = mul nsw i64 %428, %57
  %430 = getelementptr float, ptr %59, i64 %.3697
  %431 = getelementptr float, ptr %430, i64 %429
  %432 = load float, ptr %431, align 4, !tbaa !9
  %433 = fcmp oeq float %432, 0.000000e+00
  br i1 %433, label %434, label %441

434:                                              ; preds = %427
  %435 = mul i64 %.3697, %414
  %436 = getelementptr inbounds float, ptr %59, i64 %435
  %437 = load float, ptr %436, align 4, !tbaa !9
  %438 = add i64 %.3697, %114
  %439 = getelementptr inbounds float, ptr %52, i64 %438
  store float %437, ptr %439, align 4, !tbaa !9
  %440 = getelementptr inbounds float, ptr %53, i64 %438
  store float 0.000000e+00, ptr %440, align 4, !tbaa !9
  br label %458

441:                                              ; preds = %427
  %442 = getelementptr float, ptr %59, i64 %428
  %443 = getelementptr float, ptr %442, i64 %429
  %444 = load float, ptr %443, align 4, !tbaa !9
  store float %444, ptr %30, align 4, !tbaa !9
  store float %432, ptr %32, align 4, !tbaa !9
  %445 = mul nsw i64 %.3697, %57
  %446 = getelementptr float, ptr %442, i64 %445
  %447 = load float, ptr %446, align 4, !tbaa !9
  store float %447, ptr %31, align 4, !tbaa !9
  %448 = getelementptr float, ptr %430, i64 %445
  %449 = load float, ptr %448, align 4, !tbaa !9
  store float %449, ptr %33, align 4, !tbaa !9
  %450 = add i64 %413, %.3697
  %451 = getelementptr inbounds float, ptr %52, i64 %450
  %452 = getelementptr inbounds float, ptr %53, i64 %450
  %453 = add i64 %.3697, %114
  %454 = getelementptr inbounds float, ptr %52, i64 %453
  %455 = getelementptr inbounds float, ptr %53, i64 %453
  %456 = call i32 @slanv2_(ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %451, ptr noundef nonnull %452, ptr noundef nonnull %454, ptr noundef nonnull %455, ptr noundef nonnull %34, ptr noundef nonnull %35) #6
  %457 = add nsw i64 %.3697, -2
  %.pre721 = load i64, ptr %43, align 8, !tbaa !5
  br label %458

458:                                              ; preds = %434, %441, %419
  %459 = phi i64 [ %416, %419 ], [ %416, %434 ], [ %.pre721, %441 ]
  %.4 = phi i64 [ %426, %419 ], [ %428, %434 ], [ %457, %441 ]
  %.not659.not = icmp sgt i64 %.4, %459
  br i1 %.not659.not, label %415, label %._crit_edge700.loopexit

._crit_edge700.loopexit:                          ; preds = %458
  %.pre722 = load i64, ptr %36, align 8, !tbaa !5
  br label %._crit_edge700

._crit_edge700:                                   ; preds = %._crit_edge700.loopexit, %.loopexit674
  %460 = phi i64 [ %.pre722, %._crit_edge700.loopexit ], [ %411, %.loopexit674 ]
  %461 = load i64, ptr %12, align 8, !tbaa !5
  %462 = icmp slt i64 %461, %460
  %463 = fcmp oeq float %.1632726, 0.000000e+00
  %or.cond = select i1 %462, i1 true, i1 %463
  br i1 %or.cond, label %464, label %.loopexit

464:                                              ; preds = %._crit_edge700
  %465 = icmp sgt i64 %461, 1
  %466 = fcmp une float %.1632726, 0.000000e+00
  %or.cond3 = select i1 %465, i1 %466, i1 false
  br i1 %or.cond3, label %467, label %490

467:                                              ; preds = %464
  %468 = call i32 @f2c_scopy(ptr noundef nonnull %12, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %24, ptr noundef nonnull @c__1) #6
  %469 = load float, ptr %24, align 4, !tbaa !9
  store float %469, ptr %39, align 4, !tbaa !9
  %470 = getelementptr inbounds i8, ptr %24, i64 4
  %471 = call i32 @slarfg_(ptr noundef nonnull %12, ptr noundef nonnull %39, ptr noundef nonnull %470, ptr noundef nonnull @c__1, ptr noundef nonnull %38) #6
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %472 = load i64, ptr %36, align 8, !tbaa !5
  %473 = add nsw i64 %472, -2
  store i64 %473, ptr %27, align 8, !tbaa !5
  store i64 %473, ptr %28, align 8, !tbaa !5
  %474 = getelementptr inbounds i8, ptr %19, i64 8
  %475 = call i32 @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 nonnull %474, ptr noundef nonnull %20) #6
  %476 = load i64, ptr %36, align 8, !tbaa !5
  %477 = getelementptr float, ptr %24, i64 %476
  %478 = call i32 @slarf_(ptr noundef nonnull @.str.9, ptr noundef nonnull %12, ptr noundef nonnull %36, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %477) #6
  %479 = load i64, ptr %36, align 8, !tbaa !5
  %480 = getelementptr float, ptr %24, i64 %479
  %481 = call i32 @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 %38, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %480) #6
  %482 = load i64, ptr %36, align 8, !tbaa !5
  %483 = getelementptr float, ptr %24, i64 %482
  %484 = call i32 @slarf_(ptr noundef nonnull @.str, ptr noundef nonnull %36, ptr noundef nonnull %12, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %483) #6
  %485 = load i64, ptr %25, align 8, !tbaa !5
  %486 = load i64, ptr %36, align 8, !tbaa !5
  %487 = sub nsw i64 %485, %486
  store i64 %487, ptr %27, align 8, !tbaa !5
  %488 = getelementptr float, ptr %24, i64 %486
  %489 = call i32 @sgehrd_(ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef %19, ptr noundef nonnull %20, ptr noundef nonnull %24, ptr noundef %488, ptr noundef nonnull %27, ptr noundef nonnull %40) #6
  br label %490

490:                                              ; preds = %467, %464
  %491 = icmp sgt i64 %114, 0
  br i1 %491, label %492, label %497

492:                                              ; preds = %490
  %493 = load float, ptr %16, align 4, !tbaa !9
  %494 = fmul float %.1632726, %493
  %495 = mul nsw i64 %114, %46
  %496 = getelementptr float, ptr %150, i64 %495
  store float %494, ptr %496, align 4, !tbaa !9
  br label %497

497:                                              ; preds = %492, %490
  %498 = call i32 @slacpy_(ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %151, ptr noundef nonnull %7) #6
  %499 = load i64, ptr %36, align 8, !tbaa !5
  %500 = add nsw i64 %499, -1
  store i64 %500, ptr %27, align 8, !tbaa !5
  %501 = load i64, ptr %20, align 8, !tbaa !5
  %502 = add nsw i64 %501, 1
  store i64 %502, ptr %28, align 8, !tbaa !5
  %503 = load i64, ptr %7, align 8, !tbaa !5
  %504 = add nsw i64 %503, 1
  store i64 %504, ptr %29, align 8, !tbaa !5
  %505 = call i32 @f2c_scopy(ptr noundef nonnull %27, ptr noundef nonnull %162, ptr noundef nonnull %28, ptr noundef %161, ptr noundef nonnull %29) #6
  %506 = load i64, ptr %12, align 8, !tbaa !5
  %507 = icmp sgt i64 %506, 1
  %or.cond5 = select i1 %507, i1 %466, i1 false
  br i1 %or.cond5, label %508, label %514

508:                                              ; preds = %497
  %509 = load i64, ptr %25, align 8, !tbaa !5
  %510 = load i64, ptr %36, align 8, !tbaa !5
  %511 = sub nsw i64 %509, %510
  store i64 %511, ptr %27, align 8, !tbaa !5
  %512 = getelementptr float, ptr %24, i64 %510
  %513 = call i32 @sormhr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %36, 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 %512, ptr noundef nonnull %27, ptr noundef nonnull %40) #6
  br label %514

514:                                              ; preds = %508, %497
  %515 = load i64, ptr %0, align 8, !tbaa !5
  %.not660 = icmp eq i64 %515, 0
  br i1 %.not660, label %516, label %518

516:                                              ; preds = %514
  %517 = load i64, ptr %3, align 8, !tbaa !5
  br label %518

518:                                              ; preds = %514, %516
  %.0625 = phi i64 [ %517, %516 ], [ 1, %514 ]
  store i64 %114, ptr %27, align 8, !tbaa !5
  %519 = load i64, ptr %21, align 8, !tbaa !5
  store i64 %519, ptr %28, align 8, !tbaa !5
  %invariant.gep701 = getelementptr float, ptr %48, i64 %149
  %520 = icmp slt i64 %519, 0
  %521 = icmp sge i64 %.0625, %114
  %522 = icmp sle i64 %.0625, %114
  %.in703 = select i1 %520, i1 %521, i1 %522
  br i1 %.in703, label %.lr.ph706, label %._crit_edge707

.lr.ph706:                                        ; preds = %518, %.lr.ph706
  %.0623704 = phi i64 [ %529, %.lr.ph706 ], [ %.0625, %518 ]
  %523 = load i64, ptr %21, align 8, !tbaa !5
  store i64 %523, ptr %29, align 8, !tbaa !5
  %524 = sub nsw i64 %115, %.0623704
  %525 = call i64 @llvm.smin.i64(i64 %523, i64 %524)
  store i64 %525, ptr %37, align 8, !tbaa !5
  %gep702 = getelementptr float, ptr %invariant.gep701, i64 %.0623704
  %526 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.1, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef nonnull @c_b18, ptr noundef %gep702, ptr noundef nonnull %7, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull @c_b17, ptr noundef %22, ptr noundef %23) #6
  %527 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef %22, ptr noundef %23, ptr noundef %gep702, ptr noundef nonnull %7) #6
  %528 = load i64, ptr %28, align 8, !tbaa !5
  %529 = add nsw i64 %528, %.0623704
  %530 = icmp slt i64 %528, 0
  %531 = load i64, ptr %27, align 8
  %532 = icmp sge i64 %529, %531
  %533 = icmp sle i64 %529, %531
  %.in = select i1 %530, i1 %532, i1 %533
  br i1 %.in, label %.lr.ph706, label %._crit_edge707.loopexit, !llvm.loop !15

._crit_edge707.loopexit:                          ; preds = %.lr.ph706
  %.pre723 = load i64, ptr %0, align 8, !tbaa !5
  br label %._crit_edge707

._crit_edge707:                                   ; preds = %._crit_edge707.loopexit, %518
  %534 = phi i64 [ %.pre723, %._crit_edge707.loopexit ], [ %515, %518 ]
  %.not661 = icmp eq i64 %534, 0
  br i1 %.not661, label %.loopexit672, label %535

535:                                              ; preds = %._crit_edge707
  %536 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %536, ptr %28, align 8, !tbaa !5
  %537 = load i64, ptr %18, align 8, !tbaa !5
  store i64 %537, ptr %27, align 8, !tbaa !5
  %538 = load i64, ptr %4, align 8, !tbaa !5
  %539 = add nsw i64 %538, 1
  %540 = icmp slt i64 %537, 0
  %541 = icmp sge i64 %539, %536
  %542 = icmp slt i64 %538, %536
  %.in662708 = select i1 %540, i1 %541, i1 %542
  br i1 %.in662708, label %.lr.ph711, label %.loopexit672

.lr.ph711:                                        ; preds = %535, %.lr.ph711
  %.0626709 = phi i64 [ %552, %.lr.ph711 ], [ %539, %535 ]
  %543 = load i64, ptr %18, align 8, !tbaa !5
  store i64 %543, ptr %29, align 8, !tbaa !5
  %544 = load i64, ptr %2, align 8, !tbaa !5
  %reass.sub = sub i64 %544, %.0626709
  %545 = add i64 %reass.sub, 1
  %546 = call i64 @llvm.smin.i64(i64 %543, i64 %545)
  store i64 %546, ptr %37, align 8, !tbaa !5
  %547 = mul nsw i64 %.0626709, %46
  %548 = getelementptr float, ptr %150, i64 %547
  %549 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef nonnull @c_b18, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %548, ptr noundef nonnull %7, ptr noundef nonnull @c_b17, ptr noundef %19, ptr noundef nonnull %20) #6
  %550 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %548, ptr noundef nonnull %7) #6
  %551 = load i64, ptr %27, align 8, !tbaa !5
  %552 = add nsw i64 %551, %.0626709
  %553 = icmp slt i64 %551, 0
  %554 = load i64, ptr %28, align 8
  %555 = icmp sge i64 %552, %554
  %556 = icmp sle i64 %552, %554
  %.in662 = select i1 %553, i1 %555, i1 %556
  br i1 %.in662, label %.lr.ph711, label %.loopexit672, !llvm.loop !16

.loopexit672:                                     ; preds = %.lr.ph711, %535, %._crit_edge707
  %557 = load i64, ptr %1, align 8, !tbaa !5
  %.not663 = icmp eq i64 %557, 0
  br i1 %.not663, label %.loopexit, label %558

558:                                              ; preds = %.loopexit672
  %559 = load i64, ptr %9, align 8, !tbaa !5
  store i64 %559, ptr %27, align 8, !tbaa !5
  %560 = load i64, ptr %21, align 8, !tbaa !5
  store i64 %560, ptr %28, align 8, !tbaa !5
  %561 = load i64, ptr %8, align 8, !tbaa !5
  %562 = icmp slt i64 %560, 0
  %563 = icmp sge i64 %561, %559
  %564 = icmp sle i64 %561, %559
  %.in664712 = select i1 %562, i1 %563, i1 %564
  br i1 %.in664712, label %.lr.ph715, label %.loopexit

.lr.ph715:                                        ; preds = %558
  %565 = mul nsw i64 %115, %49
  %invariant.gep716 = getelementptr float, ptr %51, i64 %565
  br label %566

566:                                              ; preds = %.lr.ph715, %566
  %.1624713 = phi i64 [ %561, %.lr.ph715 ], [ %574, %566 ]
  %567 = load i64, ptr %21, align 8, !tbaa !5
  store i64 %567, ptr %29, align 8, !tbaa !5
  %568 = load i64, ptr %9, align 8, !tbaa !5
  %reass.sub718 = sub i64 %568, %.1624713
  %569 = add i64 %reass.sub718, 1
  %570 = call i64 @llvm.smin.i64(i64 %567, i64 %569)
  store i64 %570, ptr %37, align 8, !tbaa !5
  %gep717 = getelementptr float, ptr %invariant.gep716, i64 %.1624713
  %571 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.1, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef nonnull @c_b18, ptr noundef %gep717, ptr noundef nonnull %11, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull @c_b17, ptr noundef %22, ptr noundef nonnull %23) #6
  %572 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef %22, ptr noundef nonnull %23, ptr noundef %gep717, ptr noundef nonnull %11) #6
  %573 = load i64, ptr %28, align 8, !tbaa !5
  %574 = add nsw i64 %573, %.1624713
  %575 = icmp slt i64 %573, 0
  %576 = load i64, ptr %27, align 8
  %577 = icmp sge i64 %574, %576
  %578 = icmp sle i64 %574, %576
  %.in664 = select i1 %575, i1 %577, i1 %578
  br i1 %.in664, label %566, label %.loopexit, !llvm.loop !17

.loopexit:                                        ; preds = %566, %558, %.loopexit672, %._crit_edge700
  %579 = load i64, ptr %36, align 8, !tbaa !5
  %580 = load i64, ptr %12, align 8, !tbaa !5
  %581 = sub nsw i64 %579, %580
  store i64 %581, ptr %13, align 8, !tbaa !5
  %582 = load i64, ptr %43, align 8, !tbaa !5
  %583 = load i64, ptr %12, align 8, !tbaa !5
  %584 = sub nsw i64 %583, %582
  store i64 %584, ptr %12, align 8, !tbaa !5
  %585 = sitofp i64 %.0 to float
  br label %.sink.split

.sink.split:                                      ; preds = %124, %144, %142, %87, %.loopexit
  %.sink = phi float [ %585, %.loopexit ], [ %88, %87 ], [ 1.000000e+00, %142 ], [ 1.000000e+00, %144 ], [ 1.000000e+00, %124 ]
  store float %.sink, ptr %24, align 4, !tbaa !9
  br label %586

586:                                              ; preds = %.sink.split, %93, %89
  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 8, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  ret i32 0
}

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

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

declare i32 @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 i32 @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 double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !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