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

; 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
@.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_b12 = external hidden global float, align 4
@c_b13 = external hidden global float, align 4
@c_true = external hidden global i64, align 8
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @slaqr2_(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 float, align 4
  %94 = alloca i64, align 8
  %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 float, align 4
  %105 = alloca float, align 4
  %106 = alloca i64, align 8
  %107 = alloca float, align 4
  %108 = alloca i64, align 8
  %109 = 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 4, ptr %93) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 4, ptr %104) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #5
  call void @llvm.lifetime.start.p0(i64 8, 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
  %110 = load ptr, ptr %35, align 8, !tbaa !5
  %111 = load i64, ptr %110, align 8, !tbaa !9
  store i64 %111, ptr %54, align 8, !tbaa !9
  %112 = load i64, ptr %54, align 8, !tbaa !9
  %113 = add nsw i64 1, %112
  store i64 %113, ptr %55, align 8, !tbaa !9
  %114 = load i64, ptr %55, align 8, !tbaa !9
  %115 = load ptr, ptr %34, align 8, !tbaa !5
  %116 = sub i64 0, %114
  %117 = getelementptr inbounds float, ptr %115, i64 %116
  store ptr %117, ptr %34, align 8, !tbaa !5
  %118 = load ptr, ptr %39, align 8, !tbaa !5
  %119 = load i64, ptr %118, align 8, !tbaa !9
  store i64 %119, ptr %62, align 8, !tbaa !9
  %120 = load i64, ptr %62, align 8, !tbaa !9
  %121 = add nsw i64 1, %120
  store i64 %121, ptr %63, align 8, !tbaa !9
  %122 = load i64, ptr %63, align 8, !tbaa !9
  %123 = load ptr, ptr %38, align 8, !tbaa !5
  %124 = sub i64 0, %122
  %125 = getelementptr inbounds float, ptr %123, i64 %124
  store ptr %125, ptr %38, align 8, !tbaa !5
  %126 = load ptr, ptr %42, align 8, !tbaa !5
  %127 = getelementptr inbounds float, ptr %126, i32 -1
  store ptr %127, ptr %42, align 8, !tbaa !5
  %128 = load ptr, ptr %43, align 8, !tbaa !5
  %129 = getelementptr inbounds float, ptr %128, i32 -1
  store ptr %129, ptr %43, align 8, !tbaa !5
  %130 = load ptr, ptr %45, align 8, !tbaa !5
  %131 = load i64, ptr %130, align 8, !tbaa !9
  store i64 %131, ptr %58, align 8, !tbaa !9
  %132 = load i64, ptr %58, align 8, !tbaa !9
  %133 = add nsw i64 1, %132
  store i64 %133, ptr %59, align 8, !tbaa !9
  %134 = load i64, ptr %59, align 8, !tbaa !9
  %135 = load ptr, ptr %44, align 8, !tbaa !5
  %136 = sub i64 0, %134
  %137 = getelementptr inbounds float, ptr %135, i64 %136
  store ptr %137, ptr %44, align 8, !tbaa !5
  %138 = load ptr, ptr %48, align 8, !tbaa !5
  %139 = load i64, ptr %138, align 8, !tbaa !9
  store i64 %139, ptr %56, align 8, !tbaa !9
  %140 = load i64, ptr %56, align 8, !tbaa !9
  %141 = add nsw i64 1, %140
  store i64 %141, ptr %57, align 8, !tbaa !9
  %142 = load i64, ptr %57, align 8, !tbaa !9
  %143 = load ptr, ptr %47, align 8, !tbaa !5
  %144 = sub i64 0, %142
  %145 = getelementptr inbounds float, ptr %143, i64 %144
  store ptr %145, ptr %47, align 8, !tbaa !5
  %146 = load ptr, ptr %51, align 8, !tbaa !5
  %147 = load i64, ptr %146, align 8, !tbaa !9
  store i64 %147, ptr %60, align 8, !tbaa !9
  %148 = load i64, ptr %60, align 8, !tbaa !9
  %149 = add nsw i64 1, %148
  store i64 %149, ptr %61, align 8, !tbaa !9
  %150 = load i64, ptr %61, align 8, !tbaa !9
  %151 = load ptr, ptr %50, align 8, !tbaa !5
  %152 = sub i64 0, %150
  %153 = getelementptr inbounds float, ptr %151, i64 %152
  store ptr %153, ptr %50, align 8, !tbaa !5
  %154 = load ptr, ptr %52, align 8, !tbaa !5
  %155 = getelementptr inbounds float, ptr %154, i32 -1
  store ptr %155, ptr %52, align 8, !tbaa !5
  %156 = load ptr, ptr %33, align 8, !tbaa !5
  %157 = load i64, ptr %156, align 8, !tbaa !9
  store i64 %157, ptr %64, align 8, !tbaa !9
  %158 = load ptr, ptr %32, align 8, !tbaa !5
  %159 = load i64, ptr %158, align 8, !tbaa !9
  %160 = load ptr, ptr %31, align 8, !tbaa !5
  %161 = load i64, ptr %160, align 8, !tbaa !9
  %162 = sub nsw i64 %159, %161
  %163 = add nsw i64 %162, 1
  store i64 %163, ptr %65, align 8, !tbaa !9
  %164 = load i64, ptr %64, align 8, !tbaa !9
  %165 = load i64, ptr %65, align 8, !tbaa !9
  %166 = icmp sle i64 %164, %165
  br i1 %166, label %167, label %169

167:                                              ; preds = %26
  %168 = load i64, ptr %64, align 8, !tbaa !9
  br label %171

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

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

175:                                              ; preds = %171
  store i64 1, ptr %108, align 8, !tbaa !9
  br label %222

176:                                              ; preds = %171
  %177 = load i64, ptr %84, align 8, !tbaa !9
  %178 = sub nsw i64 %177, 1
  store i64 %178, ptr %64, align 8, !tbaa !9
  %179 = load ptr, ptr %47, align 8, !tbaa !5
  %180 = load i64, ptr %57, align 8, !tbaa !9
  %181 = getelementptr inbounds float, ptr %179, i64 %180
  %182 = load ptr, ptr %48, align 8, !tbaa !5
  %183 = load ptr, ptr %52, align 8, !tbaa !5
  %184 = getelementptr inbounds float, ptr %183, i64 1
  %185 = load ptr, ptr %52, align 8, !tbaa !5
  %186 = getelementptr inbounds float, ptr %185, i64 1
  %187 = call i32 @sgehrd_(ptr noundef %84, ptr noundef @c__1, ptr noundef %64, ptr noundef %181, ptr noundef %182, ptr noundef %184, ptr noundef %186, ptr noundef @c_n1, ptr noundef %96)
  %188 = load ptr, ptr %52, align 8, !tbaa !5
  %189 = getelementptr inbounds float, ptr %188, i64 1
  %190 = load float, ptr %189, align 4, !tbaa !11
  %191 = fptosi float %190 to i64
  store i64 %191, ptr %91, align 8, !tbaa !9
  %192 = load i64, ptr %84, align 8, !tbaa !9
  %193 = sub nsw i64 %192, 1
  store i64 %193, ptr %64, align 8, !tbaa !9
  %194 = load ptr, ptr %47, align 8, !tbaa !5
  %195 = load i64, ptr %57, align 8, !tbaa !9
  %196 = getelementptr inbounds float, ptr %194, i64 %195
  %197 = load ptr, ptr %48, align 8, !tbaa !5
  %198 = load ptr, ptr %52, align 8, !tbaa !5
  %199 = getelementptr inbounds float, ptr %198, i64 1
  %200 = load ptr, ptr %44, align 8, !tbaa !5
  %201 = load i64, ptr %59, align 8, !tbaa !9
  %202 = getelementptr inbounds float, ptr %200, i64 %201
  %203 = load ptr, ptr %45, align 8, !tbaa !5
  %204 = load ptr, ptr %52, align 8, !tbaa !5
  %205 = getelementptr inbounds float, ptr %204, i64 1
  %206 = 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 %196, ptr noundef %197, ptr noundef %199, ptr noundef %202, ptr noundef %203, ptr noundef %205, ptr noundef @c_n1, ptr noundef %96)
  %207 = load ptr, ptr %52, align 8, !tbaa !5
  %208 = getelementptr inbounds float, ptr %207, i64 1
  %209 = load float, ptr %208, align 4, !tbaa !11
  %210 = fptosi float %209 to i64
  store i64 %210, ptr %92, align 8, !tbaa !9
  %211 = load i64, ptr %84, align 8, !tbaa !9
  %212 = load i64, ptr %91, align 8, !tbaa !9
  %213 = load i64, ptr %92, align 8, !tbaa !9
  %214 = icmp sge i64 %212, %213
  br i1 %214, label %215, label %217

215:                                              ; preds = %176
  %216 = load i64, ptr %91, align 8, !tbaa !9
  br label %219

217:                                              ; preds = %176
  %218 = load i64, ptr %92, align 8, !tbaa !9
  br label %219

219:                                              ; preds = %217, %215
  %220 = phi i64 [ %216, %215 ], [ %218, %217 ]
  %221 = add nsw i64 %211, %220
  store i64 %221, ptr %108, align 8, !tbaa !9
  br label %222

222:                                              ; preds = %219, %175
  %223 = load ptr, ptr %53, align 8, !tbaa !5
  %224 = load i64, ptr %223, align 8, !tbaa !9
  %225 = icmp eq i64 %224, -1
  br i1 %225, label %226, label %231

226:                                              ; preds = %222
  %227 = load i64, ptr %108, align 8, !tbaa !9
  %228 = sitofp i64 %227 to float
  %229 = load ptr, ptr %52, align 8, !tbaa !5
  %230 = getelementptr inbounds float, ptr %229, i64 1
  store float %228, ptr %230, align 4, !tbaa !11
  store i32 0, ptr %27, align 4
  store i32 1, ptr %109, align 4
  br label %1653

231:                                              ; preds = %222
  %232 = load ptr, ptr %40, align 8, !tbaa !5
  store i64 0, ptr %232, align 8, !tbaa !9
  %233 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 0, ptr %233, align 8, !tbaa !9
  %234 = load ptr, ptr %52, align 8, !tbaa !5
  %235 = getelementptr inbounds float, ptr %234, i64 1
  store float 1.000000e+00, ptr %235, align 4, !tbaa !11
  %236 = load ptr, ptr %31, align 8, !tbaa !5
  %237 = load i64, ptr %236, align 8, !tbaa !9
  %238 = load ptr, ptr %32, align 8, !tbaa !5
  %239 = load i64, ptr %238, align 8, !tbaa !9
  %240 = icmp sgt i64 %237, %239
  br i1 %240, label %241, label %242

241:                                              ; preds = %231
  store i32 0, ptr %27, align 4
  store i32 1, ptr %109, align 4
  br label %1653

242:                                              ; preds = %231
  %243 = load ptr, ptr %33, align 8, !tbaa !5
  %244 = load i64, ptr %243, align 8, !tbaa !9
  %245 = icmp slt i64 %244, 1
  br i1 %245, label %246, label %247

246:                                              ; preds = %242
  store i32 0, ptr %27, align 4
  store i32 1, ptr %109, align 4
  br label %1653

247:                                              ; preds = %242
  %248 = call double @slamch_(ptr noundef @.str.2)
  %249 = fptrunc double %248 to float
  store float %249, ptr %104, align 4, !tbaa !11
  %250 = load float, ptr %104, align 4, !tbaa !11
  %251 = fdiv float 1.000000e+00, %250
  store float %251, ptr %105, align 4, !tbaa !11
  %252 = call i32 @slabad_(ptr noundef %104, ptr noundef %105)
  %253 = call double @slamch_(ptr noundef @.str.3)
  %254 = fptrunc double %253 to float
  store float %254, ptr %90, align 4, !tbaa !11
  %255 = load float, ptr %104, align 4, !tbaa !11
  %256 = load ptr, ptr %30, align 8, !tbaa !5
  %257 = load i64, ptr %256, align 8, !tbaa !9
  %258 = sitofp i64 %257 to float
  %259 = load float, ptr %90, align 4, !tbaa !11
  %260 = fdiv float %258, %259
  %261 = fmul float %255, %260
  store float %261, ptr %107, align 4, !tbaa !11
  %262 = load ptr, ptr %33, align 8, !tbaa !5
  %263 = load i64, ptr %262, align 8, !tbaa !9
  store i64 %263, ptr %64, align 8, !tbaa !9
  %264 = load ptr, ptr %32, align 8, !tbaa !5
  %265 = load i64, ptr %264, align 8, !tbaa !9
  %266 = load ptr, ptr %31, align 8, !tbaa !5
  %267 = load i64, ptr %266, align 8, !tbaa !9
  %268 = sub nsw i64 %265, %267
  %269 = add nsw i64 %268, 1
  store i64 %269, ptr %65, align 8, !tbaa !9
  %270 = load i64, ptr %64, align 8, !tbaa !9
  %271 = load i64, ptr %65, align 8, !tbaa !9
  %272 = icmp sle i64 %270, %271
  br i1 %272, label %273, label %275

273:                                              ; preds = %247
  %274 = load i64, ptr %64, align 8, !tbaa !9
  br label %277

275:                                              ; preds = %247
  %276 = load i64, ptr %65, align 8, !tbaa !9
  br label %277

277:                                              ; preds = %275, %273
  %278 = phi i64 [ %274, %273 ], [ %276, %275 ]
  store i64 %278, ptr %84, align 8, !tbaa !9
  %279 = load ptr, ptr %32, align 8, !tbaa !5
  %280 = load i64, ptr %279, align 8, !tbaa !9
  %281 = load i64, ptr %84, align 8, !tbaa !9
  %282 = sub nsw i64 %280, %281
  %283 = add nsw i64 %282, 1
  store i64 %283, ptr %103, align 8, !tbaa !9
  %284 = load i64, ptr %103, align 8, !tbaa !9
  %285 = load ptr, ptr %31, align 8, !tbaa !5
  %286 = load i64, ptr %285, align 8, !tbaa !9
  %287 = icmp eq i64 %284, %286
  br i1 %287, label %288, label %289

288:                                              ; preds = %277
  store float 0.000000e+00, ptr %77, align 4, !tbaa !11
  br label %299

289:                                              ; preds = %277
  %290 = load ptr, ptr %34, align 8, !tbaa !5
  %291 = load i64, ptr %103, align 8, !tbaa !9
  %292 = load i64, ptr %103, align 8, !tbaa !9
  %293 = sub nsw i64 %292, 1
  %294 = load i64, ptr %54, align 8, !tbaa !9
  %295 = mul nsw i64 %293, %294
  %296 = add nsw i64 %291, %295
  %297 = getelementptr inbounds float, ptr %290, i64 %296
  %298 = load float, ptr %297, align 4, !tbaa !11
  store float %298, ptr %77, align 4, !tbaa !11
  br label %299

299:                                              ; preds = %289, %288
  %300 = load ptr, ptr %32, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  %302 = load i64, ptr %103, align 8, !tbaa !9
  %303 = icmp eq i64 %301, %302
  br i1 %303, label %304, label %385

304:                                              ; preds = %299
  %305 = load ptr, ptr %34, align 8, !tbaa !5
  %306 = load i64, ptr %103, align 8, !tbaa !9
  %307 = load i64, ptr %103, align 8, !tbaa !9
  %308 = load i64, ptr %54, align 8, !tbaa !9
  %309 = mul nsw i64 %307, %308
  %310 = add nsw i64 %306, %309
  %311 = getelementptr inbounds float, ptr %305, i64 %310
  %312 = load float, ptr %311, align 4, !tbaa !11
  %313 = load ptr, ptr %42, align 8, !tbaa !5
  %314 = load i64, ptr %103, align 8, !tbaa !9
  %315 = getelementptr inbounds float, ptr %313, i64 %314
  store float %312, ptr %315, align 4, !tbaa !11
  %316 = load ptr, ptr %43, align 8, !tbaa !5
  %317 = load i64, ptr %103, align 8, !tbaa !9
  %318 = getelementptr inbounds float, ptr %316, i64 %317
  store float 0.000000e+00, ptr %318, align 4, !tbaa !11
  %319 = load ptr, ptr %40, align 8, !tbaa !5
  store i64 1, ptr %319, align 8, !tbaa !9
  %320 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 0, ptr %320, align 8, !tbaa !9
  %321 = load float, ptr %107, align 4, !tbaa !11
  store float %321, ptr %69, align 4, !tbaa !11
  %322 = load float, ptr %90, align 4, !tbaa !11
  %323 = fpext float %322 to double
  %324 = load ptr, ptr %34, align 8, !tbaa !5
  %325 = load i64, ptr %103, align 8, !tbaa !9
  %326 = load i64, ptr %103, align 8, !tbaa !9
  %327 = load i64, ptr %54, align 8, !tbaa !9
  %328 = mul nsw i64 %326, %327
  %329 = add nsw i64 %325, %328
  %330 = getelementptr inbounds float, ptr %324, i64 %329
  %331 = load float, ptr %330, align 4, !tbaa !11
  store float %331, ptr %68, align 4, !tbaa !11
  %332 = load float, ptr %68, align 4, !tbaa !11
  %333 = fcmp oge float %332, 0.000000e+00
  br i1 %333, label %334, label %336

334:                                              ; preds = %304
  %335 = load float, ptr %68, align 4, !tbaa !11
  br label %339

336:                                              ; preds = %304
  %337 = load float, ptr %68, align 4, !tbaa !11
  %338 = fneg float %337
  br label %339

339:                                              ; preds = %336, %334
  %340 = phi float [ %335, %334 ], [ %338, %336 ]
  %341 = fpext float %340 to double
  %342 = fmul double %323, %341
  %343 = fptrunc double %342 to float
  store float %343, ptr %70, align 4, !tbaa !11
  %344 = load float, ptr %77, align 4, !tbaa !11
  %345 = fcmp oge float %344, 0.000000e+00
  br i1 %345, label %346, label %348

346:                                              ; preds = %339
  %347 = load float, ptr %77, align 4, !tbaa !11
  br label %351

348:                                              ; preds = %339
  %349 = load float, ptr %77, align 4, !tbaa !11
  %350 = fneg float %349
  br label %351

351:                                              ; preds = %348, %346
  %352 = phi float [ %347, %346 ], [ %350, %348 ]
  %353 = fpext float %352 to double
  %354 = load float, ptr %69, align 4, !tbaa !11
  %355 = load float, ptr %70, align 4, !tbaa !11
  %356 = fcmp oge float %354, %355
  br i1 %356, label %357, label %359

357:                                              ; preds = %351
  %358 = load float, ptr %69, align 4, !tbaa !11
  br label %361

359:                                              ; preds = %351
  %360 = load float, ptr %70, align 4, !tbaa !11
  br label %361

361:                                              ; preds = %359, %357
  %362 = phi float [ %358, %357 ], [ %360, %359 ]
  %363 = fpext float %362 to double
  %364 = fcmp ole double %353, %363
  br i1 %364, label %365, label %382

365:                                              ; preds = %361
  %366 = load ptr, ptr %40, align 8, !tbaa !5
  store i64 0, ptr %366, align 8, !tbaa !9
  %367 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 1, ptr %367, align 8, !tbaa !9
  %368 = load i64, ptr %103, align 8, !tbaa !9
  %369 = load ptr, ptr %31, align 8, !tbaa !5
  %370 = load i64, ptr %369, align 8, !tbaa !9
  %371 = icmp sgt i64 %368, %370
  br i1 %371, label %372, label %381

372:                                              ; preds = %365
  %373 = load ptr, ptr %34, align 8, !tbaa !5
  %374 = load i64, ptr %103, align 8, !tbaa !9
  %375 = load i64, ptr %103, align 8, !tbaa !9
  %376 = sub nsw i64 %375, 1
  %377 = load i64, ptr %54, align 8, !tbaa !9
  %378 = mul nsw i64 %376, %377
  %379 = add nsw i64 %374, %378
  %380 = getelementptr inbounds float, ptr %373, i64 %379
  store float 0.000000e+00, ptr %380, align 4, !tbaa !11
  br label %381

381:                                              ; preds = %372, %365
  br label %382

382:                                              ; preds = %381, %361
  %383 = load ptr, ptr %52, align 8, !tbaa !5
  %384 = getelementptr inbounds float, ptr %383, i64 1
  store float 1.000000e+00, ptr %384, align 4, !tbaa !11
  store i32 0, ptr %27, align 4
  store i32 1, ptr %109, align 4
  br label %1653

385:                                              ; preds = %299
  %386 = load ptr, ptr %34, align 8, !tbaa !5
  %387 = load i64, ptr %103, align 8, !tbaa !9
  %388 = load i64, ptr %103, align 8, !tbaa !9
  %389 = load i64, ptr %54, align 8, !tbaa !9
  %390 = mul nsw i64 %388, %389
  %391 = add nsw i64 %387, %390
  %392 = getelementptr inbounds float, ptr %386, i64 %391
  %393 = load ptr, ptr %35, align 8, !tbaa !5
  %394 = load ptr, ptr %47, align 8, !tbaa !5
  %395 = load i64, ptr %57, align 8, !tbaa !9
  %396 = getelementptr inbounds float, ptr %394, i64 %395
  %397 = load ptr, ptr %48, align 8, !tbaa !5
  %398 = call i32 @slacpy_(ptr noundef @.str.4, ptr noundef %84, ptr noundef %84, ptr noundef %392, ptr noundef %393, ptr noundef %396, ptr noundef %397)
  %399 = load i64, ptr %84, align 8, !tbaa !9
  %400 = sub nsw i64 %399, 1
  store i64 %400, ptr %64, align 8, !tbaa !9
  %401 = load ptr, ptr %35, align 8, !tbaa !5
  %402 = load i64, ptr %401, align 8, !tbaa !9
  %403 = add nsw i64 %402, 1
  store i64 %403, ptr %65, align 8, !tbaa !9
  %404 = load ptr, ptr %48, align 8, !tbaa !5
  %405 = load i64, ptr %404, align 8, !tbaa !9
  %406 = add nsw i64 %405, 1
  store i64 %406, ptr %66, align 8, !tbaa !9
  %407 = load ptr, ptr %34, align 8, !tbaa !5
  %408 = load i64, ptr %103, align 8, !tbaa !9
  %409 = add nsw i64 %408, 1
  %410 = load i64, ptr %103, align 8, !tbaa !9
  %411 = load i64, ptr %54, align 8, !tbaa !9
  %412 = mul nsw i64 %410, %411
  %413 = add nsw i64 %409, %412
  %414 = getelementptr inbounds float, ptr %407, i64 %413
  %415 = load ptr, ptr %47, align 8, !tbaa !5
  %416 = load i64, ptr %56, align 8, !tbaa !9
  %417 = add nsw i64 %416, 2
  %418 = getelementptr inbounds float, ptr %415, i64 %417
  %419 = call i32 @f2c_scopy(ptr noundef %64, ptr noundef %414, ptr noundef %65, ptr noundef %418, ptr noundef %66)
  %420 = load ptr, ptr %44, align 8, !tbaa !5
  %421 = load i64, ptr %59, align 8, !tbaa !9
  %422 = getelementptr inbounds float, ptr %420, i64 %421
  %423 = load ptr, ptr %45, align 8, !tbaa !5
  %424 = call i32 @slaset_(ptr noundef @.str.5, ptr noundef %84, ptr noundef %84, ptr noundef @c_b12, ptr noundef @c_b13, ptr noundef %422, ptr noundef %423)
  %425 = load ptr, ptr %47, align 8, !tbaa !5
  %426 = load i64, ptr %57, align 8, !tbaa !9
  %427 = getelementptr inbounds float, ptr %425, i64 %426
  %428 = load ptr, ptr %48, align 8, !tbaa !5
  %429 = load ptr, ptr %42, align 8, !tbaa !5
  %430 = load i64, ptr %103, align 8, !tbaa !9
  %431 = getelementptr inbounds float, ptr %429, i64 %430
  %432 = load ptr, ptr %43, align 8, !tbaa !5
  %433 = load i64, ptr %103, align 8, !tbaa !9
  %434 = getelementptr inbounds float, ptr %432, i64 %433
  %435 = load ptr, ptr %44, align 8, !tbaa !5
  %436 = load i64, ptr %59, align 8, !tbaa !9
  %437 = getelementptr inbounds float, ptr %435, i64 %436
  %438 = load ptr, ptr %45, align 8, !tbaa !5
  %439 = call i32 @slahqr_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %84, ptr noundef @c__1, ptr noundef %84, ptr noundef %427, ptr noundef %428, ptr noundef %431, ptr noundef %434, ptr noundef @c__1, ptr noundef %84, ptr noundef %437, ptr noundef %438, ptr noundef %102)
  %440 = load i64, ptr %84, align 8, !tbaa !9
  %441 = sub nsw i64 %440, 3
  store i64 %441, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %442

442:                                              ; preds = %463, %385
  %443 = load i64, ptr %75, align 8, !tbaa !9
  %444 = load i64, ptr %64, align 8, !tbaa !9
  %445 = icmp sle i64 %443, %444
  br i1 %445, label %446, label %466

446:                                              ; preds = %442
  %447 = load ptr, ptr %47, align 8, !tbaa !5
  %448 = load i64, ptr %75, align 8, !tbaa !9
  %449 = add nsw i64 %448, 2
  %450 = load i64, ptr %75, align 8, !tbaa !9
  %451 = load i64, ptr %56, align 8, !tbaa !9
  %452 = mul nsw i64 %450, %451
  %453 = add nsw i64 %449, %452
  %454 = getelementptr inbounds float, ptr %447, i64 %453
  store float 0.000000e+00, ptr %454, align 4, !tbaa !11
  %455 = load ptr, ptr %47, align 8, !tbaa !5
  %456 = load i64, ptr %75, align 8, !tbaa !9
  %457 = add nsw i64 %456, 3
  %458 = load i64, ptr %75, align 8, !tbaa !9
  %459 = load i64, ptr %56, align 8, !tbaa !9
  %460 = mul nsw i64 %458, %459
  %461 = add nsw i64 %457, %460
  %462 = getelementptr inbounds float, ptr %455, i64 %461
  store float 0.000000e+00, ptr %462, align 4, !tbaa !11
  br label %463

463:                                              ; preds = %446
  %464 = load i64, ptr %75, align 8, !tbaa !9
  %465 = add nsw i64 %464, 1
  store i64 %465, ptr %75, align 8, !tbaa !9
  br label %442, !llvm.loop !13

466:                                              ; preds = %442
  %467 = load i64, ptr %84, align 8, !tbaa !9
  %468 = icmp sgt i64 %467, 2
  br i1 %468, label %469, label %478

469:                                              ; preds = %466
  %470 = load ptr, ptr %47, align 8, !tbaa !5
  %471 = load i64, ptr %84, align 8, !tbaa !9
  %472 = load i64, ptr %84, align 8, !tbaa !9
  %473 = sub nsw i64 %472, 2
  %474 = load i64, ptr %56, align 8, !tbaa !9
  %475 = mul nsw i64 %473, %474
  %476 = add nsw i64 %471, %475
  %477 = getelementptr inbounds float, ptr %470, i64 %476
  store float 0.000000e+00, ptr %477, align 4, !tbaa !11
  br label %478

478:                                              ; preds = %469, %466
  %479 = load i64, ptr %84, align 8, !tbaa !9
  %480 = load ptr, ptr %40, align 8, !tbaa !5
  store i64 %479, ptr %480, align 8, !tbaa !9
  %481 = load i64, ptr %102, align 8, !tbaa !9
  %482 = add nsw i64 %481, 1
  store i64 %482, ptr %98, align 8, !tbaa !9
  br label %483

483:                                              ; preds = %775, %478
  %484 = load i64, ptr %98, align 8, !tbaa !9
  %485 = load ptr, ptr %40, align 8, !tbaa !5
  %486 = load i64, ptr %485, align 8, !tbaa !9
  %487 = icmp sle i64 %484, %486
  br i1 %487, label %488, label %776

488:                                              ; preds = %483
  %489 = load ptr, ptr %40, align 8, !tbaa !5
  %490 = load i64, ptr %489, align 8, !tbaa !9
  %491 = icmp eq i64 %490, 1
  br i1 %491, label %492, label %493

492:                                              ; preds = %488
  store i64 0, ptr %101, align 8, !tbaa !9
  br label %508

493:                                              ; preds = %488
  %494 = load ptr, ptr %47, align 8, !tbaa !5
  %495 = load ptr, ptr %40, align 8, !tbaa !5
  %496 = load i64, ptr %495, align 8, !tbaa !9
  %497 = load ptr, ptr %40, align 8, !tbaa !5
  %498 = load i64, ptr %497, align 8, !tbaa !9
  %499 = sub nsw i64 %498, 1
  %500 = load i64, ptr %56, align 8, !tbaa !9
  %501 = mul nsw i64 %499, %500
  %502 = add nsw i64 %496, %501
  %503 = getelementptr inbounds float, ptr %494, i64 %502
  %504 = load float, ptr %503, align 4, !tbaa !11
  %505 = fcmp une float %504, 0.000000e+00
  %506 = zext i1 %505 to i32
  %507 = sext i32 %506 to i64
  store i64 %507, ptr %101, align 8, !tbaa !9
  br label %508

508:                                              ; preds = %493, %492
  %509 = load i64, ptr %101, align 8, !tbaa !9
  %510 = icmp ne i64 %509, 0
  br i1 %510, label %604, label %511

511:                                              ; preds = %508
  %512 = load ptr, ptr %47, align 8, !tbaa !5
  %513 = load ptr, ptr %40, align 8, !tbaa !5
  %514 = load i64, ptr %513, align 8, !tbaa !9
  %515 = load ptr, ptr %40, align 8, !tbaa !5
  %516 = load i64, ptr %515, align 8, !tbaa !9
  %517 = load i64, ptr %56, align 8, !tbaa !9
  %518 = mul nsw i64 %516, %517
  %519 = add nsw i64 %514, %518
  %520 = getelementptr inbounds float, ptr %512, i64 %519
  %521 = load float, ptr %520, align 4, !tbaa !11
  store float %521, ptr %68, align 4, !tbaa !11
  %522 = load float, ptr %68, align 4, !tbaa !11
  %523 = fcmp oge float %522, 0.000000e+00
  br i1 %523, label %524, label %526

524:                                              ; preds = %511
  %525 = load float, ptr %68, align 4, !tbaa !11
  br label %529

526:                                              ; preds = %511
  %527 = load float, ptr %68, align 4, !tbaa !11
  %528 = fneg float %527
  br label %529

529:                                              ; preds = %526, %524
  %530 = phi float [ %525, %524 ], [ %528, %526 ]
  %531 = fpext float %530 to double
  %532 = fptrunc double %531 to float
  store float %532, ptr %87, align 4, !tbaa !11
  %533 = load float, ptr %87, align 4, !tbaa !11
  %534 = fcmp oeq float %533, 0.000000e+00
  br i1 %534, label %535, label %547

535:                                              ; preds = %529
  %536 = load float, ptr %77, align 4, !tbaa !11
  %537 = fcmp oge float %536, 0.000000e+00
  br i1 %537, label %538, label %540

538:                                              ; preds = %535
  %539 = load float, ptr %77, align 4, !tbaa !11
  br label %543

540:                                              ; preds = %535
  %541 = load float, ptr %77, align 4, !tbaa !11
  %542 = fneg float %541
  br label %543

543:                                              ; preds = %540, %538
  %544 = phi float [ %539, %538 ], [ %542, %540 ]
  %545 = fpext float %544 to double
  %546 = fptrunc double %545 to float
  store float %546, ptr %87, align 4, !tbaa !11
  br label %547

547:                                              ; preds = %543, %529
  %548 = load float, ptr %107, align 4, !tbaa !11
  store float %548, ptr %69, align 4, !tbaa !11
  %549 = load float, ptr %90, align 4, !tbaa !11
  %550 = load float, ptr %87, align 4, !tbaa !11
  %551 = fmul float %549, %550
  store float %551, ptr %70, align 4, !tbaa !11
  %552 = load float, ptr %77, align 4, !tbaa !11
  %553 = load ptr, ptr %44, align 8, !tbaa !5
  %554 = load ptr, ptr %40, align 8, !tbaa !5
  %555 = load i64, ptr %554, align 8, !tbaa !9
  %556 = load i64, ptr %58, align 8, !tbaa !9
  %557 = mul nsw i64 %555, %556
  %558 = add nsw i64 %557, 1
  %559 = getelementptr inbounds float, ptr %553, i64 %558
  %560 = load float, ptr %559, align 4, !tbaa !11
  %561 = fmul float %552, %560
  store float %561, ptr %68, align 4, !tbaa !11
  %562 = load float, ptr %68, align 4, !tbaa !11
  %563 = fcmp oge float %562, 0.000000e+00
  br i1 %563, label %564, label %566

564:                                              ; preds = %547
  %565 = load float, ptr %68, align 4, !tbaa !11
  br label %569

566:                                              ; preds = %547
  %567 = load float, ptr %68, align 4, !tbaa !11
  %568 = fneg float %567
  br label %569

569:                                              ; preds = %566, %564
  %570 = phi float [ %565, %564 ], [ %568, %566 ]
  %571 = fpext float %570 to double
  %572 = load float, ptr %69, align 4, !tbaa !11
  %573 = load float, ptr %70, align 4, !tbaa !11
  %574 = fcmp oge float %572, %573
  br i1 %574, label %575, label %577

575:                                              ; preds = %569
  %576 = load float, ptr %69, align 4, !tbaa !11
  br label %579

577:                                              ; preds = %569
  %578 = load float, ptr %70, align 4, !tbaa !11
  br label %579

579:                                              ; preds = %577, %575
  %580 = phi float [ %576, %575 ], [ %578, %577 ]
  %581 = fpext float %580 to double
  %582 = fcmp ole double %571, %581
  br i1 %582, label %583, label %587

583:                                              ; preds = %579
  %584 = load ptr, ptr %40, align 8, !tbaa !5
  %585 = load i64, ptr %584, align 8, !tbaa !9
  %586 = add nsw i64 %585, -1
  store i64 %586, ptr %584, align 8, !tbaa !9
  br label %603

587:                                              ; preds = %579
  %588 = load ptr, ptr %40, align 8, !tbaa !5
  %589 = load i64, ptr %588, align 8, !tbaa !9
  store i64 %589, ptr %97, align 8, !tbaa !9
  %590 = load ptr, ptr %47, align 8, !tbaa !5
  %591 = load i64, ptr %57, align 8, !tbaa !9
  %592 = getelementptr inbounds float, ptr %590, i64 %591
  %593 = load ptr, ptr %48, align 8, !tbaa !5
  %594 = load ptr, ptr %44, align 8, !tbaa !5
  %595 = load i64, ptr %59, align 8, !tbaa !9
  %596 = getelementptr inbounds float, ptr %594, i64 %595
  %597 = load ptr, ptr %45, align 8, !tbaa !5
  %598 = load ptr, ptr %52, align 8, !tbaa !5
  %599 = getelementptr inbounds float, ptr %598, i64 1
  %600 = call i32 @strexc_(ptr noundef @.str.6, ptr noundef %84, ptr noundef %592, ptr noundef %593, ptr noundef %596, ptr noundef %597, ptr noundef %97, ptr noundef %98, ptr noundef %599, ptr noundef %96)
  %601 = load i64, ptr %98, align 8, !tbaa !9
  %602 = add nsw i64 %601, 1
  store i64 %602, ptr %98, align 8, !tbaa !9
  br label %603

603:                                              ; preds = %587, %583
  br label %775

604:                                              ; preds = %508
  %605 = load ptr, ptr %47, align 8, !tbaa !5
  %606 = load ptr, ptr %40, align 8, !tbaa !5
  %607 = load i64, ptr %606, align 8, !tbaa !9
  %608 = load ptr, ptr %40, align 8, !tbaa !5
  %609 = load i64, ptr %608, align 8, !tbaa !9
  %610 = load i64, ptr %56, align 8, !tbaa !9
  %611 = mul nsw i64 %609, %610
  %612 = add nsw i64 %607, %611
  %613 = getelementptr inbounds float, ptr %605, i64 %612
  %614 = load float, ptr %613, align 4, !tbaa !11
  store float %614, ptr %70, align 4, !tbaa !11
  %615 = load float, ptr %70, align 4, !tbaa !11
  %616 = fcmp oge float %615, 0.000000e+00
  br i1 %616, label %617, label %619

617:                                              ; preds = %604
  %618 = load float, ptr %70, align 4, !tbaa !11
  br label %622

619:                                              ; preds = %604
  %620 = load float, ptr %70, align 4, !tbaa !11
  %621 = fneg float %620
  br label %622

622:                                              ; preds = %619, %617
  %623 = phi float [ %618, %617 ], [ %621, %619 ]
  %624 = fpext float %623 to double
  %625 = load ptr, ptr %47, align 8, !tbaa !5
  %626 = load ptr, ptr %40, align 8, !tbaa !5
  %627 = load i64, ptr %626, align 8, !tbaa !9
  %628 = load ptr, ptr %40, align 8, !tbaa !5
  %629 = load i64, ptr %628, align 8, !tbaa !9
  %630 = sub nsw i64 %629, 1
  %631 = load i64, ptr %56, align 8, !tbaa !9
  %632 = mul nsw i64 %630, %631
  %633 = add nsw i64 %627, %632
  %634 = getelementptr inbounds float, ptr %625, i64 %633
  %635 = load float, ptr %634, align 4, !tbaa !11
  store float %635, ptr %68, align 4, !tbaa !11
  %636 = load float, ptr %68, align 4, !tbaa !11
  %637 = fcmp oge float %636, 0.000000e+00
  br i1 %637, label %638, label %640

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

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

643:                                              ; preds = %640, %638
  %644 = phi float [ %639, %638 ], [ %642, %640 ]
  %645 = fpext float %644 to double
  %646 = call double @sqrt(double noundef %645) #5
  %647 = load ptr, ptr %47, align 8, !tbaa !5
  %648 = load ptr, ptr %40, align 8, !tbaa !5
  %649 = load i64, ptr %648, align 8, !tbaa !9
  %650 = sub nsw i64 %649, 1
  %651 = load ptr, ptr %40, align 8, !tbaa !5
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = load i64, ptr %56, align 8, !tbaa !9
  %654 = mul nsw i64 %652, %653
  %655 = add nsw i64 %650, %654
  %656 = getelementptr inbounds float, ptr %647, i64 %655
  %657 = load float, ptr %656, align 4, !tbaa !11
  store float %657, ptr %69, align 4, !tbaa !11
  %658 = load float, ptr %69, align 4, !tbaa !11
  %659 = fcmp oge float %658, 0.000000e+00
  br i1 %659, label %660, label %662

660:                                              ; preds = %643
  %661 = load float, ptr %69, align 4, !tbaa !11
  br label %665

662:                                              ; preds = %643
  %663 = load float, ptr %69, align 4, !tbaa !11
  %664 = fneg float %663
  br label %665

665:                                              ; preds = %662, %660
  %666 = phi float [ %661, %660 ], [ %664, %662 ]
  %667 = fpext float %666 to double
  %668 = call double @sqrt(double noundef %667) #5
  %669 = call double @llvm.fmuladd.f64(double %646, double %668, double %624)
  %670 = fptrunc double %669 to float
  store float %670, ptr %87, align 4, !tbaa !11
  %671 = load float, ptr %87, align 4, !tbaa !11
  %672 = fcmp oeq float %671, 0.000000e+00
  br i1 %672, label %673, label %685

673:                                              ; preds = %665
  %674 = load float, ptr %77, align 4, !tbaa !11
  %675 = fcmp oge float %674, 0.000000e+00
  br i1 %675, label %676, label %678

676:                                              ; preds = %673
  %677 = load float, ptr %77, align 4, !tbaa !11
  br label %681

678:                                              ; preds = %673
  %679 = load float, ptr %77, align 4, !tbaa !11
  %680 = fneg float %679
  br label %681

681:                                              ; preds = %678, %676
  %682 = phi float [ %677, %676 ], [ %680, %678 ]
  %683 = fpext float %682 to double
  %684 = fptrunc double %683 to float
  store float %684, ptr %87, align 4, !tbaa !11
  br label %685

685:                                              ; preds = %681, %665
  %686 = load float, ptr %77, align 4, !tbaa !11
  %687 = load ptr, ptr %44, align 8, !tbaa !5
  %688 = load ptr, ptr %40, align 8, !tbaa !5
  %689 = load i64, ptr %688, align 8, !tbaa !9
  %690 = load i64, ptr %58, align 8, !tbaa !9
  %691 = mul nsw i64 %689, %690
  %692 = add nsw i64 %691, 1
  %693 = getelementptr inbounds float, ptr %687, i64 %692
  %694 = load float, ptr %693, align 4, !tbaa !11
  %695 = fmul float %686, %694
  store float %695, ptr %68, align 4, !tbaa !11
  %696 = load float, ptr %68, align 4, !tbaa !11
  %697 = fcmp oge float %696, 0.000000e+00
  br i1 %697, label %698, label %700

698:                                              ; preds = %685
  %699 = load float, ptr %68, align 4, !tbaa !11
  br label %703

700:                                              ; preds = %685
  %701 = load float, ptr %68, align 4, !tbaa !11
  %702 = fneg float %701
  br label %703

703:                                              ; preds = %700, %698
  %704 = phi float [ %699, %698 ], [ %702, %700 ]
  %705 = fpext float %704 to double
  %706 = fptrunc double %705 to float
  store float %706, ptr %70, align 4, !tbaa !11
  %707 = load float, ptr %77, align 4, !tbaa !11
  %708 = load ptr, ptr %44, align 8, !tbaa !5
  %709 = load ptr, ptr %40, align 8, !tbaa !5
  %710 = load i64, ptr %709, align 8, !tbaa !9
  %711 = sub nsw i64 %710, 1
  %712 = load i64, ptr %58, align 8, !tbaa !9
  %713 = mul nsw i64 %711, %712
  %714 = add nsw i64 %713, 1
  %715 = getelementptr inbounds float, ptr %708, i64 %714
  %716 = load float, ptr %715, align 4, !tbaa !11
  %717 = fmul float %707, %716
  store float %717, ptr %69, align 4, !tbaa !11
  %718 = load float, ptr %69, align 4, !tbaa !11
  %719 = fcmp oge float %718, 0.000000e+00
  br i1 %719, label %720, label %722

720:                                              ; preds = %703
  %721 = load float, ptr %69, align 4, !tbaa !11
  br label %725

722:                                              ; preds = %703
  %723 = load float, ptr %69, align 4, !tbaa !11
  %724 = fneg float %723
  br label %725

725:                                              ; preds = %722, %720
  %726 = phi float [ %721, %720 ], [ %724, %722 ]
  %727 = fpext float %726 to double
  %728 = fptrunc double %727 to float
  store float %728, ptr %71, align 4, !tbaa !11
  %729 = load float, ptr %107, align 4, !tbaa !11
  store float %729, ptr %72, align 4, !tbaa !11
  %730 = load float, ptr %90, align 4, !tbaa !11
  %731 = load float, ptr %87, align 4, !tbaa !11
  %732 = fmul float %730, %731
  store float %732, ptr %73, align 4, !tbaa !11
  %733 = load float, ptr %70, align 4, !tbaa !11
  %734 = load float, ptr %71, align 4, !tbaa !11
  %735 = fcmp oge float %733, %734
  br i1 %735, label %736, label %738

736:                                              ; preds = %725
  %737 = load float, ptr %70, align 4, !tbaa !11
  br label %740

738:                                              ; preds = %725
  %739 = load float, ptr %71, align 4, !tbaa !11
  br label %740

740:                                              ; preds = %738, %736
  %741 = phi float [ %737, %736 ], [ %739, %738 ]
  %742 = fpext float %741 to double
  %743 = load float, ptr %72, align 4, !tbaa !11
  %744 = load float, ptr %73, align 4, !tbaa !11
  %745 = fcmp oge float %743, %744
  br i1 %745, label %746, label %748

746:                                              ; preds = %740
  %747 = load float, ptr %72, align 4, !tbaa !11
  br label %750

748:                                              ; preds = %740
  %749 = load float, ptr %73, align 4, !tbaa !11
  br label %750

750:                                              ; preds = %748, %746
  %751 = phi float [ %747, %746 ], [ %749, %748 ]
  %752 = fpext float %751 to double
  %753 = fcmp ole double %742, %752
  br i1 %753, label %754, label %758

754:                                              ; preds = %750
  %755 = load ptr, ptr %40, align 8, !tbaa !5
  %756 = load i64, ptr %755, align 8, !tbaa !9
  %757 = add nsw i64 %756, -2
  store i64 %757, ptr %755, align 8, !tbaa !9
  br label %774

758:                                              ; preds = %750
  %759 = load ptr, ptr %40, align 8, !tbaa !5
  %760 = load i64, ptr %759, align 8, !tbaa !9
  store i64 %760, ptr %97, align 8, !tbaa !9
  %761 = load ptr, ptr %47, align 8, !tbaa !5
  %762 = load i64, ptr %57, align 8, !tbaa !9
  %763 = getelementptr inbounds float, ptr %761, i64 %762
  %764 = load ptr, ptr %48, align 8, !tbaa !5
  %765 = load ptr, ptr %44, align 8, !tbaa !5
  %766 = load i64, ptr %59, align 8, !tbaa !9
  %767 = getelementptr inbounds float, ptr %765, i64 %766
  %768 = load ptr, ptr %45, align 8, !tbaa !5
  %769 = load ptr, ptr %52, align 8, !tbaa !5
  %770 = getelementptr inbounds float, ptr %769, i64 1
  %771 = call i32 @strexc_(ptr noundef @.str.6, ptr noundef %84, ptr noundef %763, ptr noundef %764, ptr noundef %767, ptr noundef %768, ptr noundef %97, ptr noundef %98, ptr noundef %770, ptr noundef %96)
  %772 = load i64, ptr %98, align 8, !tbaa !9
  %773 = add nsw i64 %772, 2
  store i64 %773, ptr %98, align 8, !tbaa !9
  br label %774

774:                                              ; preds = %758, %754
  br label %775

775:                                              ; preds = %774, %603
  br label %483

776:                                              ; preds = %483
  %777 = load ptr, ptr %40, align 8, !tbaa !5
  %778 = load i64, ptr %777, align 8, !tbaa !9
  %779 = icmp eq i64 %778, 0
  br i1 %779, label %780, label %781

780:                                              ; preds = %776
  store float 0.000000e+00, ptr %77, align 4, !tbaa !11
  br label %781

781:                                              ; preds = %780, %776
  %782 = load ptr, ptr %40, align 8, !tbaa !5
  %783 = load i64, ptr %782, align 8, !tbaa !9
  %784 = load i64, ptr %84, align 8, !tbaa !9
  %785 = icmp slt i64 %783, %784
  br i1 %785, label %786, label %1087

786:                                              ; preds = %781
  store i64 0, ptr %106, align 8, !tbaa !9
  %787 = load ptr, ptr %40, align 8, !tbaa !5
  %788 = load i64, ptr %787, align 8, !tbaa !9
  %789 = add nsw i64 %788, 1
  store i64 %789, ptr %74, align 8, !tbaa !9
  br label %790

790:                                              ; preds = %1085, %786
  %791 = load i64, ptr %106, align 8, !tbaa !9
  %792 = icmp ne i64 %791, 0
  br i1 %792, label %793, label %794

793:                                              ; preds = %790
  br label %1086

794:                                              ; preds = %790
  store i64 1, ptr %106, align 8, !tbaa !9
  %795 = load i64, ptr %74, align 8, !tbaa !9
  %796 = sub nsw i64 %795, 1
  store i64 %796, ptr %94, align 8, !tbaa !9
  %797 = load i64, ptr %102, align 8, !tbaa !9
  %798 = add nsw i64 %797, 1
  store i64 %798, ptr %74, align 8, !tbaa !9
  %799 = load i64, ptr %74, align 8, !tbaa !9
  %800 = load ptr, ptr %40, align 8, !tbaa !5
  %801 = load i64, ptr %800, align 8, !tbaa !9
  %802 = icmp eq i64 %799, %801
  br i1 %802, label %803, label %806

803:                                              ; preds = %794
  %804 = load i64, ptr %74, align 8, !tbaa !9
  %805 = add nsw i64 %804, 1
  store i64 %805, ptr %76, align 8, !tbaa !9
  br label %824

806:                                              ; preds = %794
  %807 = load ptr, ptr %47, align 8, !tbaa !5
  %808 = load i64, ptr %74, align 8, !tbaa !9
  %809 = add nsw i64 %808, 1
  %810 = load i64, ptr %74, align 8, !tbaa !9
  %811 = load i64, ptr %56, align 8, !tbaa !9
  %812 = mul nsw i64 %810, %811
  %813 = add nsw i64 %809, %812
  %814 = getelementptr inbounds float, ptr %807, i64 %813
  %815 = load float, ptr %814, align 4, !tbaa !11
  %816 = fcmp oeq float %815, 0.000000e+00
  br i1 %816, label %817, label %820

817:                                              ; preds = %806
  %818 = load i64, ptr %74, align 8, !tbaa !9
  %819 = add nsw i64 %818, 1
  store i64 %819, ptr %76, align 8, !tbaa !9
  br label %823

820:                                              ; preds = %806
  %821 = load i64, ptr %74, align 8, !tbaa !9
  %822 = add nsw i64 %821, 2
  store i64 %822, ptr %76, align 8, !tbaa !9
  br label %823

823:                                              ; preds = %820, %817
  br label %824

824:                                              ; preds = %823, %803
  br label %825

825:                                              ; preds = %1084, %824
  %826 = load i64, ptr %76, align 8, !tbaa !9
  %827 = load i64, ptr %94, align 8, !tbaa !9
  %828 = icmp sle i64 %826, %827
  br i1 %828, label %829, label %1085

829:                                              ; preds = %825
  %830 = load i64, ptr %76, align 8, !tbaa !9
  %831 = load i64, ptr %74, align 8, !tbaa !9
  %832 = add nsw i64 %831, 1
  %833 = icmp eq i64 %830, %832
  br i1 %833, label %834, label %854

834:                                              ; preds = %829
  %835 = load ptr, ptr %47, align 8, !tbaa !5
  %836 = load i64, ptr %74, align 8, !tbaa !9
  %837 = load i64, ptr %74, align 8, !tbaa !9
  %838 = load i64, ptr %56, align 8, !tbaa !9
  %839 = mul nsw i64 %837, %838
  %840 = add nsw i64 %836, %839
  %841 = getelementptr inbounds float, ptr %835, i64 %840
  %842 = load float, ptr %841, align 4, !tbaa !11
  store float %842, ptr %68, align 4, !tbaa !11
  %843 = load float, ptr %68, align 4, !tbaa !11
  %844 = fcmp oge float %843, 0.000000e+00
  br i1 %844, label %845, label %847

845:                                              ; preds = %834
  %846 = load float, ptr %68, align 4, !tbaa !11
  br label %850

847:                                              ; preds = %834
  %848 = load float, ptr %68, align 4, !tbaa !11
  %849 = fneg float %848
  br label %850

850:                                              ; preds = %847, %845
  %851 = phi float [ %846, %845 ], [ %849, %847 ]
  %852 = fpext float %851 to double
  %853 = fptrunc double %852 to float
  store float %853, ptr %85, align 4, !tbaa !11
  br label %915

854:                                              ; preds = %829
  %855 = load ptr, ptr %47, align 8, !tbaa !5
  %856 = load i64, ptr %74, align 8, !tbaa !9
  %857 = load i64, ptr %74, align 8, !tbaa !9
  %858 = load i64, ptr %56, align 8, !tbaa !9
  %859 = mul nsw i64 %857, %858
  %860 = add nsw i64 %856, %859
  %861 = getelementptr inbounds float, ptr %855, i64 %860
  %862 = load float, ptr %861, align 4, !tbaa !11
  store float %862, ptr %70, align 4, !tbaa !11
  %863 = load float, ptr %70, align 4, !tbaa !11
  %864 = fcmp oge float %863, 0.000000e+00
  br i1 %864, label %865, label %867

865:                                              ; preds = %854
  %866 = load float, ptr %70, align 4, !tbaa !11
  br label %870

867:                                              ; preds = %854
  %868 = load float, ptr %70, align 4, !tbaa !11
  %869 = fneg float %868
  br label %870

870:                                              ; preds = %867, %865
  %871 = phi float [ %866, %865 ], [ %869, %867 ]
  %872 = fpext float %871 to double
  %873 = load ptr, ptr %47, align 8, !tbaa !5
  %874 = load i64, ptr %74, align 8, !tbaa !9
  %875 = add nsw i64 %874, 1
  %876 = load i64, ptr %74, align 8, !tbaa !9
  %877 = load i64, ptr %56, align 8, !tbaa !9
  %878 = mul nsw i64 %876, %877
  %879 = add nsw i64 %875, %878
  %880 = getelementptr inbounds float, ptr %873, i64 %879
  %881 = load float, ptr %880, align 4, !tbaa !11
  store float %881, ptr %68, align 4, !tbaa !11
  %882 = load float, ptr %68, align 4, !tbaa !11
  %883 = fcmp oge float %882, 0.000000e+00
  br i1 %883, label %884, label %886

884:                                              ; preds = %870
  %885 = load float, ptr %68, align 4, !tbaa !11
  br label %889

886:                                              ; preds = %870
  %887 = load float, ptr %68, align 4, !tbaa !11
  %888 = fneg float %887
  br label %889

889:                                              ; preds = %886, %884
  %890 = phi float [ %885, %884 ], [ %888, %886 ]
  %891 = fpext float %890 to double
  %892 = call double @sqrt(double noundef %891) #5
  %893 = load ptr, ptr %47, align 8, !tbaa !5
  %894 = load i64, ptr %74, align 8, !tbaa !9
  %895 = load i64, ptr %74, align 8, !tbaa !9
  %896 = add nsw i64 %895, 1
  %897 = load i64, ptr %56, align 8, !tbaa !9
  %898 = mul nsw i64 %896, %897
  %899 = add nsw i64 %894, %898
  %900 = getelementptr inbounds float, ptr %893, i64 %899
  %901 = load float, ptr %900, align 4, !tbaa !11
  store float %901, ptr %69, align 4, !tbaa !11
  %902 = load float, ptr %69, align 4, !tbaa !11
  %903 = fcmp oge float %902, 0.000000e+00
  br i1 %903, label %904, label %906

904:                                              ; preds = %889
  %905 = load float, ptr %69, align 4, !tbaa !11
  br label %909

906:                                              ; preds = %889
  %907 = load float, ptr %69, align 4, !tbaa !11
  %908 = fneg float %907
  br label %909

909:                                              ; preds = %906, %904
  %910 = phi float [ %905, %904 ], [ %908, %906 ]
  %911 = fpext float %910 to double
  %912 = call double @sqrt(double noundef %911) #5
  %913 = call double @llvm.fmuladd.f64(double %892, double %912, double %872)
  %914 = fptrunc double %913 to float
  store float %914, ptr %85, align 4, !tbaa !11
  br label %915

915:                                              ; preds = %909, %850
  %916 = load i64, ptr %76, align 8, !tbaa !9
  %917 = load i64, ptr %94, align 8, !tbaa !9
  %918 = icmp eq i64 %916, %917
  br i1 %918, label %919, label %939

919:                                              ; preds = %915
  %920 = load ptr, ptr %47, align 8, !tbaa !5
  %921 = load i64, ptr %76, align 8, !tbaa !9
  %922 = load i64, ptr %76, align 8, !tbaa !9
  %923 = load i64, ptr %56, align 8, !tbaa !9
  %924 = mul nsw i64 %922, %923
  %925 = add nsw i64 %921, %924
  %926 = getelementptr inbounds float, ptr %920, i64 %925
  %927 = load float, ptr %926, align 4, !tbaa !11
  store float %927, ptr %68, align 4, !tbaa !11
  %928 = load float, ptr %68, align 4, !tbaa !11
  %929 = fcmp oge float %928, 0.000000e+00
  br i1 %929, label %930, label %932

930:                                              ; preds = %919
  %931 = load float, ptr %68, align 4, !tbaa !11
  br label %935

932:                                              ; preds = %919
  %933 = load float, ptr %68, align 4, !tbaa !11
  %934 = fneg float %933
  br label %935

935:                                              ; preds = %932, %930
  %936 = phi float [ %931, %930 ], [ %934, %932 ]
  %937 = fpext float %936 to double
  %938 = fptrunc double %937 to float
  store float %938, ptr %86, align 4, !tbaa !11
  br label %1032

939:                                              ; preds = %915
  %940 = load ptr, ptr %47, align 8, !tbaa !5
  %941 = load i64, ptr %76, align 8, !tbaa !9
  %942 = add nsw i64 %941, 1
  %943 = load i64, ptr %76, align 8, !tbaa !9
  %944 = load i64, ptr %56, align 8, !tbaa !9
  %945 = mul nsw i64 %943, %944
  %946 = add nsw i64 %942, %945
  %947 = getelementptr inbounds float, ptr %940, i64 %946
  %948 = load float, ptr %947, align 4, !tbaa !11
  %949 = fcmp oeq float %948, 0.000000e+00
  br i1 %949, label %950, label %970

950:                                              ; preds = %939
  %951 = load ptr, ptr %47, align 8, !tbaa !5
  %952 = load i64, ptr %76, align 8, !tbaa !9
  %953 = load i64, ptr %76, align 8, !tbaa !9
  %954 = load i64, ptr %56, align 8, !tbaa !9
  %955 = mul nsw i64 %953, %954
  %956 = add nsw i64 %952, %955
  %957 = getelementptr inbounds float, ptr %951, i64 %956
  %958 = load float, ptr %957, align 4, !tbaa !11
  store float %958, ptr %68, align 4, !tbaa !11
  %959 = load float, ptr %68, align 4, !tbaa !11
  %960 = fcmp oge float %959, 0.000000e+00
  br i1 %960, label %961, label %963

961:                                              ; preds = %950
  %962 = load float, ptr %68, align 4, !tbaa !11
  br label %966

963:                                              ; preds = %950
  %964 = load float, ptr %68, align 4, !tbaa !11
  %965 = fneg float %964
  br label %966

966:                                              ; preds = %963, %961
  %967 = phi float [ %962, %961 ], [ %965, %963 ]
  %968 = fpext float %967 to double
  %969 = fptrunc double %968 to float
  store float %969, ptr %86, align 4, !tbaa !11
  br label %1031

970:                                              ; preds = %939
  %971 = load ptr, ptr %47, align 8, !tbaa !5
  %972 = load i64, ptr %76, align 8, !tbaa !9
  %973 = load i64, ptr %76, align 8, !tbaa !9
  %974 = load i64, ptr %56, align 8, !tbaa !9
  %975 = mul nsw i64 %973, %974
  %976 = add nsw i64 %972, %975
  %977 = getelementptr inbounds float, ptr %971, i64 %976
  %978 = load float, ptr %977, align 4, !tbaa !11
  store float %978, ptr %70, align 4, !tbaa !11
  %979 = load float, ptr %70, align 4, !tbaa !11
  %980 = fcmp oge float %979, 0.000000e+00
  br i1 %980, label %981, label %983

981:                                              ; preds = %970
  %982 = load float, ptr %70, align 4, !tbaa !11
  br label %986

983:                                              ; preds = %970
  %984 = load float, ptr %70, align 4, !tbaa !11
  %985 = fneg float %984
  br label %986

986:                                              ; preds = %983, %981
  %987 = phi float [ %982, %981 ], [ %985, %983 ]
  %988 = fpext float %987 to double
  %989 = load ptr, ptr %47, align 8, !tbaa !5
  %990 = load i64, ptr %76, align 8, !tbaa !9
  %991 = add nsw i64 %990, 1
  %992 = load i64, ptr %76, align 8, !tbaa !9
  %993 = load i64, ptr %56, align 8, !tbaa !9
  %994 = mul nsw i64 %992, %993
  %995 = add nsw i64 %991, %994
  %996 = getelementptr inbounds float, ptr %989, i64 %995
  %997 = load float, ptr %996, align 4, !tbaa !11
  store float %997, ptr %68, align 4, !tbaa !11
  %998 = load float, ptr %68, align 4, !tbaa !11
  %999 = fcmp oge float %998, 0.000000e+00
  br i1 %999, label %1000, label %1002

1000:                                             ; preds = %986
  %1001 = load float, ptr %68, align 4, !tbaa !11
  br label %1005

1002:                                             ; preds = %986
  %1003 = load float, ptr %68, align 4, !tbaa !11
  %1004 = fneg float %1003
  br label %1005

1005:                                             ; preds = %1002, %1000
  %1006 = phi float [ %1001, %1000 ], [ %1004, %1002 ]
  %1007 = fpext float %1006 to double
  %1008 = call double @sqrt(double noundef %1007) #5
  %1009 = load ptr, ptr %47, align 8, !tbaa !5
  %1010 = load i64, ptr %76, align 8, !tbaa !9
  %1011 = load i64, ptr %76, align 8, !tbaa !9
  %1012 = add nsw i64 %1011, 1
  %1013 = load i64, ptr %56, align 8, !tbaa !9
  %1014 = mul nsw i64 %1012, %1013
  %1015 = add nsw i64 %1010, %1014
  %1016 = getelementptr inbounds float, ptr %1009, i64 %1015
  %1017 = load float, ptr %1016, align 4, !tbaa !11
  store float %1017, ptr %69, align 4, !tbaa !11
  %1018 = load float, ptr %69, align 4, !tbaa !11
  %1019 = fcmp oge float %1018, 0.000000e+00
  br i1 %1019, label %1020, label %1022

1020:                                             ; preds = %1005
  %1021 = load float, ptr %69, align 4, !tbaa !11
  br label %1025

1022:                                             ; preds = %1005
  %1023 = load float, ptr %69, align 4, !tbaa !11
  %1024 = fneg float %1023
  br label %1025

1025:                                             ; preds = %1022, %1020
  %1026 = phi float [ %1021, %1020 ], [ %1024, %1022 ]
  %1027 = fpext float %1026 to double
  %1028 = call double @sqrt(double noundef %1027) #5
  %1029 = call double @llvm.fmuladd.f64(double %1008, double %1028, double %988)
  %1030 = fptrunc double %1029 to float
  store float %1030, ptr %86, align 4, !tbaa !11
  br label %1031

1031:                                             ; preds = %1025, %966
  br label %1032

1032:                                             ; preds = %1031, %935
  %1033 = load float, ptr %85, align 4, !tbaa !11
  %1034 = load float, ptr %86, align 4, !tbaa !11
  %1035 = fcmp oge float %1033, %1034
  br i1 %1035, label %1036, label %1038

1036:                                             ; preds = %1032
  %1037 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %1037, ptr %74, align 8, !tbaa !9
  br label %1059

1038:                                             ; preds = %1032
  store i64 0, ptr %106, align 8, !tbaa !9
  %1039 = load i64, ptr %74, align 8, !tbaa !9
  store i64 %1039, ptr %97, align 8, !tbaa !9
  %1040 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %1040, ptr %98, align 8, !tbaa !9
  %1041 = load ptr, ptr %47, align 8, !tbaa !5
  %1042 = load i64, ptr %57, align 8, !tbaa !9
  %1043 = getelementptr inbounds float, ptr %1041, i64 %1042
  %1044 = load ptr, ptr %48, align 8, !tbaa !5
  %1045 = load ptr, ptr %44, align 8, !tbaa !5
  %1046 = load i64, ptr %59, align 8, !tbaa !9
  %1047 = getelementptr inbounds float, ptr %1045, i64 %1046
  %1048 = load ptr, ptr %45, align 8, !tbaa !5
  %1049 = load ptr, ptr %52, align 8, !tbaa !5
  %1050 = getelementptr inbounds float, ptr %1049, i64 1
  %1051 = call i32 @strexc_(ptr noundef @.str.6, ptr noundef %84, ptr noundef %1043, ptr noundef %1044, ptr noundef %1047, ptr noundef %1048, ptr noundef %97, ptr noundef %98, ptr noundef %1050, ptr noundef %96)
  %1052 = load i64, ptr %96, align 8, !tbaa !9
  %1053 = icmp eq i64 %1052, 0
  br i1 %1053, label %1054, label %1056

1054:                                             ; preds = %1038
  %1055 = load i64, ptr %98, align 8, !tbaa !9
  store i64 %1055, ptr %74, align 8, !tbaa !9
  br label %1058

1056:                                             ; preds = %1038
  %1057 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %1057, ptr %74, align 8, !tbaa !9
  br label %1058

1058:                                             ; preds = %1056, %1054
  br label %1059

1059:                                             ; preds = %1058, %1036
  %1060 = load i64, ptr %74, align 8, !tbaa !9
  %1061 = load i64, ptr %94, align 8, !tbaa !9
  %1062 = icmp eq i64 %1060, %1061
  br i1 %1062, label %1063, label %1066

1063:                                             ; preds = %1059
  %1064 = load i64, ptr %74, align 8, !tbaa !9
  %1065 = add nsw i64 %1064, 1
  store i64 %1065, ptr %76, align 8, !tbaa !9
  br label %1084

1066:                                             ; preds = %1059
  %1067 = load ptr, ptr %47, align 8, !tbaa !5
  %1068 = load i64, ptr %74, align 8, !tbaa !9
  %1069 = add nsw i64 %1068, 1
  %1070 = load i64, ptr %74, align 8, !tbaa !9
  %1071 = load i64, ptr %56, align 8, !tbaa !9
  %1072 = mul nsw i64 %1070, %1071
  %1073 = add nsw i64 %1069, %1072
  %1074 = getelementptr inbounds float, ptr %1067, i64 %1073
  %1075 = load float, ptr %1074, align 4, !tbaa !11
  %1076 = fcmp oeq float %1075, 0.000000e+00
  br i1 %1076, label %1077, label %1080

1077:                                             ; preds = %1066
  %1078 = load i64, ptr %74, align 8, !tbaa !9
  %1079 = add nsw i64 %1078, 1
  store i64 %1079, ptr %76, align 8, !tbaa !9
  br label %1083

1080:                                             ; preds = %1066
  %1081 = load i64, ptr %74, align 8, !tbaa !9
  %1082 = add nsw i64 %1081, 2
  store i64 %1082, ptr %76, align 8, !tbaa !9
  br label %1083

1083:                                             ; preds = %1080, %1077
  br label %1084

1084:                                             ; preds = %1083, %1063
  br label %825

1085:                                             ; preds = %825
  br label %790

1086:                                             ; preds = %793
  br label %1087

1087:                                             ; preds = %1086, %781
  %1088 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %1088, ptr %74, align 8, !tbaa !9
  br label %1089

1089:                                             ; preds = %1221, %1087
  %1090 = load i64, ptr %74, align 8, !tbaa !9
  %1091 = load i64, ptr %102, align 8, !tbaa !9
  %1092 = add nsw i64 %1091, 1
  %1093 = icmp sge i64 %1090, %1092
  br i1 %1093, label %1094, label %1222

1094:                                             ; preds = %1089
  %1095 = load i64, ptr %74, align 8, !tbaa !9
  %1096 = load i64, ptr %102, align 8, !tbaa !9
  %1097 = add nsw i64 %1096, 1
  %1098 = icmp eq i64 %1095, %1097
  br i1 %1098, label %1099, label %1122

1099:                                             ; preds = %1094
  %1100 = load ptr, ptr %47, align 8, !tbaa !5
  %1101 = load i64, ptr %74, align 8, !tbaa !9
  %1102 = load i64, ptr %74, align 8, !tbaa !9
  %1103 = load i64, ptr %56, align 8, !tbaa !9
  %1104 = mul nsw i64 %1102, %1103
  %1105 = add nsw i64 %1101, %1104
  %1106 = getelementptr inbounds float, ptr %1100, i64 %1105
  %1107 = load float, ptr %1106, align 4, !tbaa !11
  %1108 = load ptr, ptr %42, align 8, !tbaa !5
  %1109 = load i64, ptr %103, align 8, !tbaa !9
  %1110 = load i64, ptr %74, align 8, !tbaa !9
  %1111 = add nsw i64 %1109, %1110
  %1112 = sub nsw i64 %1111, 1
  %1113 = getelementptr inbounds float, ptr %1108, i64 %1112
  store float %1107, ptr %1113, align 4, !tbaa !11
  %1114 = load ptr, ptr %43, align 8, !tbaa !5
  %1115 = load i64, ptr %103, align 8, !tbaa !9
  %1116 = load i64, ptr %74, align 8, !tbaa !9
  %1117 = add nsw i64 %1115, %1116
  %1118 = sub nsw i64 %1117, 1
  %1119 = getelementptr inbounds float, ptr %1114, i64 %1118
  store float 0.000000e+00, ptr %1119, align 4, !tbaa !11
  %1120 = load i64, ptr %74, align 8, !tbaa !9
  %1121 = add nsw i64 %1120, -1
  store i64 %1121, ptr %74, align 8, !tbaa !9
  br label %1221

1122:                                             ; preds = %1094
  %1123 = load ptr, ptr %47, align 8, !tbaa !5
  %1124 = load i64, ptr %74, align 8, !tbaa !9
  %1125 = load i64, ptr %74, align 8, !tbaa !9
  %1126 = sub nsw i64 %1125, 1
  %1127 = load i64, ptr %56, align 8, !tbaa !9
  %1128 = mul nsw i64 %1126, %1127
  %1129 = add nsw i64 %1124, %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 %1156

1133:                                             ; preds = %1122
  %1134 = load ptr, ptr %47, align 8, !tbaa !5
  %1135 = load i64, ptr %74, align 8, !tbaa !9
  %1136 = load i64, ptr %74, align 8, !tbaa !9
  %1137 = load i64, ptr %56, align 8, !tbaa !9
  %1138 = mul nsw i64 %1136, %1137
  %1139 = add nsw i64 %1135, %1138
  %1140 = getelementptr inbounds float, ptr %1134, i64 %1139
  %1141 = load float, ptr %1140, align 4, !tbaa !11
  %1142 = load ptr, ptr %42, align 8, !tbaa !5
  %1143 = load i64, ptr %103, align 8, !tbaa !9
  %1144 = load i64, ptr %74, align 8, !tbaa !9
  %1145 = add nsw i64 %1143, %1144
  %1146 = sub nsw i64 %1145, 1
  %1147 = getelementptr inbounds float, ptr %1142, i64 %1146
  store float %1141, ptr %1147, align 4, !tbaa !11
  %1148 = load ptr, ptr %43, align 8, !tbaa !5
  %1149 = load i64, ptr %103, align 8, !tbaa !9
  %1150 = load i64, ptr %74, align 8, !tbaa !9
  %1151 = add nsw i64 %1149, %1150
  %1152 = sub nsw i64 %1151, 1
  %1153 = getelementptr inbounds float, ptr %1148, i64 %1152
  store float 0.000000e+00, ptr %1153, align 4, !tbaa !11
  %1154 = load i64, ptr %74, align 8, !tbaa !9
  %1155 = add nsw i64 %1154, -1
  store i64 %1155, ptr %74, align 8, !tbaa !9
  br label %1220

1156:                                             ; preds = %1122
  %1157 = load ptr, ptr %47, align 8, !tbaa !5
  %1158 = load i64, ptr %74, align 8, !tbaa !9
  %1159 = sub nsw i64 %1158, 1
  %1160 = load i64, ptr %74, align 8, !tbaa !9
  %1161 = sub nsw i64 %1160, 1
  %1162 = load i64, ptr %56, align 8, !tbaa !9
  %1163 = mul nsw i64 %1161, %1162
  %1164 = add nsw i64 %1159, %1163
  %1165 = getelementptr inbounds float, ptr %1157, i64 %1164
  %1166 = load float, ptr %1165, align 4, !tbaa !11
  store float %1166, ptr %78, align 4, !tbaa !11
  %1167 = load ptr, ptr %47, align 8, !tbaa !5
  %1168 = load i64, ptr %74, align 8, !tbaa !9
  %1169 = load i64, ptr %74, align 8, !tbaa !9
  %1170 = sub nsw i64 %1169, 1
  %1171 = load i64, ptr %56, align 8, !tbaa !9
  %1172 = mul nsw i64 %1170, %1171
  %1173 = add nsw i64 %1168, %1172
  %1174 = getelementptr inbounds float, ptr %1167, i64 %1173
  %1175 = load float, ptr %1174, align 4, !tbaa !11
  store float %1175, ptr %80, align 4, !tbaa !11
  %1176 = load ptr, ptr %47, align 8, !tbaa !5
  %1177 = load i64, ptr %74, align 8, !tbaa !9
  %1178 = sub nsw i64 %1177, 1
  %1179 = load i64, ptr %74, align 8, !tbaa !9
  %1180 = load i64, ptr %56, align 8, !tbaa !9
  %1181 = mul nsw i64 %1179, %1180
  %1182 = add nsw i64 %1178, %1181
  %1183 = getelementptr inbounds float, ptr %1176, i64 %1182
  %1184 = load float, ptr %1183, align 4, !tbaa !11
  store float %1184, ptr %79, align 4, !tbaa !11
  %1185 = load ptr, ptr %47, align 8, !tbaa !5
  %1186 = load i64, ptr %74, align 8, !tbaa !9
  %1187 = load i64, ptr %74, align 8, !tbaa !9
  %1188 = load i64, ptr %56, align 8, !tbaa !9
  %1189 = mul nsw i64 %1187, %1188
  %1190 = add nsw i64 %1186, %1189
  %1191 = getelementptr inbounds float, ptr %1185, i64 %1190
  %1192 = load float, ptr %1191, align 4, !tbaa !11
  store float %1192, ptr %81, align 4, !tbaa !11
  %1193 = load ptr, ptr %42, align 8, !tbaa !5
  %1194 = load i64, ptr %103, align 8, !tbaa !9
  %1195 = load i64, ptr %74, align 8, !tbaa !9
  %1196 = add nsw i64 %1194, %1195
  %1197 = sub nsw i64 %1196, 2
  %1198 = getelementptr inbounds float, ptr %1193, i64 %1197
  %1199 = load ptr, ptr %43, align 8, !tbaa !5
  %1200 = load i64, ptr %103, align 8, !tbaa !9
  %1201 = load i64, ptr %74, align 8, !tbaa !9
  %1202 = add nsw i64 %1200, %1201
  %1203 = sub nsw i64 %1202, 2
  %1204 = getelementptr inbounds float, ptr %1199, i64 %1203
  %1205 = load ptr, ptr %42, align 8, !tbaa !5
  %1206 = load i64, ptr %103, align 8, !tbaa !9
  %1207 = load i64, ptr %74, align 8, !tbaa !9
  %1208 = add nsw i64 %1206, %1207
  %1209 = sub nsw i64 %1208, 1
  %1210 = getelementptr inbounds float, ptr %1205, i64 %1209
  %1211 = load ptr, ptr %43, align 8, !tbaa !5
  %1212 = load i64, ptr %103, align 8, !tbaa !9
  %1213 = load i64, ptr %74, align 8, !tbaa !9
  %1214 = add nsw i64 %1212, %1213
  %1215 = sub nsw i64 %1214, 1
  %1216 = getelementptr inbounds float, ptr %1211, i64 %1215
  %1217 = call i32 @slanv2_(ptr noundef %78, ptr noundef %79, ptr noundef %80, ptr noundef %81, ptr noundef %1198, ptr noundef %1204, ptr noundef %1210, ptr noundef %1216, ptr noundef %82, ptr noundef %83)
  %1218 = load i64, ptr %74, align 8, !tbaa !9
  %1219 = add nsw i64 %1218, -2
  store i64 %1219, ptr %74, align 8, !tbaa !9
  br label %1220

1220:                                             ; preds = %1156, %1133
  br label %1221

1221:                                             ; preds = %1220, %1099
  br label %1089

1222:                                             ; preds = %1089
  %1223 = load ptr, ptr %40, align 8, !tbaa !5
  %1224 = load i64, ptr %1223, align 8, !tbaa !9
  %1225 = load i64, ptr %84, align 8, !tbaa !9
  %1226 = icmp slt i64 %1224, %1225
  br i1 %1226, label %1230, label %1227

1227:                                             ; preds = %1222
  %1228 = load float, ptr %77, align 4, !tbaa !11
  %1229 = fcmp oeq float %1228, 0.000000e+00
  br i1 %1229, label %1230, label %1639

1230:                                             ; preds = %1227, %1222
  %1231 = load ptr, ptr %40, align 8, !tbaa !5
  %1232 = load i64, ptr %1231, align 8, !tbaa !9
  %1233 = icmp sgt i64 %1232, 1
  br i1 %1233, label %1234, label %1318

1234:                                             ; preds = %1230
  %1235 = load float, ptr %77, align 4, !tbaa !11
  %1236 = fcmp une float %1235, 0.000000e+00
  br i1 %1236, label %1237, label %1318

1237:                                             ; preds = %1234
  %1238 = load ptr, ptr %40, align 8, !tbaa !5
  %1239 = load ptr, ptr %44, align 8, !tbaa !5
  %1240 = load i64, ptr %59, align 8, !tbaa !9
  %1241 = getelementptr inbounds float, ptr %1239, i64 %1240
  %1242 = load ptr, ptr %45, align 8, !tbaa !5
  %1243 = load ptr, ptr %52, align 8, !tbaa !5
  %1244 = getelementptr inbounds float, ptr %1243, i64 1
  %1245 = call i32 @f2c_scopy(ptr noundef %1238, ptr noundef %1241, ptr noundef %1242, ptr noundef %1244, ptr noundef @c__1)
  %1246 = load ptr, ptr %52, align 8, !tbaa !5
  %1247 = getelementptr inbounds float, ptr %1246, i64 1
  %1248 = load float, ptr %1247, align 4, !tbaa !11
  store float %1248, ptr %93, align 4, !tbaa !11
  %1249 = load ptr, ptr %40, align 8, !tbaa !5
  %1250 = load ptr, ptr %52, align 8, !tbaa !5
  %1251 = getelementptr inbounds float, ptr %1250, i64 2
  %1252 = call i32 @slarfg_(ptr noundef %1249, ptr noundef %93, ptr noundef %1251, ptr noundef @c__1, ptr noundef %89)
  %1253 = load ptr, ptr %52, align 8, !tbaa !5
  %1254 = getelementptr inbounds float, ptr %1253, i64 1
  store float 1.000000e+00, ptr %1254, align 4, !tbaa !11
  %1255 = load i64, ptr %84, align 8, !tbaa !9
  %1256 = sub nsw i64 %1255, 2
  store i64 %1256, ptr %64, align 8, !tbaa !9
  %1257 = load i64, ptr %84, align 8, !tbaa !9
  %1258 = sub nsw i64 %1257, 2
  store i64 %1258, ptr %65, align 8, !tbaa !9
  %1259 = load ptr, ptr %47, align 8, !tbaa !5
  %1260 = load i64, ptr %56, align 8, !tbaa !9
  %1261 = add nsw i64 %1260, 3
  %1262 = getelementptr inbounds float, ptr %1259, i64 %1261
  %1263 = load ptr, ptr %48, align 8, !tbaa !5
  %1264 = call i32 @slaset_(ptr noundef @.str.7, ptr noundef %64, ptr noundef %65, ptr noundef @c_b12, ptr noundef @c_b12, ptr noundef %1262, ptr noundef %1263)
  %1265 = load ptr, ptr %40, align 8, !tbaa !5
  %1266 = load ptr, ptr %52, align 8, !tbaa !5
  %1267 = getelementptr inbounds float, ptr %1266, i64 1
  %1268 = load ptr, ptr %47, align 8, !tbaa !5
  %1269 = load i64, ptr %57, align 8, !tbaa !9
  %1270 = getelementptr inbounds float, ptr %1268, i64 %1269
  %1271 = load ptr, ptr %48, align 8, !tbaa !5
  %1272 = load ptr, ptr %52, align 8, !tbaa !5
  %1273 = load i64, ptr %84, align 8, !tbaa !9
  %1274 = add nsw i64 %1273, 1
  %1275 = getelementptr inbounds float, ptr %1272, i64 %1274
  %1276 = call i32 @slarf_(ptr noundef @.str.7, ptr noundef %1265, ptr noundef %84, ptr noundef %1267, ptr noundef @c__1, ptr noundef %89, ptr noundef %1270, ptr noundef %1271, ptr noundef %1275)
  %1277 = load ptr, ptr %40, align 8, !tbaa !5
  %1278 = load ptr, ptr %40, align 8, !tbaa !5
  %1279 = load ptr, ptr %52, align 8, !tbaa !5
  %1280 = getelementptr inbounds float, ptr %1279, i64 1
  %1281 = load ptr, ptr %47, align 8, !tbaa !5
  %1282 = load i64, ptr %57, align 8, !tbaa !9
  %1283 = getelementptr inbounds float, ptr %1281, i64 %1282
  %1284 = load ptr, ptr %48, align 8, !tbaa !5
  %1285 = load ptr, ptr %52, align 8, !tbaa !5
  %1286 = load i64, ptr %84, align 8, !tbaa !9
  %1287 = add nsw i64 %1286, 1
  %1288 = getelementptr inbounds float, ptr %1285, i64 %1287
  %1289 = call i32 @slarf_(ptr noundef @.str, ptr noundef %1277, ptr noundef %1278, ptr noundef %1280, ptr noundef @c__1, ptr noundef %89, ptr noundef %1283, ptr noundef %1284, ptr noundef %1288)
  %1290 = load ptr, ptr %40, align 8, !tbaa !5
  %1291 = load ptr, ptr %52, align 8, !tbaa !5
  %1292 = getelementptr inbounds float, ptr %1291, i64 1
  %1293 = load ptr, ptr %44, align 8, !tbaa !5
  %1294 = load i64, ptr %59, align 8, !tbaa !9
  %1295 = getelementptr inbounds float, ptr %1293, i64 %1294
  %1296 = load ptr, ptr %45, align 8, !tbaa !5
  %1297 = load ptr, ptr %52, align 8, !tbaa !5
  %1298 = load i64, ptr %84, align 8, !tbaa !9
  %1299 = add nsw i64 %1298, 1
  %1300 = getelementptr inbounds float, ptr %1297, i64 %1299
  %1301 = call i32 @slarf_(ptr noundef @.str, ptr noundef %84, ptr noundef %1290, ptr noundef %1292, ptr noundef @c__1, ptr noundef %89, ptr noundef %1295, ptr noundef %1296, ptr noundef %1300)
  %1302 = load ptr, ptr %53, align 8, !tbaa !5
  %1303 = load i64, ptr %1302, align 8, !tbaa !9
  %1304 = load i64, ptr %84, align 8, !tbaa !9
  %1305 = sub nsw i64 %1303, %1304
  store i64 %1305, ptr %64, align 8, !tbaa !9
  %1306 = load ptr, ptr %40, align 8, !tbaa !5
  %1307 = load ptr, ptr %47, align 8, !tbaa !5
  %1308 = load i64, ptr %57, align 8, !tbaa !9
  %1309 = getelementptr inbounds float, ptr %1307, i64 %1308
  %1310 = load ptr, ptr %48, align 8, !tbaa !5
  %1311 = load ptr, ptr %52, align 8, !tbaa !5
  %1312 = getelementptr inbounds float, ptr %1311, i64 1
  %1313 = load ptr, ptr %52, align 8, !tbaa !5
  %1314 = load i64, ptr %84, align 8, !tbaa !9
  %1315 = add nsw i64 %1314, 1
  %1316 = getelementptr inbounds float, ptr %1313, i64 %1315
  %1317 = call i32 @sgehrd_(ptr noundef %84, ptr noundef @c__1, ptr noundef %1306, ptr noundef %1309, ptr noundef %1310, ptr noundef %1312, ptr noundef %1316, ptr noundef %64, ptr noundef %96)
  br label %1318

1318:                                             ; preds = %1237, %1234, %1230
  %1319 = load i64, ptr %103, align 8, !tbaa !9
  %1320 = icmp sgt i64 %1319, 1
  br i1 %1320, label %1321, label %1337

1321:                                             ; preds = %1318
  %1322 = load float, ptr %77, align 4, !tbaa !11
  %1323 = load ptr, ptr %44, align 8, !tbaa !5
  %1324 = load i64, ptr %58, align 8, !tbaa !9
  %1325 = add nsw i64 %1324, 1
  %1326 = getelementptr inbounds float, ptr %1323, i64 %1325
  %1327 = load float, ptr %1326, align 4, !tbaa !11
  %1328 = fmul float %1322, %1327
  %1329 = load ptr, ptr %34, align 8, !tbaa !5
  %1330 = load i64, ptr %103, align 8, !tbaa !9
  %1331 = load i64, ptr %103, align 8, !tbaa !9
  %1332 = sub nsw i64 %1331, 1
  %1333 = load i64, ptr %54, align 8, !tbaa !9
  %1334 = mul nsw i64 %1332, %1333
  %1335 = add nsw i64 %1330, %1334
  %1336 = getelementptr inbounds float, ptr %1329, i64 %1335
  store float %1328, ptr %1336, align 4, !tbaa !11
  br label %1337

1337:                                             ; preds = %1321, %1318
  %1338 = load ptr, ptr %47, align 8, !tbaa !5
  %1339 = load i64, ptr %57, align 8, !tbaa !9
  %1340 = getelementptr inbounds float, ptr %1338, i64 %1339
  %1341 = load ptr, ptr %48, align 8, !tbaa !5
  %1342 = load ptr, ptr %34, align 8, !tbaa !5
  %1343 = load i64, ptr %103, align 8, !tbaa !9
  %1344 = load i64, ptr %103, align 8, !tbaa !9
  %1345 = load i64, ptr %54, align 8, !tbaa !9
  %1346 = mul nsw i64 %1344, %1345
  %1347 = add nsw i64 %1343, %1346
  %1348 = getelementptr inbounds float, ptr %1342, i64 %1347
  %1349 = load ptr, ptr %35, align 8, !tbaa !5
  %1350 = call i32 @slacpy_(ptr noundef @.str.4, ptr noundef %84, ptr noundef %84, ptr noundef %1340, ptr noundef %1341, ptr noundef %1348, ptr noundef %1349)
  %1351 = load i64, ptr %84, align 8, !tbaa !9
  %1352 = sub nsw i64 %1351, 1
  store i64 %1352, ptr %64, align 8, !tbaa !9
  %1353 = load ptr, ptr %48, align 8, !tbaa !5
  %1354 = load i64, ptr %1353, align 8, !tbaa !9
  %1355 = add nsw i64 %1354, 1
  store i64 %1355, ptr %65, align 8, !tbaa !9
  %1356 = load ptr, ptr %35, align 8, !tbaa !5
  %1357 = load i64, ptr %1356, align 8, !tbaa !9
  %1358 = add nsw i64 %1357, 1
  store i64 %1358, ptr %66, align 8, !tbaa !9
  %1359 = load ptr, ptr %47, align 8, !tbaa !5
  %1360 = load i64, ptr %56, align 8, !tbaa !9
  %1361 = add nsw i64 %1360, 2
  %1362 = getelementptr inbounds float, ptr %1359, i64 %1361
  %1363 = load ptr, ptr %34, align 8, !tbaa !5
  %1364 = load i64, ptr %103, align 8, !tbaa !9
  %1365 = add nsw i64 %1364, 1
  %1366 = load i64, ptr %103, align 8, !tbaa !9
  %1367 = load i64, ptr %54, align 8, !tbaa !9
  %1368 = mul nsw i64 %1366, %1367
  %1369 = add nsw i64 %1365, %1368
  %1370 = getelementptr inbounds float, ptr %1363, i64 %1369
  %1371 = call i32 @f2c_scopy(ptr noundef %64, ptr noundef %1362, ptr noundef %65, ptr noundef %1370, ptr noundef %66)
  %1372 = load ptr, ptr %40, align 8, !tbaa !5
  %1373 = load i64, ptr %1372, align 8, !tbaa !9
  %1374 = icmp sgt i64 %1373, 1
  br i1 %1374, label %1375, label %1400

1375:                                             ; preds = %1337
  %1376 = load float, ptr %77, align 4, !tbaa !11
  %1377 = fcmp une float %1376, 0.000000e+00
  br i1 %1377, label %1378, label %1400

1378:                                             ; preds = %1375
  %1379 = load ptr, ptr %53, align 8, !tbaa !5
  %1380 = load i64, ptr %1379, align 8, !tbaa !9
  %1381 = load i64, ptr %84, align 8, !tbaa !9
  %1382 = sub nsw i64 %1380, %1381
  store i64 %1382, ptr %64, align 8, !tbaa !9
  %1383 = load ptr, ptr %40, align 8, !tbaa !5
  %1384 = load ptr, ptr %40, align 8, !tbaa !5
  %1385 = load ptr, ptr %47, align 8, !tbaa !5
  %1386 = load i64, ptr %57, align 8, !tbaa !9
  %1387 = getelementptr inbounds float, ptr %1385, i64 %1386
  %1388 = load ptr, ptr %48, align 8, !tbaa !5
  %1389 = load ptr, ptr %52, align 8, !tbaa !5
  %1390 = getelementptr inbounds float, ptr %1389, i64 1
  %1391 = load ptr, ptr %44, align 8, !tbaa !5
  %1392 = load i64, ptr %59, align 8, !tbaa !9
  %1393 = getelementptr inbounds float, ptr %1391, i64 %1392
  %1394 = load ptr, ptr %45, align 8, !tbaa !5
  %1395 = load ptr, ptr %52, align 8, !tbaa !5
  %1396 = load i64, ptr %84, align 8, !tbaa !9
  %1397 = add nsw i64 %1396, 1
  %1398 = getelementptr inbounds float, ptr %1395, i64 %1397
  %1399 = call i32 @sormhr_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %84, ptr noundef %1383, ptr noundef @c__1, ptr noundef %1384, ptr noundef %1387, ptr noundef %1388, ptr noundef %1390, ptr noundef %1393, ptr noundef %1394, ptr noundef %1398, ptr noundef %64, ptr noundef %96)
  br label %1400

1400:                                             ; preds = %1378, %1375, %1337
  %1401 = load ptr, ptr %28, align 8, !tbaa !5
  %1402 = load i64, ptr %1401, align 8, !tbaa !9
  %1403 = icmp ne i64 %1402, 0
  br i1 %1403, label %1404, label %1405

1404:                                             ; preds = %1400
  store i64 1, ptr %99, align 8, !tbaa !9
  br label %1408

1405:                                             ; preds = %1400
  %1406 = load ptr, ptr %31, align 8, !tbaa !5
  %1407 = load i64, ptr %1406, align 8, !tbaa !9
  store i64 %1407, ptr %99, align 8, !tbaa !9
  br label %1408

1408:                                             ; preds = %1405, %1404
  %1409 = load i64, ptr %103, align 8, !tbaa !9
  %1410 = sub nsw i64 %1409, 1
  store i64 %1410, ptr %64, align 8, !tbaa !9
  %1411 = load ptr, ptr %49, align 8, !tbaa !5
  %1412 = load i64, ptr %1411, align 8, !tbaa !9
  store i64 %1412, ptr %65, align 8, !tbaa !9
  %1413 = load i64, ptr %99, align 8, !tbaa !9
  store i64 %1413, ptr %100, align 8, !tbaa !9
  br label %1414

1414:                                             ; preds = %1475, %1408
  %1415 = load i64, ptr %65, align 8, !tbaa !9
  %1416 = icmp slt i64 %1415, 0
  br i1 %1416, label %1417, label %1422

1417:                                             ; preds = %1414
  %1418 = load i64, ptr %100, align 8, !tbaa !9
  %1419 = load i64, ptr %64, align 8, !tbaa !9
  %1420 = icmp sge i64 %1418, %1419
  %1421 = zext i1 %1420 to i32
  br label %1427

1422:                                             ; preds = %1414
  %1423 = load i64, ptr %100, align 8, !tbaa !9
  %1424 = load i64, ptr %64, align 8, !tbaa !9
  %1425 = icmp sle i64 %1423, %1424
  %1426 = zext i1 %1425 to i32
  br label %1427

1427:                                             ; preds = %1422, %1417
  %1428 = phi i32 [ %1421, %1417 ], [ %1426, %1422 ]
  %1429 = icmp ne i32 %1428, 0
  br i1 %1429, label %1430, label %1479

1430:                                             ; preds = %1427
  %1431 = load ptr, ptr %49, align 8, !tbaa !5
  %1432 = load i64, ptr %1431, align 8, !tbaa !9
  store i64 %1432, ptr %66, align 8, !tbaa !9
  %1433 = load i64, ptr %103, align 8, !tbaa !9
  %1434 = load i64, ptr %100, align 8, !tbaa !9
  %1435 = sub nsw i64 %1433, %1434
  store i64 %1435, ptr %67, align 8, !tbaa !9
  %1436 = load i64, ptr %66, align 8, !tbaa !9
  %1437 = load i64, ptr %67, align 8, !tbaa !9
  %1438 = icmp sle i64 %1436, %1437
  br i1 %1438, label %1439, label %1441

1439:                                             ; preds = %1430
  %1440 = load i64, ptr %66, align 8, !tbaa !9
  br label %1443

1441:                                             ; preds = %1430
  %1442 = load i64, ptr %67, align 8, !tbaa !9
  br label %1443

1443:                                             ; preds = %1441, %1439
  %1444 = phi i64 [ %1440, %1439 ], [ %1442, %1441 ]
  store i64 %1444, ptr %88, align 8, !tbaa !9
  %1445 = load ptr, ptr %34, align 8, !tbaa !5
  %1446 = load i64, ptr %100, align 8, !tbaa !9
  %1447 = load i64, ptr %103, align 8, !tbaa !9
  %1448 = load i64, ptr %54, align 8, !tbaa !9
  %1449 = mul nsw i64 %1447, %1448
  %1450 = add nsw i64 %1446, %1449
  %1451 = getelementptr inbounds float, ptr %1445, i64 %1450
  %1452 = load ptr, ptr %35, align 8, !tbaa !5
  %1453 = load ptr, ptr %44, align 8, !tbaa !5
  %1454 = load i64, ptr %59, align 8, !tbaa !9
  %1455 = getelementptr inbounds float, ptr %1453, i64 %1454
  %1456 = load ptr, ptr %45, align 8, !tbaa !5
  %1457 = load ptr, ptr %50, align 8, !tbaa !5
  %1458 = load i64, ptr %61, align 8, !tbaa !9
  %1459 = getelementptr inbounds float, ptr %1457, i64 %1458
  %1460 = load ptr, ptr %51, align 8, !tbaa !5
  %1461 = call i32 @f2c_sgemm(ptr noundef @.str.1, ptr noundef @.str.1, ptr noundef %88, ptr noundef %84, ptr noundef %84, ptr noundef @c_b13, ptr noundef %1451, ptr noundef %1452, ptr noundef %1455, ptr noundef %1456, ptr noundef @c_b12, ptr noundef %1459, ptr noundef %1460)
  %1462 = load ptr, ptr %50, align 8, !tbaa !5
  %1463 = load i64, ptr %61, align 8, !tbaa !9
  %1464 = getelementptr inbounds float, ptr %1462, i64 %1463
  %1465 = load ptr, ptr %51, align 8, !tbaa !5
  %1466 = load ptr, ptr %34, align 8, !tbaa !5
  %1467 = load i64, ptr %100, align 8, !tbaa !9
  %1468 = load i64, ptr %103, align 8, !tbaa !9
  %1469 = load i64, ptr %54, align 8, !tbaa !9
  %1470 = mul nsw i64 %1468, %1469
  %1471 = add nsw i64 %1467, %1470
  %1472 = getelementptr inbounds float, ptr %1466, i64 %1471
  %1473 = load ptr, ptr %35, align 8, !tbaa !5
  %1474 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %88, ptr noundef %84, ptr noundef %1464, ptr noundef %1465, ptr noundef %1472, ptr noundef %1473)
  br label %1475

1475:                                             ; preds = %1443
  %1476 = load i64, ptr %65, align 8, !tbaa !9
  %1477 = load i64, ptr %100, align 8, !tbaa !9
  %1478 = add nsw i64 %1477, %1476
  store i64 %1478, ptr %100, align 8, !tbaa !9
  br label %1414, !llvm.loop !15

1479:                                             ; preds = %1427
  %1480 = load ptr, ptr %28, align 8, !tbaa !5
  %1481 = load i64, ptr %1480, align 8, !tbaa !9
  %1482 = icmp ne i64 %1481, 0
  br i1 %1482, label %1483, label %1559

1483:                                             ; preds = %1479
  %1484 = load ptr, ptr %30, align 8, !tbaa !5
  %1485 = load i64, ptr %1484, align 8, !tbaa !9
  store i64 %1485, ptr %65, align 8, !tbaa !9
  %1486 = load ptr, ptr %46, align 8, !tbaa !5
  %1487 = load i64, ptr %1486, align 8, !tbaa !9
  store i64 %1487, ptr %64, align 8, !tbaa !9
  %1488 = load ptr, ptr %32, align 8, !tbaa !5
  %1489 = load i64, ptr %1488, align 8, !tbaa !9
  %1490 = add nsw i64 %1489, 1
  store i64 %1490, ptr %95, align 8, !tbaa !9
  br label %1491

1491:                                             ; preds = %1554, %1483
  %1492 = load i64, ptr %64, align 8, !tbaa !9
  %1493 = icmp slt i64 %1492, 0
  br i1 %1493, label %1494, label %1499

1494:                                             ; preds = %1491
  %1495 = load i64, ptr %95, align 8, !tbaa !9
  %1496 = load i64, ptr %65, align 8, !tbaa !9
  %1497 = icmp sge i64 %1495, %1496
  %1498 = zext i1 %1497 to i32
  br label %1504

1499:                                             ; preds = %1491
  %1500 = load i64, ptr %95, align 8, !tbaa !9
  %1501 = load i64, ptr %65, align 8, !tbaa !9
  %1502 = icmp sle i64 %1500, %1501
  %1503 = zext i1 %1502 to i32
  br label %1504

1504:                                             ; preds = %1499, %1494
  %1505 = phi i32 [ %1498, %1494 ], [ %1503, %1499 ]
  %1506 = icmp ne i32 %1505, 0
  br i1 %1506, label %1507, label %1558

1507:                                             ; preds = %1504
  %1508 = load ptr, ptr %46, align 8, !tbaa !5
  %1509 = load i64, ptr %1508, align 8, !tbaa !9
  store i64 %1509, ptr %66, align 8, !tbaa !9
  %1510 = load ptr, ptr %30, align 8, !tbaa !5
  %1511 = load i64, ptr %1510, align 8, !tbaa !9
  %1512 = load i64, ptr %95, align 8, !tbaa !9
  %1513 = sub nsw i64 %1511, %1512
  %1514 = add nsw i64 %1513, 1
  store i64 %1514, ptr %67, align 8, !tbaa !9
  %1515 = load i64, ptr %66, align 8, !tbaa !9
  %1516 = load i64, ptr %67, align 8, !tbaa !9
  %1517 = icmp sle i64 %1515, %1516
  br i1 %1517, label %1518, label %1520

1518:                                             ; preds = %1507
  %1519 = load i64, ptr %66, align 8, !tbaa !9
  br label %1522

1520:                                             ; preds = %1507
  %1521 = load i64, ptr %67, align 8, !tbaa !9
  br label %1522

1522:                                             ; preds = %1520, %1518
  %1523 = phi i64 [ %1519, %1518 ], [ %1521, %1520 ]
  store i64 %1523, ptr %88, align 8, !tbaa !9
  %1524 = load ptr, ptr %44, align 8, !tbaa !5
  %1525 = load i64, ptr %59, align 8, !tbaa !9
  %1526 = getelementptr inbounds float, ptr %1524, i64 %1525
  %1527 = load ptr, ptr %45, align 8, !tbaa !5
  %1528 = load ptr, ptr %34, align 8, !tbaa !5
  %1529 = load i64, ptr %103, align 8, !tbaa !9
  %1530 = load i64, ptr %95, align 8, !tbaa !9
  %1531 = load i64, ptr %54, align 8, !tbaa !9
  %1532 = mul nsw i64 %1530, %1531
  %1533 = add nsw i64 %1529, %1532
  %1534 = getelementptr inbounds float, ptr %1528, i64 %1533
  %1535 = load ptr, ptr %35, align 8, !tbaa !5
  %1536 = load ptr, ptr %47, align 8, !tbaa !5
  %1537 = load i64, ptr %57, align 8, !tbaa !9
  %1538 = getelementptr inbounds float, ptr %1536, i64 %1537
  %1539 = load ptr, ptr %48, align 8, !tbaa !5
  %1540 = call i32 @f2c_sgemm(ptr noundef @.str.8, ptr noundef @.str.1, ptr noundef %84, ptr noundef %88, ptr noundef %84, ptr noundef @c_b13, ptr noundef %1526, ptr noundef %1527, ptr noundef %1534, ptr noundef %1535, ptr noundef @c_b12, ptr noundef %1538, ptr noundef %1539)
  %1541 = load ptr, ptr %47, align 8, !tbaa !5
  %1542 = load i64, ptr %57, align 8, !tbaa !9
  %1543 = getelementptr inbounds float, ptr %1541, i64 %1542
  %1544 = load ptr, ptr %48, align 8, !tbaa !5
  %1545 = load ptr, ptr %34, align 8, !tbaa !5
  %1546 = load i64, ptr %103, align 8, !tbaa !9
  %1547 = load i64, ptr %95, align 8, !tbaa !9
  %1548 = load i64, ptr %54, align 8, !tbaa !9
  %1549 = mul nsw i64 %1547, %1548
  %1550 = add nsw i64 %1546, %1549
  %1551 = getelementptr inbounds float, ptr %1545, i64 %1550
  %1552 = load ptr, ptr %35, align 8, !tbaa !5
  %1553 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %84, ptr noundef %88, ptr noundef %1543, ptr noundef %1544, ptr noundef %1551, ptr noundef %1552)
  br label %1554

1554:                                             ; preds = %1522
  %1555 = load i64, ptr %64, align 8, !tbaa !9
  %1556 = load i64, ptr %95, align 8, !tbaa !9
  %1557 = add nsw i64 %1556, %1555
  store i64 %1557, ptr %95, align 8, !tbaa !9
  br label %1491, !llvm.loop !16

1558:                                             ; preds = %1504
  br label %1559

1559:                                             ; preds = %1558, %1479
  %1560 = load ptr, ptr %29, align 8, !tbaa !5
  %1561 = load i64, ptr %1560, align 8, !tbaa !9
  %1562 = icmp ne i64 %1561, 0
  br i1 %1562, label %1563, label %1638

1563:                                             ; preds = %1559
  %1564 = load ptr, ptr %37, align 8, !tbaa !5
  %1565 = load i64, ptr %1564, align 8, !tbaa !9
  store i64 %1565, ptr %64, align 8, !tbaa !9
  %1566 = load ptr, ptr %49, align 8, !tbaa !5
  %1567 = load i64, ptr %1566, align 8, !tbaa !9
  store i64 %1567, ptr %65, align 8, !tbaa !9
  %1568 = load ptr, ptr %36, align 8, !tbaa !5
  %1569 = load i64, ptr %1568, align 8, !tbaa !9
  store i64 %1569, ptr %100, align 8, !tbaa !9
  br label %1570

1570:                                             ; preds = %1633, %1563
  %1571 = load i64, ptr %65, align 8, !tbaa !9
  %1572 = icmp slt i64 %1571, 0
  br i1 %1572, label %1573, label %1578

1573:                                             ; preds = %1570
  %1574 = load i64, ptr %100, align 8, !tbaa !9
  %1575 = load i64, ptr %64, align 8, !tbaa !9
  %1576 = icmp sge i64 %1574, %1575
  %1577 = zext i1 %1576 to i32
  br label %1583

1578:                                             ; preds = %1570
  %1579 = load i64, ptr %100, align 8, !tbaa !9
  %1580 = load i64, ptr %64, align 8, !tbaa !9
  %1581 = icmp sle i64 %1579, %1580
  %1582 = zext i1 %1581 to i32
  br label %1583

1583:                                             ; preds = %1578, %1573
  %1584 = phi i32 [ %1577, %1573 ], [ %1582, %1578 ]
  %1585 = icmp ne i32 %1584, 0
  br i1 %1585, label %1586, label %1637

1586:                                             ; preds = %1583
  %1587 = load ptr, ptr %49, align 8, !tbaa !5
  %1588 = load i64, ptr %1587, align 8, !tbaa !9
  store i64 %1588, ptr %66, align 8, !tbaa !9
  %1589 = load ptr, ptr %37, align 8, !tbaa !5
  %1590 = load i64, ptr %1589, align 8, !tbaa !9
  %1591 = load i64, ptr %100, align 8, !tbaa !9
  %1592 = sub nsw i64 %1590, %1591
  %1593 = add nsw i64 %1592, 1
  store i64 %1593, ptr %67, align 8, !tbaa !9
  %1594 = load i64, ptr %66, align 8, !tbaa !9
  %1595 = load i64, ptr %67, align 8, !tbaa !9
  %1596 = icmp sle i64 %1594, %1595
  br i1 %1596, label %1597, label %1599

1597:                                             ; preds = %1586
  %1598 = load i64, ptr %66, align 8, !tbaa !9
  br label %1601

1599:                                             ; preds = %1586
  %1600 = load i64, ptr %67, align 8, !tbaa !9
  br label %1601

1601:                                             ; preds = %1599, %1597
  %1602 = phi i64 [ %1598, %1597 ], [ %1600, %1599 ]
  store i64 %1602, ptr %88, align 8, !tbaa !9
  %1603 = load ptr, ptr %38, align 8, !tbaa !5
  %1604 = load i64, ptr %100, align 8, !tbaa !9
  %1605 = load i64, ptr %103, align 8, !tbaa !9
  %1606 = load i64, ptr %62, align 8, !tbaa !9
  %1607 = mul nsw i64 %1605, %1606
  %1608 = add nsw i64 %1604, %1607
  %1609 = getelementptr inbounds float, ptr %1603, i64 %1608
  %1610 = load ptr, ptr %39, align 8, !tbaa !5
  %1611 = load ptr, ptr %44, align 8, !tbaa !5
  %1612 = load i64, ptr %59, align 8, !tbaa !9
  %1613 = getelementptr inbounds float, ptr %1611, i64 %1612
  %1614 = load ptr, ptr %45, align 8, !tbaa !5
  %1615 = load ptr, ptr %50, align 8, !tbaa !5
  %1616 = load i64, ptr %61, align 8, !tbaa !9
  %1617 = getelementptr inbounds float, ptr %1615, i64 %1616
  %1618 = load ptr, ptr %51, align 8, !tbaa !5
  %1619 = call i32 @f2c_sgemm(ptr noundef @.str.1, ptr noundef @.str.1, ptr noundef %88, ptr noundef %84, ptr noundef %84, ptr noundef @c_b13, ptr noundef %1609, ptr noundef %1610, ptr noundef %1613, ptr noundef %1614, ptr noundef @c_b12, ptr noundef %1617, ptr noundef %1618)
  %1620 = load ptr, ptr %50, align 8, !tbaa !5
  %1621 = load i64, ptr %61, align 8, !tbaa !9
  %1622 = getelementptr inbounds float, ptr %1620, i64 %1621
  %1623 = load ptr, ptr %51, align 8, !tbaa !5
  %1624 = load ptr, ptr %38, align 8, !tbaa !5
  %1625 = load i64, ptr %100, align 8, !tbaa !9
  %1626 = load i64, ptr %103, align 8, !tbaa !9
  %1627 = load i64, ptr %62, align 8, !tbaa !9
  %1628 = mul nsw i64 %1626, %1627
  %1629 = add nsw i64 %1625, %1628
  %1630 = getelementptr inbounds float, ptr %1624, i64 %1629
  %1631 = load ptr, ptr %39, align 8, !tbaa !5
  %1632 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %88, ptr noundef %84, ptr noundef %1622, ptr noundef %1623, ptr noundef %1630, ptr noundef %1631)
  br label %1633

1633:                                             ; preds = %1601
  %1634 = load i64, ptr %65, align 8, !tbaa !9
  %1635 = load i64, ptr %100, align 8, !tbaa !9
  %1636 = add nsw i64 %1635, %1634
  store i64 %1636, ptr %100, align 8, !tbaa !9
  br label %1570, !llvm.loop !17

1637:                                             ; preds = %1583
  br label %1638

1638:                                             ; preds = %1637, %1559
  br label %1639

1639:                                             ; preds = %1638, %1227
  %1640 = load i64, ptr %84, align 8, !tbaa !9
  %1641 = load ptr, ptr %40, align 8, !tbaa !5
  %1642 = load i64, ptr %1641, align 8, !tbaa !9
  %1643 = sub nsw i64 %1640, %1642
  %1644 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 %1643, ptr %1644, align 8, !tbaa !9
  %1645 = load i64, ptr %102, align 8, !tbaa !9
  %1646 = load ptr, ptr %40, align 8, !tbaa !5
  %1647 = load i64, ptr %1646, align 8, !tbaa !9
  %1648 = sub nsw i64 %1647, %1645
  store i64 %1648, ptr %1646, align 8, !tbaa !9
  %1649 = load i64, ptr %108, align 8, !tbaa !9
  %1650 = sitofp i64 %1649 to float
  %1651 = load ptr, ptr %52, align 8, !tbaa !5
  %1652 = getelementptr inbounds float, ptr %1651, i64 1
  store float %1650, ptr %1652, align 4, !tbaa !11
  store i32 0, ptr %27, align 4
  store i32 1, ptr %109, align 4
  br label %1653

1653:                                             ; preds = %1639, %382, %246, %241, %226
  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 8, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 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 8, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 4, 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
  %1654 = load i32, ptr %27, align 4
  ret i32 %1654
}

; 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 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 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
@.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_b12 = external hidden global float, align 4
@c_b13 = external hidden global float, align 4
@c_true = external hidden global i64, align 8
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slaqr2_(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 nocapture noundef readonly %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 %80, 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 = load i64, ptr %36, align 8, !tbaa !5
  %78 = call i64 @llvm.smax.i64(i64 %71, i64 %76)
  %79 = add nsw i64 %78, %77
  br label %80

80:                                               ; preds = %26, %67
  %.0 = phi i64 [ %79, %67 ], [ 1, %26 ]
  %81 = load i64, ptr %25, align 8, !tbaa !5
  %82 = icmp eq i64 %81, -1
  br i1 %82, label %83, label %85

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

85:                                               ; preds = %80
  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
  %86 = load i64, ptr %3, align 8, !tbaa !5
  %87 = load i64, ptr %4, align 8, !tbaa !5
  %88 = icmp sgt i64 %86, %87
  br i1 %88, label %575, label %89

89:                                               ; preds = %85
  %90 = load i64, ptr %5, align 8, !tbaa !5
  %91 = icmp slt i64 %90, 1
  br i1 %91, label %575, label %92

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

113:                                              ; preds = %92
  %114 = mul nsw i64 %110, %46
  %115 = getelementptr float, ptr %48, i64 %111
  %116 = getelementptr float, ptr %115, i64 %114
  %117 = load float, ptr %116, align 4, !tbaa !9
  br label %118

118:                                              ; preds = %92, %113
  %.0605 = phi float [ %117, %113 ], [ 0.000000e+00, %92 ]
  %119 = icmp eq i64 %105, %111
  br i1 %119, label %120, label %144

120:                                              ; preds = %118
  %121 = add i64 %46, 1
  %122 = mul i64 %105, %121
  %123 = getelementptr inbounds float, ptr %48, i64 %122
  %124 = load float, ptr %123, align 4, !tbaa !9
  %125 = getelementptr float, ptr %14, i64 %110
  store float %124, ptr %125, align 4, !tbaa !9
  %126 = getelementptr float, ptr %15, i64 %110
  store float 0.000000e+00, ptr %126, align 4, !tbaa !9
  store i64 1, ptr %12, align 8, !tbaa !5
  store i64 0, ptr %13, align 8, !tbaa !5
  %127 = load float, ptr %123, align 4, !tbaa !9
  %128 = fcmp oge float %127, 0.000000e+00
  %129 = fneg float %127
  %130 = select i1 %128, float %127, float %129
  %131 = fmul float %130, %98
  %132 = fcmp oge float %.0605, 0.000000e+00
  %133 = fneg float %.0605
  %134 = select i1 %132, float %.0605, float %133
  %135 = fcmp oge float %103, %131
  %136 = select i1 %135, float %103, float %131
  %137 = fcmp ugt float %134, %136
  br i1 %137, label %.sink.split, label %138

138:                                              ; preds = %120
  store i64 0, ptr %12, align 8, !tbaa !5
  store i64 1, ptr %13, align 8, !tbaa !5
  %139 = load i64, ptr %3, align 8, !tbaa !5
  %.not643 = icmp slt i64 %110, %139
  br i1 %.not643, label %.sink.split, label %140

140:                                              ; preds = %138
  %141 = mul nsw i64 %110, %46
  %142 = getelementptr float, ptr %48, i64 %105
  %143 = getelementptr float, ptr %142, i64 %141
  store float 0.000000e+00, ptr %143, align 4, !tbaa !9
  br label %.sink.split

144:                                              ; preds = %118
  %145 = mul nsw i64 %111, %46
  %146 = getelementptr float, ptr %48, i64 %111
  %147 = getelementptr float, ptr %146, i64 %145
  %148 = call i32 @slacpy_(ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef %147, ptr noundef nonnull %7, ptr noundef %19, ptr noundef nonnull %20) #6
  %149 = load i64, ptr %36, align 8, !tbaa !5
  %150 = add nsw i64 %149, -1
  store i64 %150, ptr %27, align 8, !tbaa !5
  %151 = load i64, ptr %7, align 8, !tbaa !5
  %152 = add nsw i64 %151, 1
  store i64 %152, ptr %28, align 8, !tbaa !5
  %153 = load i64, ptr %20, align 8, !tbaa !5
  %154 = add nsw i64 %153, 1
  store i64 %154, ptr %29, align 8, !tbaa !5
  %155 = getelementptr float, ptr %48, i64 %110
  %156 = getelementptr i8, ptr %155, i64 8
  %157 = getelementptr float, ptr %156, i64 %145
  %158 = getelementptr inbounds i8, ptr %19, i64 4
  %159 = call i32 @f2c_scopy(ptr noundef nonnull %27, ptr noundef %157, ptr noundef nonnull %28, ptr noundef nonnull %158, ptr noundef nonnull %29) #6
  %160 = call i32 @slaset_(ptr noundef nonnull @.str.5, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef nonnull @c_b12, ptr noundef nonnull @c_b13, ptr noundef %16, ptr noundef nonnull %17) #6
  %161 = getelementptr float, ptr %14, i64 %110
  %162 = getelementptr float, ptr %15, i64 %110
  %163 = 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 %161, ptr noundef %162, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %43) #6
  %164 = load i64, ptr %36, align 8, !tbaa !5
  %165 = add nsw i64 %164, -3
  store i64 %165, ptr %27, align 8, !tbaa !5
  %.not649 = icmp slt i64 %164, 4
  br i1 %.not649, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %144
  %166 = add nsw i64 %164, -3
  %167 = add nsw i64 %164, -4
  %xtraiter = and i64 %166, 3
  %168 = icmp ult i64 %167, 3
  br i1 %168, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %166, -4
  %invariant.gep709 = getelementptr i8, ptr %59, i64 8
  %invariant.gep711 = getelementptr i8, ptr %59, i64 8
  %invariant.gep713 = getelementptr i8, ptr %59, i64 8
  %invariant.gep715 = getelementptr i8, ptr %59, i64 8
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %.0610650 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %180, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.3, %.lr.ph ]
  %169 = mul nsw i64 %.0610650, %57
  %gep710 = getelementptr float, ptr %invariant.gep709, i64 %.0610650
  %170 = getelementptr float, ptr %gep710, i64 %169
  store <2 x float> zeroinitializer, ptr %170, align 4, !tbaa !9
  %171 = add nuw nsw i64 %.0610650, 1
  %172 = mul nsw i64 %171, %57
  %gep712 = getelementptr float, ptr %invariant.gep711, i64 %171
  %173 = getelementptr float, ptr %gep712, i64 %172
  store <2 x float> zeroinitializer, ptr %173, align 4, !tbaa !9
  %174 = add nuw nsw i64 %.0610650, 2
  %175 = mul nsw i64 %174, %57
  %gep714 = getelementptr float, ptr %invariant.gep713, i64 %174
  %176 = getelementptr float, ptr %gep714, i64 %175
  store <2 x float> zeroinitializer, ptr %176, align 4, !tbaa !9
  %177 = add nuw i64 %.0610650, 3
  %178 = mul nsw i64 %177, %57
  %gep716 = getelementptr float, ptr %invariant.gep715, i64 %177
  %179 = getelementptr float, ptr %gep716, i64 %178
  store <2 x float> zeroinitializer, ptr %179, align 4, !tbaa !9
  %180 = add nuw i64 %.0610650, 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
  %.0610650.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %180, %.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.gep707 = getelementptr i8, ptr %59, i64 8
  br label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %.lr.ph.epil, %.lr.ph.epil.preheader
  %.0610650.epil = phi i64 [ %183, %.lr.ph.epil ], [ %.0610650.unr, %.lr.ph.epil.preheader ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph.epil ], [ 0, %.lr.ph.epil.preheader ]
  %181 = mul nsw i64 %.0610650.epil, %57
  %gep708 = getelementptr float, ptr %invariant.gep707, i64 %.0610650.epil
  %182 = getelementptr float, ptr %gep708, i64 %181
  store <2 x float> zeroinitializer, ptr %182, align 4, !tbaa !9
  %183 = add nuw i64 %.0610650.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, %144
  %184 = icmp sgt i64 %164, 2
  br i1 %184, label %185, label %190

185:                                              ; preds = %._crit_edge
  %186 = add nsw i64 %164, -2
  %187 = mul nsw i64 %186, %57
  %188 = getelementptr float, ptr %59, i64 %164
  %189 = getelementptr float, ptr %188, i64 %187
  store float 0.000000e+00, ptr %189, align 4, !tbaa !9
  br label %190

190:                                              ; preds = %185, %._crit_edge
  store i64 %164, ptr %12, align 8, !tbaa !5
  %191 = load i64, ptr %43, align 8, !tbaa !5
  %192 = add nsw i64 %191, 1
  store i64 %192, ptr %42, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %59, i64 -4
  %invariant.gep651 = getelementptr i8, ptr %56, i64 4
  %.not630657.not = icmp slt i64 %191, %164
  br i1 %.not630657.not, label %.lr.ph659, label %._crit_edge660.thread

._crit_edge660.thread:                            ; preds = %190
  %193 = icmp eq i64 %164, 0
  %.1606699 = select i1 %193, float 0.000000e+00, float %.0605
  br label %.loopexit648

.lr.ph659:                                        ; preds = %190
  %194 = add i64 %57, 1
  %195 = fcmp oge float %.0605, 0.000000e+00
  %196 = fneg float %.0605
  %197 = select i1 %195, float %.0605, float %196
  %198 = insertelement <2 x float> poison, float %.0605, i64 0
  %199 = shufflevector <2 x float> %198, <2 x float> poison, <2 x i32> zeroinitializer
  br label %200

200:                                              ; preds = %.lr.ph659, %285
  %201 = phi i64 [ %192, %.lr.ph659 ], [ %286, %285 ]
  %202 = phi i64 [ %164, %.lr.ph659 ], [ %.pr, %285 ]
  %203 = icmp eq i64 %202, 1
  br i1 %203, label %.thread, label %204

204:                                              ; preds = %200
  %205 = add nsw i64 %202, -1
  %206 = mul nsw i64 %205, %57
  %207 = getelementptr float, ptr %59, i64 %202
  %208 = getelementptr float, ptr %207, i64 %206
  %209 = load float, ptr %208, align 4, !tbaa !9
  %210 = fcmp oeq float %209, 0.000000e+00
  br i1 %210, label %.thread, label %234

.thread:                                          ; preds = %200, %204
  %211 = mul i64 %202, %194
  %212 = getelementptr inbounds float, ptr %59, i64 %211
  %213 = load float, ptr %212, align 4, !tbaa !9
  %214 = fcmp oge float %213, 0.000000e+00
  %215 = fneg float %213
  %216 = select i1 %214, float %213, float %215
  %217 = fcmp oeq float %213, 0.000000e+00
  %.0601 = select i1 %217, float %197, float %216
  %218 = fmul float %.0601, %98
  %219 = mul nsw i64 %202, %54
  %gep656 = getelementptr float, ptr %invariant.gep651, i64 %219
  %220 = load float, ptr %gep656, align 4, !tbaa !9
  %221 = fmul float %.0605, %220
  %222 = fcmp oge float %221, 0.000000e+00
  %223 = fneg float %221
  %224 = select i1 %222, float %221, float %223
  %225 = fcmp oge float %103, %218
  %226 = select i1 %225, float %103, float %218
  %227 = fcmp ugt float %224, %226
  br i1 %227, label %230, label %228

228:                                              ; preds = %.thread
  %229 = add nsw i64 %202, -1
  store i64 %229, ptr %12, align 8, !tbaa !5
  br label %285

230:                                              ; preds = %.thread
  store i64 %202, ptr %41, align 8, !tbaa !5
  %231 = call i32 @strexc_(ptr noundef nonnull @.str.6, 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
  %232 = load i64, ptr %42, align 8, !tbaa !5
  %233 = add nsw i64 %232, 1
  store i64 %233, ptr %42, align 8, !tbaa !5
  br label %285

234:                                              ; preds = %204
  %235 = mul i64 %202, %194
  %236 = getelementptr inbounds float, ptr %59, i64 %235
  %237 = load float, ptr %236, align 4, !tbaa !9
  %238 = fcmp oge float %237, 0.000000e+00
  %239 = fneg float %237
  %240 = select i1 %238, float %237, float %239
  %241 = fpext float %240 to double
  %242 = fcmp oge float %209, 0.000000e+00
  %243 = fneg float %209
  %244 = select i1 %242, float %209, float %243
  %245 = fpext float %244 to double
  %246 = call double @sqrt(double noundef %245) #6
  %247 = load i64, ptr %12, align 8, !tbaa !5
  %248 = mul nsw i64 %247, %57
  %gep = getelementptr float, ptr %invariant.gep, i64 %247
  %249 = getelementptr float, ptr %gep, i64 %248
  %250 = load float, ptr %249, align 4, !tbaa !9
  %251 = fcmp oge float %250, 0.000000e+00
  %252 = fneg float %250
  %253 = select i1 %251, float %250, float %252
  %254 = fpext float %253 to double
  %255 = call double @sqrt(double noundef %254) #6
  %256 = call double @llvm.fmuladd.f64(double %246, double %255, double %241)
  %257 = fptrunc double %256 to float
  %258 = fcmp oeq float %257, 0.000000e+00
  %.1602 = select i1 %258, float %197, float %257
  %259 = load i64, ptr %12, align 8, !tbaa !5
  %260 = mul nsw i64 %259, %54
  %gep652 = getelementptr float, ptr %invariant.gep651, i64 %260
  %261 = load float, ptr %gep652, align 4, !tbaa !9
  %262 = add nsw i64 %259, -1
  %263 = mul nsw i64 %262, %54
  %gep654 = getelementptr float, ptr %invariant.gep651, i64 %263
  %264 = load float, ptr %gep654, align 4, !tbaa !9
  %265 = insertelement <2 x float> poison, float %261, i64 0
  %266 = insertelement <2 x float> %265, float %264, i64 1
  %267 = fmul <2 x float> %199, %266
  %268 = fcmp oge <2 x float> %267, zeroinitializer
  %269 = fneg <2 x float> %267
  %270 = select <2 x i1> %268, <2 x float> %267, <2 x float> %269
  %271 = fmul float %.1602, %98
  %272 = extractelement <2 x float> %270, i64 0
  %273 = extractelement <2 x float> %270, i64 1
  %274 = fcmp oge float %272, %273
  %275 = select i1 %274, float %272, float %273
  %276 = fcmp oge float %103, %271
  %277 = select i1 %276, float %103, float %271
  %278 = fcmp ugt float %275, %277
  br i1 %278, label %281, label %279

279:                                              ; preds = %234
  %280 = add nsw i64 %259, -2
  store i64 %280, ptr %12, align 8, !tbaa !5
  %.pre = load i64, ptr %42, align 8, !tbaa !5
  br label %285

281:                                              ; preds = %234
  store i64 %259, ptr %41, align 8, !tbaa !5
  %282 = call i32 @strexc_(ptr noundef nonnull @.str.6, 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
  %283 = load i64, ptr %42, align 8, !tbaa !5
  %284 = add nsw i64 %283, 2
  store i64 %284, ptr %42, align 8, !tbaa !5
  br label %285

285:                                              ; preds = %279, %281, %228, %230
  %286 = phi i64 [ %.pre, %279 ], [ %284, %281 ], [ %201, %228 ], [ %233, %230 ]
  %.pr = load i64, ptr %12, align 8, !tbaa !5
  %.not630 = icmp sgt i64 %286, %.pr
  br i1 %.not630, label %._crit_edge660, label %200

._crit_edge660:                                   ; preds = %285
  %.pre693 = load i64, ptr %36, align 8, !tbaa !5
  %287 = icmp eq i64 %.pr, 0
  %.1606 = select i1 %287, float 0.000000e+00, float %.0605
  %288 = icmp slt i64 %.pr, %.pre693
  br i1 %288, label %289, label %.loopexit648

289:                                              ; preds = %._crit_edge660
  %290 = add nsw i64 %.pr, 1
  %291 = add i64 %57, 1
  br label %292

.loopexit647:                                     ; preds = %390, %392
  %.not631 = icmp eq i64 %.2, 0
  br i1 %.not631, label %292, label %.loopexit648.loopexit

292:                                              ; preds = %289, %.loopexit647
  %.0611669 = phi i64 [ %290, %289 ], [ %.2613, %.loopexit647 ]
  %293 = add nsw i64 %.0611669, -1
  %294 = load i64, ptr %43, align 8, !tbaa !5
  %295 = add nsw i64 %294, 1
  %296 = load i64, ptr %12, align 8, !tbaa !5
  %297 = icmp eq i64 %295, %296
  %298 = add nsw i64 %294, 2
  br i1 %297, label %307, label %299

299:                                              ; preds = %292
  %300 = mul nsw i64 %295, %57
  %301 = getelementptr float, ptr %59, i64 %298
  %302 = getelementptr float, ptr %301, i64 %300
  %303 = load float, ptr %302, align 4, !tbaa !9
  %304 = fcmp oeq float %303, 0.000000e+00
  br i1 %304, label %307, label %305

305:                                              ; preds = %299
  %306 = add nsw i64 %294, 3
  br label %307

307:                                              ; preds = %292, %299, %305
  %.0607 = phi i64 [ %306, %305 ], [ %298, %299 ], [ %298, %292 ]
  %.not632.not661 = icmp slt i64 %.0607, %.0611669
  br i1 %.not632.not661, label %.lr.ph666.preheader, label %.loopexit648.loopexit

.lr.ph666.preheader:                              ; preds = %307
  %308 = mul i64 %293, %291
  %309 = getelementptr inbounds float, ptr %59, i64 %308
  br label %.lr.ph666

.lr.ph666:                                        ; preds = %.lr.ph666.preheader, %392
  %.1664 = phi i64 [ %.2, %392 ], [ 1, %.lr.ph666.preheader ]
  %.1608663 = phi i64 [ %.2609, %392 ], [ %.0607, %.lr.ph666.preheader ]
  %.1612662 = phi i64 [ %.2613, %392 ], [ %295, %.lr.ph666.preheader ]
  %310 = add nsw i64 %.1612662, 1
  %311 = icmp eq i64 %.1608663, %310
  br i1 %311, label %312, label %319

312:                                              ; preds = %.lr.ph666
  %313 = mul i64 %.1612662, %291
  %314 = getelementptr inbounds float, ptr %59, i64 %313
  %315 = load float, ptr %314, align 4, !tbaa !9
  %316 = fcmp oge float %315, 0.000000e+00
  %317 = fneg float %315
  %318 = select i1 %316, float %315, float %317
  br label %346

319:                                              ; preds = %.lr.ph666
  %320 = mul nsw i64 %.1612662, %57
  %321 = getelementptr float, ptr %59, i64 %.1612662
  %322 = getelementptr float, ptr %321, i64 %320
  %323 = load float, ptr %322, align 4, !tbaa !9
  %324 = fcmp oge float %323, 0.000000e+00
  %325 = fneg float %323
  %326 = select i1 %324, float %323, float %325
  %327 = fpext float %326 to double
  %328 = getelementptr float, ptr %59, i64 %310
  %329 = getelementptr float, ptr %328, i64 %320
  %330 = load float, ptr %329, align 4, !tbaa !9
  %331 = fcmp oge float %330, 0.000000e+00
  %332 = fneg float %330
  %333 = select i1 %331, float %330, float %332
  %334 = fpext float %333 to double
  %335 = call double @sqrt(double noundef %334) #6
  %336 = mul nsw i64 %310, %57
  %337 = getelementptr float, ptr %321, i64 %336
  %338 = load float, ptr %337, align 4, !tbaa !9
  %339 = fcmp oge float %338, 0.000000e+00
  %340 = fneg float %338
  %341 = select i1 %339, float %338, float %340
  %342 = fpext float %341 to double
  %343 = call double @sqrt(double noundef %342) #6
  %344 = call double @llvm.fmuladd.f64(double %335, double %343, double %327)
  %345 = fptrunc double %344 to float
  br label %346

346:                                              ; preds = %319, %312
  %.0604 = phi float [ %318, %312 ], [ %345, %319 ]
  %347 = icmp eq i64 %.1608663, %293
  br i1 %347, label %348, label %353

348:                                              ; preds = %346
  %349 = load float, ptr %309, align 4, !tbaa !9
  %350 = fcmp oge float %349, 0.000000e+00
  %351 = fneg float %349
  %352 = select i1 %350, float %349, float %351
  br label %383

353:                                              ; preds = %346
  %354 = add nsw i64 %.1608663, 1
  %355 = mul nsw i64 %.1608663, %57
  %356 = getelementptr float, ptr %59, i64 %354
  %357 = getelementptr float, ptr %356, i64 %355
  %358 = load float, ptr %357, align 4, !tbaa !9
  %359 = fcmp oeq float %358, 0.000000e+00
  %360 = getelementptr float, ptr %59, i64 %.1608663
  %361 = getelementptr float, ptr %360, i64 %355
  %362 = load float, ptr %361, align 4, !tbaa !9
  %363 = fcmp oge float %362, 0.000000e+00
  %364 = fneg float %362
  %365 = select i1 %363, float %362, float %364
  br i1 %359, label %383, label %366

366:                                              ; preds = %353
  %367 = fpext float %365 to double
  %368 = fcmp oge float %358, 0.000000e+00
  %369 = fneg float %358
  %370 = select i1 %368, float %358, float %369
  %371 = fpext float %370 to double
  %372 = call double @sqrt(double noundef %371) #6
  %373 = mul nsw i64 %354, %57
  %374 = getelementptr float, ptr %360, i64 %373
  %375 = load float, ptr %374, align 4, !tbaa !9
  %376 = fcmp oge float %375, 0.000000e+00
  %377 = fneg float %375
  %378 = select i1 %376, float %375, float %377
  %379 = fpext float %378 to double
  %380 = call double @sqrt(double noundef %379) #6
  %381 = call double @llvm.fmuladd.f64(double %372, double %380, double %367)
  %382 = fptrunc double %381 to float
  br label %383

383:                                              ; preds = %353, %366, %348
  %.0603 = phi float [ %352, %348 ], [ %382, %366 ], [ %365, %353 ]
  %384 = fcmp ult float %.0604, %.0603
  br i1 %384, label %385, label %390

385:                                              ; preds = %383
  store i64 %.1612662, ptr %41, align 8, !tbaa !5
  store i64 %.1608663, ptr %42, align 8, !tbaa !5
  %386 = call i32 @strexc_(ptr noundef nonnull @.str.6, 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
  %387 = load i64, ptr %40, align 8, !tbaa !5
  %388 = icmp eq i64 %387, 0
  %389 = load i64, ptr %42, align 8
  %spec.select = select i1 %388, i64 %389, i64 %.1608663
  br label %390

390:                                              ; preds = %385, %383
  %.2613 = phi i64 [ %.1608663, %383 ], [ %spec.select, %385 ]
  %.2 = phi i64 [ %.1664, %383 ], [ 0, %385 ]
  %391 = icmp eq i64 %.2613, %293
  br i1 %391, label %.loopexit647, label %392

392:                                              ; preds = %390
  %393 = add nsw i64 %.2613, 1
  %394 = mul nsw i64 %.2613, %57
  %395 = getelementptr float, ptr %59, i64 %393
  %396 = getelementptr float, ptr %395, i64 %394
  %397 = load float, ptr %396, align 4, !tbaa !9
  %398 = fcmp oeq float %397, 0.000000e+00
  %399 = add nsw i64 %.2613, 2
  %.2609 = select i1 %398, i64 %393, i64 %399
  %.not632.not = icmp slt i64 %.2609, %.0611669
  br i1 %.not632.not, label %.lr.ph666, label %.loopexit647

.loopexit648.loopexit:                            ; preds = %307, %.loopexit647
  %.pre694 = load i64, ptr %36, align 8, !tbaa !5
  br label %.loopexit648

.loopexit648:                                     ; preds = %._crit_edge660.thread, %.loopexit648.loopexit, %._crit_edge660
  %.1606700 = phi float [ %.1606, %.loopexit648.loopexit ], [ %.1606, %._crit_edge660 ], [ %.1606699, %._crit_edge660.thread ]
  %400 = phi i64 [ %.pre694, %.loopexit648.loopexit ], [ %.pre693, %._crit_edge660 ], [ %164, %._crit_edge660.thread ]
  %401 = load i64, ptr %43, align 8, !tbaa !5
  %.not633.not670 = icmp sgt i64 %400, %401
  br i1 %.not633.not670, label %.lr.ph673, label %._crit_edge674

.lr.ph673:                                        ; preds = %.loopexit648
  %402 = add i64 %110, -1
  %403 = add i64 %57, 1
  br label %404

404:                                              ; preds = %.lr.ph673, %447
  %405 = phi i64 [ %401, %.lr.ph673 ], [ %448, %447 ]
  %.3671 = phi i64 [ %400, %.lr.ph673 ], [ %.4, %447 ]
  %406 = add nsw i64 %405, 1
  %407 = icmp eq i64 %.3671, %406
  br i1 %407, label %408, label %416

408:                                              ; preds = %404
  %409 = mul i64 %.3671, %403
  %410 = getelementptr inbounds float, ptr %59, i64 %409
  %411 = load float, ptr %410, align 4, !tbaa !9
  %412 = add i64 %.3671, %110
  %413 = getelementptr inbounds float, ptr %52, i64 %412
  store float %411, ptr %413, align 4, !tbaa !9
  %414 = getelementptr inbounds float, ptr %53, i64 %412
  store float 0.000000e+00, ptr %414, align 4, !tbaa !9
  %415 = add nsw i64 %.3671, -1
  br label %447

416:                                              ; preds = %404
  %417 = add nsw i64 %.3671, -1
  %418 = mul nsw i64 %417, %57
  %419 = getelementptr float, ptr %59, i64 %.3671
  %420 = getelementptr float, ptr %419, i64 %418
  %421 = load float, ptr %420, align 4, !tbaa !9
  %422 = fcmp oeq float %421, 0.000000e+00
  br i1 %422, label %423, label %430

423:                                              ; preds = %416
  %424 = mul i64 %.3671, %403
  %425 = getelementptr inbounds float, ptr %59, i64 %424
  %426 = load float, ptr %425, align 4, !tbaa !9
  %427 = add i64 %.3671, %110
  %428 = getelementptr inbounds float, ptr %52, i64 %427
  store float %426, ptr %428, align 4, !tbaa !9
  %429 = getelementptr inbounds float, ptr %53, i64 %427
  store float 0.000000e+00, ptr %429, align 4, !tbaa !9
  br label %447

430:                                              ; preds = %416
  %431 = getelementptr float, ptr %59, i64 %417
  %432 = getelementptr float, ptr %431, i64 %418
  %433 = load float, ptr %432, align 4, !tbaa !9
  store float %433, ptr %30, align 4, !tbaa !9
  store float %421, ptr %32, align 4, !tbaa !9
  %434 = mul nsw i64 %.3671, %57
  %435 = getelementptr float, ptr %431, i64 %434
  %436 = load float, ptr %435, align 4, !tbaa !9
  store float %436, ptr %31, align 4, !tbaa !9
  %437 = getelementptr float, ptr %419, i64 %434
  %438 = load float, ptr %437, align 4, !tbaa !9
  store float %438, ptr %33, align 4, !tbaa !9
  %439 = add i64 %402, %.3671
  %440 = getelementptr inbounds float, ptr %52, i64 %439
  %441 = getelementptr inbounds float, ptr %53, i64 %439
  %442 = add i64 %.3671, %110
  %443 = getelementptr inbounds float, ptr %52, i64 %442
  %444 = getelementptr inbounds float, ptr %53, i64 %442
  %445 = call i32 @slanv2_(ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %440, ptr noundef nonnull %441, ptr noundef nonnull %443, ptr noundef nonnull %444, ptr noundef nonnull %34, ptr noundef nonnull %35) #6
  %446 = add nsw i64 %.3671, -2
  %.pre695 = load i64, ptr %43, align 8, !tbaa !5
  br label %447

447:                                              ; preds = %423, %430, %408
  %448 = phi i64 [ %405, %408 ], [ %405, %423 ], [ %.pre695, %430 ]
  %.4 = phi i64 [ %415, %408 ], [ %417, %423 ], [ %446, %430 ]
  %.not633.not = icmp sgt i64 %.4, %448
  br i1 %.not633.not, label %404, label %._crit_edge674.loopexit

._crit_edge674.loopexit:                          ; preds = %447
  %.pre696 = load i64, ptr %36, align 8, !tbaa !5
  br label %._crit_edge674

._crit_edge674:                                   ; preds = %._crit_edge674.loopexit, %.loopexit648
  %449 = phi i64 [ %.pre696, %._crit_edge674.loopexit ], [ %400, %.loopexit648 ]
  %450 = load i64, ptr %12, align 8, !tbaa !5
  %451 = icmp slt i64 %450, %449
  %452 = fcmp oeq float %.1606700, 0.000000e+00
  %or.cond = select i1 %451, i1 true, i1 %452
  br i1 %or.cond, label %453, label %.loopexit

453:                                              ; preds = %._crit_edge674
  %454 = icmp sgt i64 %450, 1
  %455 = fcmp une float %.1606700, 0.000000e+00
  %or.cond3 = select i1 %454, i1 %455, i1 false
  br i1 %or.cond3, label %456, label %479

456:                                              ; preds = %453
  %457 = 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
  %458 = load float, ptr %24, align 4, !tbaa !9
  store float %458, ptr %39, align 4, !tbaa !9
  %459 = getelementptr inbounds i8, ptr %24, i64 4
  %460 = call i32 @slarfg_(ptr noundef nonnull %12, ptr noundef nonnull %39, ptr noundef nonnull %459, ptr noundef nonnull @c__1, ptr noundef nonnull %38) #6
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %461 = load i64, ptr %36, align 8, !tbaa !5
  %462 = add nsw i64 %461, -2
  store i64 %462, ptr %27, align 8, !tbaa !5
  store i64 %462, ptr %28, align 8, !tbaa !5
  %463 = getelementptr inbounds i8, ptr %19, i64 8
  %464 = call i32 @slaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef nonnull @c_b12, ptr noundef nonnull @c_b12, ptr noundef nonnull %463, ptr noundef nonnull %20) #6
  %465 = load i64, ptr %36, align 8, !tbaa !5
  %466 = getelementptr float, ptr %24, i64 %465
  %467 = call i32 @slarf_(ptr noundef nonnull @.str.7, 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 %466) #6
  %468 = load i64, ptr %36, align 8, !tbaa !5
  %469 = getelementptr float, ptr %24, i64 %468
  %470 = 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 %469) #6
  %471 = load i64, ptr %36, align 8, !tbaa !5
  %472 = getelementptr float, ptr %24, i64 %471
  %473 = 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 %472) #6
  %474 = load i64, ptr %25, align 8, !tbaa !5
  %475 = load i64, ptr %36, align 8, !tbaa !5
  %476 = sub nsw i64 %474, %475
  store i64 %476, ptr %27, align 8, !tbaa !5
  %477 = getelementptr float, ptr %24, i64 %475
  %478 = 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 %477, ptr noundef nonnull %27, ptr noundef nonnull %40) #6
  br label %479

479:                                              ; preds = %456, %453
  %480 = icmp sgt i64 %110, 0
  br i1 %480, label %481, label %486

481:                                              ; preds = %479
  %482 = load float, ptr %16, align 4, !tbaa !9
  %483 = fmul float %.1606700, %482
  %484 = mul nsw i64 %110, %46
  %485 = getelementptr float, ptr %146, i64 %484
  store float %483, ptr %485, align 4, !tbaa !9
  br label %486

486:                                              ; preds = %481, %479
  %487 = 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 %147, ptr noundef nonnull %7) #6
  %488 = load i64, ptr %36, align 8, !tbaa !5
  %489 = add nsw i64 %488, -1
  store i64 %489, ptr %27, align 8, !tbaa !5
  %490 = load i64, ptr %20, align 8, !tbaa !5
  %491 = add nsw i64 %490, 1
  store i64 %491, ptr %28, align 8, !tbaa !5
  %492 = load i64, ptr %7, align 8, !tbaa !5
  %493 = add nsw i64 %492, 1
  store i64 %493, ptr %29, align 8, !tbaa !5
  %494 = call i32 @f2c_scopy(ptr noundef nonnull %27, ptr noundef nonnull %158, ptr noundef nonnull %28, ptr noundef %157, ptr noundef nonnull %29) #6
  %495 = load i64, ptr %12, align 8, !tbaa !5
  %496 = icmp sgt i64 %495, 1
  %or.cond5 = select i1 %496, i1 %455, i1 false
  br i1 %or.cond5, label %497, label %503

497:                                              ; preds = %486
  %498 = load i64, ptr %25, align 8, !tbaa !5
  %499 = load i64, ptr %36, align 8, !tbaa !5
  %500 = sub nsw i64 %498, %499
  store i64 %500, ptr %27, align 8, !tbaa !5
  %501 = getelementptr float, ptr %24, i64 %499
  %502 = 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 %501, ptr noundef nonnull %27, ptr noundef nonnull %40) #6
  br label %503

503:                                              ; preds = %497, %486
  %504 = load i64, ptr %0, align 8, !tbaa !5
  %.not634 = icmp eq i64 %504, 0
  br i1 %.not634, label %505, label %507

505:                                              ; preds = %503
  %506 = load i64, ptr %3, align 8, !tbaa !5
  br label %507

507:                                              ; preds = %503, %505
  %.0599 = phi i64 [ %506, %505 ], [ 1, %503 ]
  store i64 %110, ptr %27, align 8, !tbaa !5
  %508 = load i64, ptr %21, align 8, !tbaa !5
  store i64 %508, ptr %28, align 8, !tbaa !5
  %invariant.gep675 = getelementptr float, ptr %48, i64 %145
  %509 = icmp slt i64 %508, 0
  %510 = icmp sge i64 %.0599, %110
  %511 = icmp sle i64 %.0599, %110
  %.in677 = select i1 %509, i1 %510, i1 %511
  br i1 %.in677, label %.lr.ph680, label %._crit_edge681

.lr.ph680:                                        ; preds = %507, %.lr.ph680
  %.0597678 = phi i64 [ %518, %.lr.ph680 ], [ %.0599, %507 ]
  %512 = load i64, ptr %21, align 8, !tbaa !5
  store i64 %512, ptr %29, align 8, !tbaa !5
  %513 = sub nsw i64 %111, %.0597678
  %514 = call i64 @llvm.smin.i64(i64 %512, i64 %513)
  store i64 %514, ptr %37, align 8, !tbaa !5
  %gep676 = getelementptr float, ptr %invariant.gep675, i64 %.0597678
  %515 = 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_b13, ptr noundef %gep676, ptr noundef nonnull %7, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull @c_b12, ptr noundef %22, ptr noundef %23) #6
  %516 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef %22, ptr noundef %23, ptr noundef %gep676, ptr noundef nonnull %7) #6
  %517 = load i64, ptr %28, align 8, !tbaa !5
  %518 = add nsw i64 %517, %.0597678
  %519 = icmp slt i64 %517, 0
  %520 = load i64, ptr %27, align 8
  %521 = icmp sge i64 %518, %520
  %522 = icmp sle i64 %518, %520
  %.in = select i1 %519, i1 %521, i1 %522
  br i1 %.in, label %.lr.ph680, label %._crit_edge681.loopexit, !llvm.loop !15

._crit_edge681.loopexit:                          ; preds = %.lr.ph680
  %.pre697 = load i64, ptr %0, align 8, !tbaa !5
  br label %._crit_edge681

._crit_edge681:                                   ; preds = %._crit_edge681.loopexit, %507
  %523 = phi i64 [ %.pre697, %._crit_edge681.loopexit ], [ %504, %507 ]
  %.not635 = icmp eq i64 %523, 0
  br i1 %.not635, label %.loopexit646, label %524

524:                                              ; preds = %._crit_edge681
  %525 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %525, ptr %28, align 8, !tbaa !5
  %526 = load i64, ptr %18, align 8, !tbaa !5
  store i64 %526, ptr %27, align 8, !tbaa !5
  %527 = load i64, ptr %4, align 8, !tbaa !5
  %528 = add nsw i64 %527, 1
  %529 = icmp slt i64 %526, 0
  %530 = icmp sge i64 %528, %525
  %531 = icmp slt i64 %527, %525
  %.in636682 = select i1 %529, i1 %530, i1 %531
  br i1 %.in636682, label %.lr.ph685, label %.loopexit646

.lr.ph685:                                        ; preds = %524, %.lr.ph685
  %.0600683 = phi i64 [ %541, %.lr.ph685 ], [ %528, %524 ]
  %532 = load i64, ptr %18, align 8, !tbaa !5
  store i64 %532, ptr %29, align 8, !tbaa !5
  %533 = load i64, ptr %2, align 8, !tbaa !5
  %reass.sub = sub i64 %533, %.0600683
  %534 = add i64 %reass.sub, 1
  %535 = call i64 @llvm.smin.i64(i64 %532, i64 %534)
  store i64 %535, ptr %37, align 8, !tbaa !5
  %536 = mul nsw i64 %.0600683, %46
  %537 = getelementptr float, ptr %146, i64 %536
  %538 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef nonnull @c_b13, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %537, ptr noundef nonnull %7, ptr noundef nonnull @c_b12, ptr noundef %19, ptr noundef nonnull %20) #6
  %539 = 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 %537, ptr noundef nonnull %7) #6
  %540 = load i64, ptr %27, align 8, !tbaa !5
  %541 = add nsw i64 %540, %.0600683
  %542 = icmp slt i64 %540, 0
  %543 = load i64, ptr %28, align 8
  %544 = icmp sge i64 %541, %543
  %545 = icmp sle i64 %541, %543
  %.in636 = select i1 %542, i1 %544, i1 %545
  br i1 %.in636, label %.lr.ph685, label %.loopexit646, !llvm.loop !16

.loopexit646:                                     ; preds = %.lr.ph685, %524, %._crit_edge681
  %546 = load i64, ptr %1, align 8, !tbaa !5
  %.not637 = icmp eq i64 %546, 0
  br i1 %.not637, label %.loopexit, label %547

547:                                              ; preds = %.loopexit646
  %548 = load i64, ptr %9, align 8, !tbaa !5
  store i64 %548, ptr %27, align 8, !tbaa !5
  %549 = load i64, ptr %21, align 8, !tbaa !5
  store i64 %549, ptr %28, align 8, !tbaa !5
  %550 = load i64, ptr %8, align 8, !tbaa !5
  %551 = icmp slt i64 %549, 0
  %552 = icmp sge i64 %550, %548
  %553 = icmp sle i64 %550, %548
  %.in638686 = select i1 %551, i1 %552, i1 %553
  br i1 %.in638686, label %.lr.ph689, label %.loopexit

.lr.ph689:                                        ; preds = %547
  %554 = mul nsw i64 %111, %49
  %invariant.gep690 = getelementptr float, ptr %51, i64 %554
  br label %555

555:                                              ; preds = %.lr.ph689, %555
  %.1598687 = phi i64 [ %550, %.lr.ph689 ], [ %563, %555 ]
  %556 = load i64, ptr %21, align 8, !tbaa !5
  store i64 %556, ptr %29, align 8, !tbaa !5
  %557 = load i64, ptr %9, align 8, !tbaa !5
  %reass.sub692 = sub i64 %557, %.1598687
  %558 = add i64 %reass.sub692, 1
  %559 = call i64 @llvm.smin.i64(i64 %556, i64 %558)
  store i64 %559, ptr %37, align 8, !tbaa !5
  %gep691 = getelementptr float, ptr %invariant.gep690, i64 %.1598687
  %560 = 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_b13, ptr noundef %gep691, ptr noundef nonnull %11, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull @c_b12, ptr noundef %22, ptr noundef nonnull %23) #6
  %561 = 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 %gep691, ptr noundef nonnull %11) #6
  %562 = load i64, ptr %28, align 8, !tbaa !5
  %563 = add nsw i64 %562, %.1598687
  %564 = icmp slt i64 %562, 0
  %565 = load i64, ptr %27, align 8
  %566 = icmp sge i64 %563, %565
  %567 = icmp sle i64 %563, %565
  %.in638 = select i1 %564, i1 %566, i1 %567
  br i1 %.in638, label %555, label %.loopexit, !llvm.loop !17

.loopexit:                                        ; preds = %555, %547, %.loopexit646, %._crit_edge674
  %568 = load i64, ptr %36, align 8, !tbaa !5
  %569 = load i64, ptr %12, align 8, !tbaa !5
  %570 = sub nsw i64 %568, %569
  store i64 %570, ptr %13, align 8, !tbaa !5
  %571 = load i64, ptr %43, align 8, !tbaa !5
  %572 = load i64, ptr %12, align 8, !tbaa !5
  %573 = sub nsw i64 %572, %571
  store i64 %573, ptr %12, align 8, !tbaa !5
  %574 = sitofp i64 %.0 to float
  br label %.sink.split

.sink.split:                                      ; preds = %120, %140, %138, %83, %.loopexit
  %.sink = phi float [ %574, %.loopexit ], [ %84, %83 ], [ 1.000000e+00, %138 ], [ 1.000000e+00, %140 ], [ 1.000000e+00, %120 ]
  store float %.sink, ptr %24, align 4, !tbaa !9
  br label %575

575:                                              ; preds = %.sink.split, %89, %85
  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 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 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