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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1

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

117:                                              ; preds = %14
  %118 = load ptr, ptr %15, align 8, !tbaa !5
  %119 = call i32 @lsame_(ptr noundef %118, ptr noundef @.str.1)
  %120 = icmp ne i32 %119, 0
  br i1 %120, label %123, label %121

121:                                              ; preds = %117
  %122 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -1, ptr %122, align 4, !tbaa !9
  br label %188

123:                                              ; preds = %117, %14
  %124 = load i32, ptr %62, align 4, !tbaa !9
  %125 = icmp ne i32 %124, 0
  br i1 %125, label %132, label %126

126:                                              ; preds = %123
  %127 = load ptr, ptr %16, align 8, !tbaa !5
  %128 = call i32 @lsame_(ptr noundef %127, ptr noundef @.str.1)
  %129 = icmp ne i32 %128, 0
  br i1 %129, label %132, label %130

130:                                              ; preds = %126
  %131 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -2, ptr %131, align 4, !tbaa !9
  br label %187

132:                                              ; preds = %126, %123
  %133 = load ptr, ptr %17, align 8, !tbaa !5
  %134 = load i32, ptr %133, align 4, !tbaa !9
  %135 = icmp slt i32 %134, 0
  br i1 %135, label %136, label %138

136:                                              ; preds = %132
  %137 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -3, ptr %137, align 4, !tbaa !9
  br label %186

138:                                              ; preds = %132
  %139 = load ptr, ptr %19, align 8, !tbaa !5
  %140 = load i32, ptr %139, align 4, !tbaa !9
  %141 = load ptr, ptr %17, align 8, !tbaa !5
  %142 = load i32, ptr %141, align 4, !tbaa !9
  %143 = icmp sge i32 1, %142
  br i1 %143, label %144, label %145

144:                                              ; preds = %138
  br label %148

145:                                              ; preds = %138
  %146 = load ptr, ptr %17, align 8, !tbaa !5
  %147 = load i32, ptr %146, align 4, !tbaa !9
  br label %148

148:                                              ; preds = %145, %144
  %149 = phi i32 [ 1, %144 ], [ %147, %145 ]
  %150 = icmp slt i32 %140, %149
  br i1 %150, label %151, label %153

151:                                              ; preds = %148
  %152 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -5, ptr %152, align 4, !tbaa !9
  br label %185

153:                                              ; preds = %148
  %154 = load ptr, ptr %23, align 8, !tbaa !5
  %155 = load i32, ptr %154, align 4, !tbaa !9
  %156 = icmp slt i32 %155, 1
  br i1 %156, label %166, label %157

157:                                              ; preds = %153
  %158 = load i32, ptr %58, align 4, !tbaa !9
  %159 = icmp ne i32 %158, 0
  br i1 %159, label %160, label %168

160:                                              ; preds = %157
  %161 = load ptr, ptr %23, align 8, !tbaa !5
  %162 = load i32, ptr %161, align 4, !tbaa !9
  %163 = load ptr, ptr %17, align 8, !tbaa !5
  %164 = load i32, ptr %163, align 4, !tbaa !9
  %165 = icmp slt i32 %162, %164
  br i1 %165, label %166, label %168

166:                                              ; preds = %160, %153
  %167 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -9, ptr %167, align 4, !tbaa !9
  br label %184

168:                                              ; preds = %160, %157
  %169 = load ptr, ptr %25, align 8, !tbaa !5
  %170 = load i32, ptr %169, align 4, !tbaa !9
  %171 = icmp slt i32 %170, 1
  br i1 %171, label %181, label %172

172:                                              ; preds = %168
  %173 = load i32, ptr %62, align 4, !tbaa !9
  %174 = icmp ne i32 %173, 0
  br i1 %174, label %175, label %183

175:                                              ; preds = %172
  %176 = load ptr, ptr %25, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  %178 = load ptr, ptr %17, align 8, !tbaa !5
  %179 = load i32, ptr %178, align 4, !tbaa !9
  %180 = icmp slt i32 %177, %179
  br i1 %180, label %181, label %183

181:                                              ; preds = %175, %168
  %182 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -11, ptr %182, align 4, !tbaa !9
  br label %183

183:                                              ; preds = %181, %175, %172
  br label %184

184:                                              ; preds = %183, %166
  br label %185

185:                                              ; preds = %184, %151
  br label %186

186:                                              ; preds = %185, %136
  br label %187

187:                                              ; preds = %186, %130
  br label %188

188:                                              ; preds = %187, %121
  %189 = load ptr, ptr %28, align 8, !tbaa !5
  %190 = load i32, ptr %189, align 4, !tbaa !9
  %191 = icmp eq i32 %190, 0
  br i1 %191, label %192, label %542

192:                                              ; preds = %188
  %193 = load ptr, ptr %17, align 8, !tbaa !5
  %194 = load i32, ptr %193, align 4, !tbaa !9
  %195 = icmp eq i32 %194, 0
  br i1 %195, label %196, label %197

196:                                              ; preds = %192
  store i32 1, ptr %56, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %527

197:                                              ; preds = %192
  %198 = load ptr, ptr %17, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = shl i32 %199, 1
  %201 = load ptr, ptr %17, align 8, !tbaa !5
  %202 = load i32, ptr %201, align 4, !tbaa !9
  %203 = load ptr, ptr %17, align 8, !tbaa !5
  %204 = load ptr, ptr %17, align 8, !tbaa !5
  %205 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %203, ptr noundef @c__1, ptr noundef %204, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %206 = mul nsw i32 %202, %205
  %207 = add nsw i32 %200, %206
  store i32 %207, ptr %57, align 4, !tbaa !9
  %208 = load i32, ptr %58, align 4, !tbaa !9
  %209 = icmp ne i32 %208, 0
  br i1 %209, label %210, label %335

210:                                              ; preds = %197
  %211 = load ptr, ptr %17, align 8, !tbaa !5
  %212 = load i32, ptr %211, align 4, !tbaa !9
  %213 = shl i32 %212, 2
  store i32 %213, ptr %56, align 4, !tbaa !9
  %214 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %214, ptr %35, align 4, !tbaa !9
  %215 = load ptr, ptr %17, align 8, !tbaa !5
  %216 = load i32, ptr %215, align 4, !tbaa !9
  %217 = shl i32 %216, 1
  %218 = load ptr, ptr %17, align 8, !tbaa !5
  %219 = load i32, ptr %218, align 4, !tbaa !9
  %220 = sub nsw i32 %219, 1
  %221 = load ptr, ptr %17, align 8, !tbaa !5
  %222 = load ptr, ptr %17, align 8, !tbaa !5
  %223 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %221, ptr noundef @c__1, ptr noundef %222, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %224 = mul nsw i32 %220, %223
  %225 = add nsw i32 %217, %224
  store i32 %225, ptr %36, align 4, !tbaa !9
  %226 = load i32, ptr %35, align 4, !tbaa !9
  %227 = load i32, ptr %36, align 4, !tbaa !9
  %228 = icmp sge i32 %226, %227
  br i1 %228, label %229, label %231

229:                                              ; preds = %210
  %230 = load i32, ptr %35, align 4, !tbaa !9
  br label %233

231:                                              ; preds = %210
  %232 = load i32, ptr %36, align 4, !tbaa !9
  br label %233

233:                                              ; preds = %231, %229
  %234 = phi i32 [ %230, %229 ], [ %232, %231 ]
  store i32 %234, ptr %57, align 4, !tbaa !9
  %235 = load ptr, ptr %17, align 8, !tbaa !5
  %236 = load ptr, ptr %17, align 8, !tbaa !5
  %237 = load ptr, ptr %18, align 8, !tbaa !5
  %238 = load i32, ptr %30, align 4, !tbaa !9
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds float, ptr %237, i64 %239
  %241 = load ptr, ptr %19, align 8, !tbaa !5
  %242 = load ptr, ptr %20, align 8, !tbaa !5
  %243 = getelementptr inbounds float, ptr %242, i64 1
  %244 = load ptr, ptr %21, align 8, !tbaa !5
  %245 = getelementptr inbounds float, ptr %244, i64 1
  %246 = load ptr, ptr %22, align 8, !tbaa !5
  %247 = load i32, ptr %32, align 4, !tbaa !9
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds float, ptr %246, i64 %248
  %250 = load ptr, ptr %23, align 8, !tbaa !5
  %251 = load ptr, ptr %26, align 8, !tbaa !5
  %252 = getelementptr inbounds float, ptr %251, i64 1
  %253 = load ptr, ptr %28, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.5, ptr noundef @.str, ptr noundef %235, ptr noundef @c__1, ptr noundef %236, ptr noundef %240, ptr noundef %241, ptr noundef %243, ptr noundef %245, ptr noundef %249, ptr noundef %250, ptr noundef %252, ptr noundef @c_n1, ptr noundef %253)
  %254 = load ptr, ptr %26, align 8, !tbaa !5
  %255 = getelementptr inbounds float, ptr %254, i64 1
  %256 = load float, ptr %255, align 4, !tbaa !11
  %257 = fptosi float %256 to i32
  store i32 %257, ptr %60, align 4, !tbaa !9
  %258 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %258, ptr %35, align 4, !tbaa !9
  %259 = load ptr, ptr %17, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = add nsw i32 %260, 1
  store i32 %261, ptr %36, align 4, !tbaa !9
  %262 = load i32, ptr %35, align 4, !tbaa !9
  %263 = load i32, ptr %36, align 4, !tbaa !9
  %264 = icmp sge i32 %262, %263
  br i1 %264, label %265, label %267

265:                                              ; preds = %233
  %266 = load i32, ptr %35, align 4, !tbaa !9
  br label %269

267:                                              ; preds = %233
  %268 = load i32, ptr %36, align 4, !tbaa !9
  br label %269

269:                                              ; preds = %267, %265
  %270 = phi i32 [ %266, %265 ], [ %268, %267 ]
  store i32 %270, ptr %35, align 4, !tbaa !9
  %271 = load ptr, ptr %17, align 8, !tbaa !5
  %272 = load i32, ptr %271, align 4, !tbaa !9
  %273 = load i32, ptr %60, align 4, !tbaa !9
  %274 = add nsw i32 %272, %273
  store i32 %274, ptr %36, align 4, !tbaa !9
  %275 = load i32, ptr %35, align 4, !tbaa !9
  %276 = load i32, ptr %36, align 4, !tbaa !9
  %277 = icmp sge i32 %275, %276
  br i1 %277, label %278, label %280

278:                                              ; preds = %269
  %279 = load i32, ptr %35, align 4, !tbaa !9
  br label %282

280:                                              ; preds = %269
  %281 = load i32, ptr %36, align 4, !tbaa !9
  br label %282

282:                                              ; preds = %280, %278
  %283 = phi i32 [ %279, %278 ], [ %281, %280 ]
  store i32 %283, ptr %57, align 4, !tbaa !9
  %284 = getelementptr inbounds [1 x i32], ptr %54, i64 0, i64 0
  %285 = load ptr, ptr %17, align 8, !tbaa !5
  %286 = load ptr, ptr %18, align 8, !tbaa !5
  %287 = load i32, ptr %30, align 4, !tbaa !9
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds float, ptr %286, i64 %288
  %290 = load ptr, ptr %19, align 8, !tbaa !5
  %291 = load ptr, ptr %22, align 8, !tbaa !5
  %292 = load i32, ptr %32, align 4, !tbaa !9
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds float, ptr %291, i64 %293
  %295 = load ptr, ptr %23, align 8, !tbaa !5
  %296 = load ptr, ptr %24, align 8, !tbaa !5
  %297 = load i32, ptr %34, align 4, !tbaa !9
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds float, ptr %296, i64 %298
  %300 = load ptr, ptr %25, align 8, !tbaa !5
  %301 = load ptr, ptr %17, align 8, !tbaa !5
  %302 = load ptr, ptr %26, align 8, !tbaa !5
  %303 = getelementptr inbounds float, ptr %302, i64 1
  call void @strevc3_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %284, ptr noundef %285, ptr noundef %289, ptr noundef %290, ptr noundef %294, ptr noundef %295, ptr noundef %299, ptr noundef %300, ptr noundef %301, ptr noundef %46, ptr noundef %303, ptr noundef @c_n1, ptr noundef %43)
  %304 = load ptr, ptr %26, align 8, !tbaa !5
  %305 = getelementptr inbounds float, ptr %304, i64 1
  %306 = load float, ptr %305, align 4, !tbaa !11
  %307 = fptosi float %306 to i32
  store i32 %307, ptr %68, align 4, !tbaa !9
  %308 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %308, ptr %35, align 4, !tbaa !9
  %309 = load ptr, ptr %17, align 8, !tbaa !5
  %310 = load i32, ptr %309, align 4, !tbaa !9
  %311 = load i32, ptr %68, align 4, !tbaa !9
  %312 = add nsw i32 %310, %311
  store i32 %312, ptr %36, align 4, !tbaa !9
  %313 = load i32, ptr %35, align 4, !tbaa !9
  %314 = load i32, ptr %36, align 4, !tbaa !9
  %315 = icmp sge i32 %313, %314
  br i1 %315, label %316, label %318

316:                                              ; preds = %282
  %317 = load i32, ptr %35, align 4, !tbaa !9
  br label %320

318:                                              ; preds = %282
  %319 = load i32, ptr %36, align 4, !tbaa !9
  br label %320

320:                                              ; preds = %318, %316
  %321 = phi i32 [ %317, %316 ], [ %319, %318 ]
  store i32 %321, ptr %57, align 4, !tbaa !9
  %322 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %322, ptr %35, align 4, !tbaa !9
  %323 = load ptr, ptr %17, align 8, !tbaa !5
  %324 = load i32, ptr %323, align 4, !tbaa !9
  %325 = shl i32 %324, 2
  store i32 %325, ptr %36, align 4, !tbaa !9
  %326 = load i32, ptr %35, align 4, !tbaa !9
  %327 = load i32, ptr %36, align 4, !tbaa !9
  %328 = icmp sge i32 %326, %327
  br i1 %328, label %329, label %331

329:                                              ; preds = %320
  %330 = load i32, ptr %35, align 4, !tbaa !9
  br label %333

331:                                              ; preds = %320
  %332 = load i32, ptr %36, align 4, !tbaa !9
  br label %333

333:                                              ; preds = %331, %329
  %334 = phi i32 [ %330, %329 ], [ %332, %331 ]
  store i32 %334, ptr %57, align 4, !tbaa !9
  br label %517

335:                                              ; preds = %197
  %336 = load i32, ptr %62, align 4, !tbaa !9
  %337 = icmp ne i32 %336, 0
  br i1 %337, label %338, label %463

338:                                              ; preds = %335
  %339 = load ptr, ptr %17, align 8, !tbaa !5
  %340 = load i32, ptr %339, align 4, !tbaa !9
  %341 = shl i32 %340, 2
  store i32 %341, ptr %56, align 4, !tbaa !9
  %342 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %342, ptr %35, align 4, !tbaa !9
  %343 = load ptr, ptr %17, align 8, !tbaa !5
  %344 = load i32, ptr %343, align 4, !tbaa !9
  %345 = shl i32 %344, 1
  %346 = load ptr, ptr %17, align 8, !tbaa !5
  %347 = load i32, ptr %346, align 4, !tbaa !9
  %348 = sub nsw i32 %347, 1
  %349 = load ptr, ptr %17, align 8, !tbaa !5
  %350 = load ptr, ptr %17, align 8, !tbaa !5
  %351 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %349, ptr noundef @c__1, ptr noundef %350, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %352 = mul nsw i32 %348, %351
  %353 = add nsw i32 %345, %352
  store i32 %353, ptr %36, align 4, !tbaa !9
  %354 = load i32, ptr %35, align 4, !tbaa !9
  %355 = load i32, ptr %36, align 4, !tbaa !9
  %356 = icmp sge i32 %354, %355
  br i1 %356, label %357, label %359

357:                                              ; preds = %338
  %358 = load i32, ptr %35, align 4, !tbaa !9
  br label %361

359:                                              ; preds = %338
  %360 = load i32, ptr %36, align 4, !tbaa !9
  br label %361

361:                                              ; preds = %359, %357
  %362 = phi i32 [ %358, %357 ], [ %360, %359 ]
  store i32 %362, ptr %57, align 4, !tbaa !9
  %363 = load ptr, ptr %17, align 8, !tbaa !5
  %364 = load ptr, ptr %17, align 8, !tbaa !5
  %365 = load ptr, ptr %18, align 8, !tbaa !5
  %366 = load i32, ptr %30, align 4, !tbaa !9
  %367 = sext i32 %366 to i64
  %368 = getelementptr inbounds float, ptr %365, i64 %367
  %369 = load ptr, ptr %19, align 8, !tbaa !5
  %370 = load ptr, ptr %20, align 8, !tbaa !5
  %371 = getelementptr inbounds float, ptr %370, i64 1
  %372 = load ptr, ptr %21, align 8, !tbaa !5
  %373 = getelementptr inbounds float, ptr %372, i64 1
  %374 = load ptr, ptr %24, align 8, !tbaa !5
  %375 = load i32, ptr %34, align 4, !tbaa !9
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds float, ptr %374, i64 %376
  %378 = load ptr, ptr %25, align 8, !tbaa !5
  %379 = load ptr, ptr %26, align 8, !tbaa !5
  %380 = getelementptr inbounds float, ptr %379, i64 1
  %381 = load ptr, ptr %28, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.5, ptr noundef @.str, ptr noundef %363, ptr noundef @c__1, ptr noundef %364, ptr noundef %368, ptr noundef %369, ptr noundef %371, ptr noundef %373, ptr noundef %377, ptr noundef %378, ptr noundef %380, ptr noundef @c_n1, ptr noundef %381)
  %382 = load ptr, ptr %26, align 8, !tbaa !5
  %383 = getelementptr inbounds float, ptr %382, i64 1
  %384 = load float, ptr %383, align 4, !tbaa !11
  %385 = fptosi float %384 to i32
  store i32 %385, ptr %60, align 4, !tbaa !9
  %386 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %386, ptr %35, align 4, !tbaa !9
  %387 = load ptr, ptr %17, align 8, !tbaa !5
  %388 = load i32, ptr %387, align 4, !tbaa !9
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr %36, align 4, !tbaa !9
  %390 = load i32, ptr %35, align 4, !tbaa !9
  %391 = load i32, ptr %36, align 4, !tbaa !9
  %392 = icmp sge i32 %390, %391
  br i1 %392, label %393, label %395

393:                                              ; preds = %361
  %394 = load i32, ptr %35, align 4, !tbaa !9
  br label %397

395:                                              ; preds = %361
  %396 = load i32, ptr %36, align 4, !tbaa !9
  br label %397

397:                                              ; preds = %395, %393
  %398 = phi i32 [ %394, %393 ], [ %396, %395 ]
  store i32 %398, ptr %35, align 4, !tbaa !9
  %399 = load ptr, ptr %17, align 8, !tbaa !5
  %400 = load i32, ptr %399, align 4, !tbaa !9
  %401 = load i32, ptr %60, align 4, !tbaa !9
  %402 = add nsw i32 %400, %401
  store i32 %402, ptr %36, align 4, !tbaa !9
  %403 = load i32, ptr %35, align 4, !tbaa !9
  %404 = load i32, ptr %36, align 4, !tbaa !9
  %405 = icmp sge i32 %403, %404
  br i1 %405, label %406, label %408

406:                                              ; preds = %397
  %407 = load i32, ptr %35, align 4, !tbaa !9
  br label %410

408:                                              ; preds = %397
  %409 = load i32, ptr %36, align 4, !tbaa !9
  br label %410

410:                                              ; preds = %408, %406
  %411 = phi i32 [ %407, %406 ], [ %409, %408 ]
  store i32 %411, ptr %57, align 4, !tbaa !9
  %412 = getelementptr inbounds [1 x i32], ptr %54, i64 0, i64 0
  %413 = load ptr, ptr %17, align 8, !tbaa !5
  %414 = load ptr, ptr %18, align 8, !tbaa !5
  %415 = load i32, ptr %30, align 4, !tbaa !9
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds float, ptr %414, i64 %416
  %418 = load ptr, ptr %19, align 8, !tbaa !5
  %419 = load ptr, ptr %22, align 8, !tbaa !5
  %420 = load i32, ptr %32, align 4, !tbaa !9
  %421 = sext i32 %420 to i64
  %422 = getelementptr inbounds float, ptr %419, i64 %421
  %423 = load ptr, ptr %23, align 8, !tbaa !5
  %424 = load ptr, ptr %24, align 8, !tbaa !5
  %425 = load i32, ptr %34, align 4, !tbaa !9
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds float, ptr %424, i64 %426
  %428 = load ptr, ptr %25, align 8, !tbaa !5
  %429 = load ptr, ptr %17, align 8, !tbaa !5
  %430 = load ptr, ptr %26, align 8, !tbaa !5
  %431 = getelementptr inbounds float, ptr %430, i64 1
  call void @strevc3_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef %412, ptr noundef %413, ptr noundef %417, ptr noundef %418, ptr noundef %422, ptr noundef %423, ptr noundef %427, ptr noundef %428, ptr noundef %429, ptr noundef %46, ptr noundef %431, ptr noundef @c_n1, ptr noundef %43)
  %432 = load ptr, ptr %26, align 8, !tbaa !5
  %433 = getelementptr inbounds float, ptr %432, i64 1
  %434 = load float, ptr %433, align 4, !tbaa !11
  %435 = fptosi float %434 to i32
  store i32 %435, ptr %68, align 4, !tbaa !9
  %436 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %436, ptr %35, align 4, !tbaa !9
  %437 = load ptr, ptr %17, align 8, !tbaa !5
  %438 = load i32, ptr %437, align 4, !tbaa !9
  %439 = load i32, ptr %68, align 4, !tbaa !9
  %440 = add nsw i32 %438, %439
  store i32 %440, ptr %36, align 4, !tbaa !9
  %441 = load i32, ptr %35, align 4, !tbaa !9
  %442 = load i32, ptr %36, align 4, !tbaa !9
  %443 = icmp sge i32 %441, %442
  br i1 %443, label %444, label %446

444:                                              ; preds = %410
  %445 = load i32, ptr %35, align 4, !tbaa !9
  br label %448

446:                                              ; preds = %410
  %447 = load i32, ptr %36, align 4, !tbaa !9
  br label %448

448:                                              ; preds = %446, %444
  %449 = phi i32 [ %445, %444 ], [ %447, %446 ]
  store i32 %449, ptr %57, align 4, !tbaa !9
  %450 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %450, ptr %35, align 4, !tbaa !9
  %451 = load ptr, ptr %17, align 8, !tbaa !5
  %452 = load i32, ptr %451, align 4, !tbaa !9
  %453 = shl i32 %452, 2
  store i32 %453, ptr %36, align 4, !tbaa !9
  %454 = load i32, ptr %35, align 4, !tbaa !9
  %455 = load i32, ptr %36, align 4, !tbaa !9
  %456 = icmp sge i32 %454, %455
  br i1 %456, label %457, label %459

457:                                              ; preds = %448
  %458 = load i32, ptr %35, align 4, !tbaa !9
  br label %461

459:                                              ; preds = %448
  %460 = load i32, ptr %36, align 4, !tbaa !9
  br label %461

461:                                              ; preds = %459, %457
  %462 = phi i32 [ %458, %457 ], [ %460, %459 ]
  store i32 %462, ptr %57, align 4, !tbaa !9
  br label %516

463:                                              ; preds = %335
  %464 = load ptr, ptr %17, align 8, !tbaa !5
  %465 = load i32, ptr %464, align 4, !tbaa !9
  %466 = mul nsw i32 %465, 3
  store i32 %466, ptr %56, align 4, !tbaa !9
  %467 = load ptr, ptr %17, align 8, !tbaa !5
  %468 = load ptr, ptr %17, align 8, !tbaa !5
  %469 = load ptr, ptr %18, align 8, !tbaa !5
  %470 = load i32, ptr %30, align 4, !tbaa !9
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds float, ptr %469, i64 %471
  %473 = load ptr, ptr %19, align 8, !tbaa !5
  %474 = load ptr, ptr %20, align 8, !tbaa !5
  %475 = getelementptr inbounds float, ptr %474, i64 1
  %476 = load ptr, ptr %21, align 8, !tbaa !5
  %477 = getelementptr inbounds float, ptr %476, i64 1
  %478 = load ptr, ptr %24, align 8, !tbaa !5
  %479 = load i32, ptr %34, align 4, !tbaa !9
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds float, ptr %478, i64 %480
  %482 = load ptr, ptr %25, align 8, !tbaa !5
  %483 = load ptr, ptr %26, align 8, !tbaa !5
  %484 = getelementptr inbounds float, ptr %483, i64 1
  %485 = load ptr, ptr %28, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.9, ptr noundef @.str.1, ptr noundef %467, ptr noundef @c__1, ptr noundef %468, ptr noundef %472, ptr noundef %473, ptr noundef %475, ptr noundef %477, ptr noundef %481, ptr noundef %482, ptr noundef %484, ptr noundef @c_n1, ptr noundef %485)
  %486 = load ptr, ptr %26, align 8, !tbaa !5
  %487 = getelementptr inbounds float, ptr %486, i64 1
  %488 = load float, ptr %487, align 4, !tbaa !11
  %489 = fptosi float %488 to i32
  store i32 %489, ptr %60, align 4, !tbaa !9
  %490 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %490, ptr %35, align 4, !tbaa !9
  %491 = load ptr, ptr %17, align 8, !tbaa !5
  %492 = load i32, ptr %491, align 4, !tbaa !9
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr %36, align 4, !tbaa !9
  %494 = load i32, ptr %35, align 4, !tbaa !9
  %495 = load i32, ptr %36, align 4, !tbaa !9
  %496 = icmp sge i32 %494, %495
  br i1 %496, label %497, label %499

497:                                              ; preds = %463
  %498 = load i32, ptr %35, align 4, !tbaa !9
  br label %501

499:                                              ; preds = %463
  %500 = load i32, ptr %36, align 4, !tbaa !9
  br label %501

501:                                              ; preds = %499, %497
  %502 = phi i32 [ %498, %497 ], [ %500, %499 ]
  store i32 %502, ptr %35, align 4, !tbaa !9
  %503 = load ptr, ptr %17, align 8, !tbaa !5
  %504 = load i32, ptr %503, align 4, !tbaa !9
  %505 = load i32, ptr %60, align 4, !tbaa !9
  %506 = add nsw i32 %504, %505
  store i32 %506, ptr %36, align 4, !tbaa !9
  %507 = load i32, ptr %35, align 4, !tbaa !9
  %508 = load i32, ptr %36, align 4, !tbaa !9
  %509 = icmp sge i32 %507, %508
  br i1 %509, label %510, label %512

510:                                              ; preds = %501
  %511 = load i32, ptr %35, align 4, !tbaa !9
  br label %514

512:                                              ; preds = %501
  %513 = load i32, ptr %36, align 4, !tbaa !9
  br label %514

514:                                              ; preds = %512, %510
  %515 = phi i32 [ %511, %510 ], [ %513, %512 ]
  store i32 %515, ptr %57, align 4, !tbaa !9
  br label %516

516:                                              ; preds = %514, %461
  br label %517

517:                                              ; preds = %516, %333
  %518 = load i32, ptr %57, align 4, !tbaa !9
  %519 = load i32, ptr %56, align 4, !tbaa !9
  %520 = icmp sge i32 %518, %519
  br i1 %520, label %521, label %523

521:                                              ; preds = %517
  %522 = load i32, ptr %57, align 4, !tbaa !9
  br label %525

523:                                              ; preds = %517
  %524 = load i32, ptr %56, align 4, !tbaa !9
  br label %525

525:                                              ; preds = %523, %521
  %526 = phi i32 [ %522, %521 ], [ %524, %523 ]
  store i32 %526, ptr %57, align 4, !tbaa !9
  br label %527

527:                                              ; preds = %525, %196
  %528 = load i32, ptr %57, align 4, !tbaa !9
  %529 = sitofp i32 %528 to float
  %530 = load ptr, ptr %26, align 8, !tbaa !5
  %531 = getelementptr inbounds float, ptr %530, i64 1
  store float %529, ptr %531, align 4, !tbaa !11
  %532 = load ptr, ptr %27, align 8, !tbaa !5
  %533 = load i32, ptr %532, align 4, !tbaa !9
  %534 = load i32, ptr %56, align 4, !tbaa !9
  %535 = icmp slt i32 %533, %534
  br i1 %535, label %536, label %541

536:                                              ; preds = %527
  %537 = load i32, ptr %61, align 4, !tbaa !9
  %538 = icmp ne i32 %537, 0
  br i1 %538, label %541, label %539

539:                                              ; preds = %536
  %540 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -13, ptr %540, align 4, !tbaa !9
  br label %541

541:                                              ; preds = %539, %536, %527
  br label %542

542:                                              ; preds = %541, %188
  %543 = load ptr, ptr %28, align 8, !tbaa !5
  %544 = load i32, ptr %543, align 4, !tbaa !9
  %545 = icmp ne i32 %544, 0
  br i1 %545, label %546, label %551

546:                                              ; preds = %542
  %547 = load ptr, ptr %28, align 8, !tbaa !5
  %548 = load i32, ptr %547, align 4, !tbaa !9
  %549 = sub nsw i32 0, %548
  store i32 %549, ptr %35, align 4, !tbaa !9
  %550 = call i32 @xerbla_(ptr noundef @.str.10, ptr noundef %35, i32 noundef 5)
  store i32 1, ptr %69, align 4
  br label %1307

551:                                              ; preds = %542
  %552 = load i32, ptr %61, align 4, !tbaa !9
  %553 = icmp ne i32 %552, 0
  br i1 %553, label %554, label %555

554:                                              ; preds = %551
  store i32 1, ptr %69, align 4
  br label %1307

555:                                              ; preds = %551
  br label %556

556:                                              ; preds = %555
  %557 = load ptr, ptr %17, align 8, !tbaa !5
  %558 = load i32, ptr %557, align 4, !tbaa !9
  %559 = icmp eq i32 %558, 0
  br i1 %559, label %560, label %561

560:                                              ; preds = %556
  store i32 1, ptr %69, align 4
  br label %1307

561:                                              ; preds = %556
  %562 = call float @slamch_(ptr noundef @.str.11)
  store float %562, ptr %67, align 4, !tbaa !11
  %563 = call float @slamch_(ptr noundef @.str.5)
  store float %563, ptr %59, align 4, !tbaa !11
  %564 = load float, ptr %59, align 4, !tbaa !11
  %565 = fdiv float 1.000000e+00, %564
  store float %565, ptr %55, align 4, !tbaa !11
  call void @slabad_(ptr noundef %59, ptr noundef %55)
  %566 = load float, ptr %59, align 4, !tbaa !11
  %567 = fpext float %566 to double
  %568 = call double @sqrt(double noundef %567) #5
  %569 = load float, ptr %67, align 4, !tbaa !11
  %570 = fpext float %569 to double
  %571 = fdiv double %568, %570
  %572 = fptrunc double %571 to float
  store float %572, ptr %59, align 4, !tbaa !11
  %573 = load float, ptr %59, align 4, !tbaa !11
  %574 = fdiv float 1.000000e+00, %573
  store float %574, ptr %55, align 4, !tbaa !11
  %575 = load ptr, ptr %17, align 8, !tbaa !5
  %576 = load ptr, ptr %17, align 8, !tbaa !5
  %577 = load ptr, ptr %18, align 8, !tbaa !5
  %578 = load i32, ptr %30, align 4, !tbaa !9
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %577, i64 %579
  %581 = load ptr, ptr %19, align 8, !tbaa !5
  %582 = getelementptr inbounds [1 x float], ptr %66, i64 0, i64 0
  %583 = call float @slange_(ptr noundef @.str.12, ptr noundef %575, ptr noundef %576, ptr noundef %580, ptr noundef %581, ptr noundef %582)
  store float %583, ptr %42, align 4, !tbaa !11
  store i32 0, ptr %51, align 4, !tbaa !9
  %584 = load float, ptr %42, align 4, !tbaa !11
  %585 = fcmp ogt float %584, 0.000000e+00
  br i1 %585, label %586, label %592

586:                                              ; preds = %561
  %587 = load float, ptr %42, align 4, !tbaa !11
  %588 = load float, ptr %59, align 4, !tbaa !11
  %589 = fcmp olt float %587, %588
  br i1 %589, label %590, label %592

590:                                              ; preds = %586
  store i32 1, ptr %51, align 4, !tbaa !9
  %591 = load float, ptr %59, align 4, !tbaa !11
  store float %591, ptr %52, align 4, !tbaa !11
  br label %599

592:                                              ; preds = %586, %561
  %593 = load float, ptr %42, align 4, !tbaa !11
  %594 = load float, ptr %55, align 4, !tbaa !11
  %595 = fcmp ogt float %593, %594
  br i1 %595, label %596, label %598

596:                                              ; preds = %592
  store i32 1, ptr %51, align 4, !tbaa !9
  %597 = load float, ptr %55, align 4, !tbaa !11
  store float %597, ptr %52, align 4, !tbaa !11
  br label %598

598:                                              ; preds = %596, %592
  br label %599

599:                                              ; preds = %598, %590
  %600 = load i32, ptr %51, align 4, !tbaa !9
  %601 = icmp ne i32 %600, 0
  br i1 %601, label %602, label %610

602:                                              ; preds = %599
  %603 = load ptr, ptr %17, align 8, !tbaa !5
  %604 = load ptr, ptr %17, align 8, !tbaa !5
  %605 = load ptr, ptr %18, align 8, !tbaa !5
  %606 = load i32, ptr %30, align 4, !tbaa !9
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds float, ptr %605, i64 %607
  %609 = load ptr, ptr %19, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %42, ptr noundef %52, ptr noundef %603, ptr noundef %604, ptr noundef %608, ptr noundef %609, ptr noundef %43)
  br label %610

610:                                              ; preds = %602, %599
  store i32 1, ptr %40, align 4, !tbaa !9
  %611 = load ptr, ptr %17, align 8, !tbaa !5
  %612 = load ptr, ptr %18, align 8, !tbaa !5
  %613 = load i32, ptr %30, align 4, !tbaa !9
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds float, ptr %612, i64 %614
  %616 = load ptr, ptr %19, align 8, !tbaa !5
  %617 = load ptr, ptr %26, align 8, !tbaa !5
  %618 = load i32, ptr %40, align 4, !tbaa !9
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds float, ptr %617, i64 %619
  call void @sgebal_(ptr noundef @.str.7, ptr noundef %611, ptr noundef %615, ptr noundef %616, ptr noundef %65, ptr noundef %63, ptr noundef %620, ptr noundef %43)
  %621 = load i32, ptr %40, align 4, !tbaa !9
  %622 = load ptr, ptr %17, align 8, !tbaa !5
  %623 = load i32, ptr %622, align 4, !tbaa !9
  %624 = add nsw i32 %621, %623
  store i32 %624, ptr %44, align 4, !tbaa !9
  %625 = load i32, ptr %44, align 4, !tbaa !9
  %626 = load ptr, ptr %17, align 8, !tbaa !5
  %627 = load i32, ptr %626, align 4, !tbaa !9
  %628 = add nsw i32 %625, %627
  store i32 %628, ptr %45, align 4, !tbaa !9
  %629 = load ptr, ptr %27, align 8, !tbaa !5
  %630 = load i32, ptr %629, align 4, !tbaa !9
  %631 = load i32, ptr %45, align 4, !tbaa !9
  %632 = sub nsw i32 %630, %631
  %633 = add nsw i32 %632, 1
  store i32 %633, ptr %35, align 4, !tbaa !9
  %634 = load ptr, ptr %17, align 8, !tbaa !5
  %635 = load ptr, ptr %18, align 8, !tbaa !5
  %636 = load i32, ptr %30, align 4, !tbaa !9
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds float, ptr %635, i64 %637
  %639 = load ptr, ptr %19, align 8, !tbaa !5
  %640 = load ptr, ptr %26, align 8, !tbaa !5
  %641 = load i32, ptr %44, align 4, !tbaa !9
  %642 = sext i32 %641 to i64
  %643 = getelementptr inbounds float, ptr %640, i64 %642
  %644 = load ptr, ptr %26, align 8, !tbaa !5
  %645 = load i32, ptr %45, align 4, !tbaa !9
  %646 = sext i32 %645 to i64
  %647 = getelementptr inbounds float, ptr %644, i64 %646
  call void @sgehrd_(ptr noundef %634, ptr noundef %65, ptr noundef %63, ptr noundef %638, ptr noundef %639, ptr noundef %643, ptr noundef %647, ptr noundef %35, ptr noundef %43)
  %648 = load i32, ptr %58, align 4, !tbaa !9
  %649 = icmp ne i32 %648, 0
  br i1 %649, label %650, label %726

650:                                              ; preds = %610
  %651 = getelementptr inbounds [1 x i8], ptr %41, i64 0, i64 0
  store i8 76, ptr %651, align 1, !tbaa !13
  %652 = load ptr, ptr %17, align 8, !tbaa !5
  %653 = load ptr, ptr %17, align 8, !tbaa !5
  %654 = load ptr, ptr %18, align 8, !tbaa !5
  %655 = load i32, ptr %30, align 4, !tbaa !9
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds float, ptr %654, i64 %656
  %658 = load ptr, ptr %19, align 8, !tbaa !5
  %659 = load ptr, ptr %22, align 8, !tbaa !5
  %660 = load i32, ptr %32, align 4, !tbaa !9
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds float, ptr %659, i64 %661
  %663 = load ptr, ptr %23, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.6, ptr noundef %652, ptr noundef %653, ptr noundef %657, ptr noundef %658, ptr noundef %662, ptr noundef %663)
  %664 = load ptr, ptr %27, align 8, !tbaa !5
  %665 = load i32, ptr %664, align 4, !tbaa !9
  %666 = load i32, ptr %45, align 4, !tbaa !9
  %667 = sub nsw i32 %665, %666
  %668 = add nsw i32 %667, 1
  store i32 %668, ptr %35, align 4, !tbaa !9
  %669 = load ptr, ptr %17, align 8, !tbaa !5
  %670 = load ptr, ptr %22, align 8, !tbaa !5
  %671 = load i32, ptr %32, align 4, !tbaa !9
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds float, ptr %670, i64 %672
  %674 = load ptr, ptr %23, align 8, !tbaa !5
  %675 = load ptr, ptr %26, align 8, !tbaa !5
  %676 = load i32, ptr %44, align 4, !tbaa !9
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds float, ptr %675, i64 %677
  %679 = load ptr, ptr %26, align 8, !tbaa !5
  %680 = load i32, ptr %45, align 4, !tbaa !9
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds float, ptr %679, i64 %681
  call void @sorghr_(ptr noundef %669, ptr noundef %65, ptr noundef %63, ptr noundef %673, ptr noundef %674, ptr noundef %678, ptr noundef %682, ptr noundef %35, ptr noundef %43)
  %683 = load i32, ptr %44, align 4, !tbaa !9
  store i32 %683, ptr %45, align 4, !tbaa !9
  %684 = load ptr, ptr %27, align 8, !tbaa !5
  %685 = load i32, ptr %684, align 4, !tbaa !9
  %686 = load i32, ptr %45, align 4, !tbaa !9
  %687 = sub nsw i32 %685, %686
  %688 = add nsw i32 %687, 1
  store i32 %688, ptr %35, align 4, !tbaa !9
  %689 = load ptr, ptr %17, align 8, !tbaa !5
  %690 = load ptr, ptr %18, align 8, !tbaa !5
  %691 = load i32, ptr %30, align 4, !tbaa !9
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds float, ptr %690, i64 %692
  %694 = load ptr, ptr %19, align 8, !tbaa !5
  %695 = load ptr, ptr %20, align 8, !tbaa !5
  %696 = getelementptr inbounds float, ptr %695, i64 1
  %697 = load ptr, ptr %21, align 8, !tbaa !5
  %698 = getelementptr inbounds float, ptr %697, i64 1
  %699 = load ptr, ptr %22, align 8, !tbaa !5
  %700 = load i32, ptr %32, align 4, !tbaa !9
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds float, ptr %699, i64 %701
  %703 = load ptr, ptr %23, align 8, !tbaa !5
  %704 = load ptr, ptr %26, align 8, !tbaa !5
  %705 = load i32, ptr %45, align 4, !tbaa !9
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds float, ptr %704, i64 %706
  %708 = load ptr, ptr %28, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.5, ptr noundef @.str, ptr noundef %689, ptr noundef %65, ptr noundef %63, ptr noundef %693, ptr noundef %694, ptr noundef %696, ptr noundef %698, ptr noundef %702, ptr noundef %703, ptr noundef %707, ptr noundef %35, ptr noundef %708)
  %709 = load i32, ptr %62, align 4, !tbaa !9
  %710 = icmp ne i32 %709, 0
  br i1 %710, label %711, label %725

711:                                              ; preds = %650
  %712 = getelementptr inbounds [1 x i8], ptr %41, i64 0, i64 0
  store i8 66, ptr %712, align 1, !tbaa !13
  %713 = load ptr, ptr %17, align 8, !tbaa !5
  %714 = load ptr, ptr %17, align 8, !tbaa !5
  %715 = load ptr, ptr %22, align 8, !tbaa !5
  %716 = load i32, ptr %32, align 4, !tbaa !9
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds float, ptr %715, i64 %717
  %719 = load ptr, ptr %23, align 8, !tbaa !5
  %720 = load ptr, ptr %24, align 8, !tbaa !5
  %721 = load i32, ptr %34, align 4, !tbaa !9
  %722 = sext i32 %721 to i64
  %723 = getelementptr inbounds float, ptr %720, i64 %722
  %724 = load ptr, ptr %25, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.14, ptr noundef %713, ptr noundef %714, ptr noundef %718, ptr noundef %719, ptr noundef %723, ptr noundef %724)
  br label %725

725:                                              ; preds = %711, %650
  br label %816

726:                                              ; preds = %610
  %727 = load i32, ptr %62, align 4, !tbaa !9
  %728 = icmp ne i32 %727, 0
  br i1 %728, label %729, label %788

729:                                              ; preds = %726
  %730 = getelementptr inbounds [1 x i8], ptr %41, i64 0, i64 0
  store i8 82, ptr %730, align 1, !tbaa !13
  %731 = load ptr, ptr %17, align 8, !tbaa !5
  %732 = load ptr, ptr %17, align 8, !tbaa !5
  %733 = load ptr, ptr %18, align 8, !tbaa !5
  %734 = load i32, ptr %30, align 4, !tbaa !9
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds float, ptr %733, i64 %735
  %737 = load ptr, ptr %19, align 8, !tbaa !5
  %738 = load ptr, ptr %24, align 8, !tbaa !5
  %739 = load i32, ptr %34, align 4, !tbaa !9
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds float, ptr %738, i64 %740
  %742 = load ptr, ptr %25, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.6, ptr noundef %731, ptr noundef %732, ptr noundef %736, ptr noundef %737, ptr noundef %741, ptr noundef %742)
  %743 = load ptr, ptr %27, align 8, !tbaa !5
  %744 = load i32, ptr %743, align 4, !tbaa !9
  %745 = load i32, ptr %45, align 4, !tbaa !9
  %746 = sub nsw i32 %744, %745
  %747 = add nsw i32 %746, 1
  store i32 %747, ptr %35, align 4, !tbaa !9
  %748 = load ptr, ptr %17, align 8, !tbaa !5
  %749 = load ptr, ptr %24, align 8, !tbaa !5
  %750 = load i32, ptr %34, align 4, !tbaa !9
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds float, ptr %749, i64 %751
  %753 = load ptr, ptr %25, align 8, !tbaa !5
  %754 = load ptr, ptr %26, align 8, !tbaa !5
  %755 = load i32, ptr %44, align 4, !tbaa !9
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds float, ptr %754, i64 %756
  %758 = load ptr, ptr %26, align 8, !tbaa !5
  %759 = load i32, ptr %45, align 4, !tbaa !9
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds float, ptr %758, i64 %760
  call void @sorghr_(ptr noundef %748, ptr noundef %65, ptr noundef %63, ptr noundef %752, ptr noundef %753, ptr noundef %757, ptr noundef %761, ptr noundef %35, ptr noundef %43)
  %762 = load i32, ptr %44, align 4, !tbaa !9
  store i32 %762, ptr %45, align 4, !tbaa !9
  %763 = load ptr, ptr %27, align 8, !tbaa !5
  %764 = load i32, ptr %763, align 4, !tbaa !9
  %765 = load i32, ptr %45, align 4, !tbaa !9
  %766 = sub nsw i32 %764, %765
  %767 = add nsw i32 %766, 1
  store i32 %767, ptr %35, align 4, !tbaa !9
  %768 = load ptr, ptr %17, align 8, !tbaa !5
  %769 = load ptr, ptr %18, align 8, !tbaa !5
  %770 = load i32, ptr %30, align 4, !tbaa !9
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds float, ptr %769, i64 %771
  %773 = load ptr, ptr %19, align 8, !tbaa !5
  %774 = load ptr, ptr %20, align 8, !tbaa !5
  %775 = getelementptr inbounds float, ptr %774, i64 1
  %776 = load ptr, ptr %21, align 8, !tbaa !5
  %777 = getelementptr inbounds float, ptr %776, i64 1
  %778 = load ptr, ptr %24, align 8, !tbaa !5
  %779 = load i32, ptr %34, align 4, !tbaa !9
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds float, ptr %778, i64 %780
  %782 = load ptr, ptr %25, align 8, !tbaa !5
  %783 = load ptr, ptr %26, align 8, !tbaa !5
  %784 = load i32, ptr %45, align 4, !tbaa !9
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds float, ptr %783, i64 %785
  %787 = load ptr, ptr %28, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.5, ptr noundef @.str, ptr noundef %768, ptr noundef %65, ptr noundef %63, ptr noundef %772, ptr noundef %773, ptr noundef %775, ptr noundef %777, ptr noundef %781, ptr noundef %782, ptr noundef %786, ptr noundef %35, ptr noundef %787)
  br label %815

788:                                              ; preds = %726
  %789 = load i32, ptr %44, align 4, !tbaa !9
  store i32 %789, ptr %45, align 4, !tbaa !9
  %790 = load ptr, ptr %27, align 8, !tbaa !5
  %791 = load i32, ptr %790, align 4, !tbaa !9
  %792 = load i32, ptr %45, align 4, !tbaa !9
  %793 = sub nsw i32 %791, %792
  %794 = add nsw i32 %793, 1
  store i32 %794, ptr %35, align 4, !tbaa !9
  %795 = load ptr, ptr %17, align 8, !tbaa !5
  %796 = load ptr, ptr %18, align 8, !tbaa !5
  %797 = load i32, ptr %30, align 4, !tbaa !9
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds float, ptr %796, i64 %798
  %800 = load ptr, ptr %19, align 8, !tbaa !5
  %801 = load ptr, ptr %20, align 8, !tbaa !5
  %802 = getelementptr inbounds float, ptr %801, i64 1
  %803 = load ptr, ptr %21, align 8, !tbaa !5
  %804 = getelementptr inbounds float, ptr %803, i64 1
  %805 = load ptr, ptr %24, align 8, !tbaa !5
  %806 = load i32, ptr %34, align 4, !tbaa !9
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds float, ptr %805, i64 %807
  %809 = load ptr, ptr %25, align 8, !tbaa !5
  %810 = load ptr, ptr %26, align 8, !tbaa !5
  %811 = load i32, ptr %45, align 4, !tbaa !9
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds float, ptr %810, i64 %812
  %814 = load ptr, ptr %28, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.9, ptr noundef @.str.1, ptr noundef %795, ptr noundef %65, ptr noundef %63, ptr noundef %799, ptr noundef %800, ptr noundef %802, ptr noundef %804, ptr noundef %808, ptr noundef %809, ptr noundef %813, ptr noundef %35, ptr noundef %814)
  br label %815

815:                                              ; preds = %788, %729
  br label %816

816:                                              ; preds = %815, %725
  %817 = load ptr, ptr %28, align 8, !tbaa !5
  %818 = load i32, ptr %817, align 4, !tbaa !9
  %819 = icmp ne i32 %818, 0
  br i1 %819, label %820, label %821

820:                                              ; preds = %816
  br label %1237

821:                                              ; preds = %816
  %822 = load i32, ptr %58, align 4, !tbaa !9
  %823 = icmp ne i32 %822, 0
  br i1 %823, label %827, label %824

824:                                              ; preds = %821
  %825 = load i32, ptr %62, align 4, !tbaa !9
  %826 = icmp ne i32 %825, 0
  br i1 %826, label %827, label %856

827:                                              ; preds = %824, %821
  %828 = load ptr, ptr %27, align 8, !tbaa !5
  %829 = load i32, ptr %828, align 4, !tbaa !9
  %830 = load i32, ptr %45, align 4, !tbaa !9
  %831 = sub nsw i32 %829, %830
  %832 = add nsw i32 %831, 1
  store i32 %832, ptr %35, align 4, !tbaa !9
  %833 = getelementptr inbounds [1 x i8], ptr %41, i64 0, i64 0
  %834 = getelementptr inbounds [1 x i32], ptr %54, i64 0, i64 0
  %835 = load ptr, ptr %17, align 8, !tbaa !5
  %836 = load ptr, ptr %18, align 8, !tbaa !5
  %837 = load i32, ptr %30, align 4, !tbaa !9
  %838 = sext i32 %837 to i64
  %839 = getelementptr inbounds float, ptr %836, i64 %838
  %840 = load ptr, ptr %19, align 8, !tbaa !5
  %841 = load ptr, ptr %22, align 8, !tbaa !5
  %842 = load i32, ptr %32, align 4, !tbaa !9
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds float, ptr %841, i64 %843
  %845 = load ptr, ptr %23, align 8, !tbaa !5
  %846 = load ptr, ptr %24, align 8, !tbaa !5
  %847 = load i32, ptr %34, align 4, !tbaa !9
  %848 = sext i32 %847 to i64
  %849 = getelementptr inbounds float, ptr %846, i64 %848
  %850 = load ptr, ptr %25, align 8, !tbaa !5
  %851 = load ptr, ptr %17, align 8, !tbaa !5
  %852 = load ptr, ptr %26, align 8, !tbaa !5
  %853 = load i32, ptr %45, align 4, !tbaa !9
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds float, ptr %852, i64 %854
  call void @strevc3_(ptr noundef %833, ptr noundef @.str.7, ptr noundef %834, ptr noundef %835, ptr noundef %839, ptr noundef %840, ptr noundef %844, ptr noundef %845, ptr noundef %849, ptr noundef %850, ptr noundef %851, ptr noundef %46, ptr noundef %855, ptr noundef %35, ptr noundef %43)
  br label %856

856:                                              ; preds = %827, %824
  %857 = load i32, ptr %58, align 4, !tbaa !9
  %858 = icmp ne i32 %857, 0
  br i1 %858, label %859, label %1046

859:                                              ; preds = %856
  %860 = load ptr, ptr %17, align 8, !tbaa !5
  %861 = load ptr, ptr %26, align 8, !tbaa !5
  %862 = load i32, ptr %40, align 4, !tbaa !9
  %863 = sext i32 %862 to i64
  %864 = getelementptr inbounds float, ptr %861, i64 %863
  %865 = load ptr, ptr %17, align 8, !tbaa !5
  %866 = load ptr, ptr %22, align 8, !tbaa !5
  %867 = load i32, ptr %32, align 4, !tbaa !9
  %868 = sext i32 %867 to i64
  %869 = getelementptr inbounds float, ptr %866, i64 %868
  %870 = load ptr, ptr %23, align 8, !tbaa !5
  call void @sgebak_(ptr noundef @.str.7, ptr noundef @.str.6, ptr noundef %860, ptr noundef %65, ptr noundef %63, ptr noundef %864, ptr noundef %865, ptr noundef %869, ptr noundef %870, ptr noundef %43)
  %871 = load ptr, ptr %17, align 8, !tbaa !5
  %872 = load i32, ptr %871, align 4, !tbaa !9
  store i32 %872, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %47, align 4, !tbaa !9
  br label %873

873:                                              ; preds = %1042, %859
  %874 = load i32, ptr %47, align 4, !tbaa !9
  %875 = load i32, ptr %35, align 4, !tbaa !9
  %876 = icmp sle i32 %874, %875
  br i1 %876, label %877, label %1045

877:                                              ; preds = %873
  %878 = load ptr, ptr %21, align 8, !tbaa !5
  %879 = load i32, ptr %47, align 4, !tbaa !9
  %880 = sext i32 %879 to i64
  %881 = getelementptr inbounds float, ptr %878, i64 %880
  %882 = load float, ptr %881, align 4, !tbaa !11
  %883 = fcmp oeq float %882, 0.000000e+00
  br i1 %883, label %884, label %903

884:                                              ; preds = %877
  %885 = load ptr, ptr %17, align 8, !tbaa !5
  %886 = load ptr, ptr %22, align 8, !tbaa !5
  %887 = load i32, ptr %47, align 4, !tbaa !9
  %888 = load i32, ptr %31, align 4, !tbaa !9
  %889 = mul nsw i32 %887, %888
  %890 = add nsw i32 %889, 1
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds float, ptr %886, i64 %891
  %893 = call float @snrm2_(ptr noundef %885, ptr noundef %892, ptr noundef @c__1)
  %894 = fdiv float 1.000000e+00, %893
  store float %894, ptr %64, align 4, !tbaa !11
  %895 = load ptr, ptr %17, align 8, !tbaa !5
  %896 = load ptr, ptr %22, align 8, !tbaa !5
  %897 = load i32, ptr %47, align 4, !tbaa !9
  %898 = load i32, ptr %31, align 4, !tbaa !9
  %899 = mul nsw i32 %897, %898
  %900 = add nsw i32 %899, 1
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds float, ptr %896, i64 %901
  call void @sscal_(ptr noundef %895, ptr noundef %64, ptr noundef %902, ptr noundef @c__1)
  br label %1041

903:                                              ; preds = %877
  %904 = load ptr, ptr %21, align 8, !tbaa !5
  %905 = load i32, ptr %47, align 4, !tbaa !9
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds float, ptr %904, i64 %906
  %908 = load float, ptr %907, align 4, !tbaa !11
  %909 = fcmp ogt float %908, 0.000000e+00
  br i1 %909, label %910, label %1040

910:                                              ; preds = %903
  %911 = load ptr, ptr %17, align 8, !tbaa !5
  %912 = load ptr, ptr %22, align 8, !tbaa !5
  %913 = load i32, ptr %47, align 4, !tbaa !9
  %914 = load i32, ptr %31, align 4, !tbaa !9
  %915 = mul nsw i32 %913, %914
  %916 = add nsw i32 %915, 1
  %917 = sext i32 %916 to i64
  %918 = getelementptr inbounds float, ptr %912, i64 %917
  %919 = call float @snrm2_(ptr noundef %911, ptr noundef %918, ptr noundef @c__1)
  store float %919, ptr %38, align 4, !tbaa !11
  %920 = load ptr, ptr %17, align 8, !tbaa !5
  %921 = load ptr, ptr %22, align 8, !tbaa !5
  %922 = load i32, ptr %47, align 4, !tbaa !9
  %923 = add nsw i32 %922, 1
  %924 = load i32, ptr %31, align 4, !tbaa !9
  %925 = mul nsw i32 %923, %924
  %926 = add nsw i32 %925, 1
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds float, ptr %921, i64 %927
  %929 = call float @snrm2_(ptr noundef %920, ptr noundef %928, ptr noundef @c__1)
  store float %929, ptr %39, align 4, !tbaa !11
  %930 = call float @slapy2_(ptr noundef %38, ptr noundef %39)
  %931 = fdiv float 1.000000e+00, %930
  store float %931, ptr %64, align 4, !tbaa !11
  %932 = load ptr, ptr %17, align 8, !tbaa !5
  %933 = load ptr, ptr %22, align 8, !tbaa !5
  %934 = load i32, ptr %47, align 4, !tbaa !9
  %935 = load i32, ptr %31, align 4, !tbaa !9
  %936 = mul nsw i32 %934, %935
  %937 = add nsw i32 %936, 1
  %938 = sext i32 %937 to i64
  %939 = getelementptr inbounds float, ptr %933, i64 %938
  call void @sscal_(ptr noundef %932, ptr noundef %64, ptr noundef %939, ptr noundef @c__1)
  %940 = load ptr, ptr %17, align 8, !tbaa !5
  %941 = load ptr, ptr %22, align 8, !tbaa !5
  %942 = load i32, ptr %47, align 4, !tbaa !9
  %943 = add nsw i32 %942, 1
  %944 = load i32, ptr %31, align 4, !tbaa !9
  %945 = mul nsw i32 %943, %944
  %946 = add nsw i32 %945, 1
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds float, ptr %941, i64 %947
  call void @sscal_(ptr noundef %940, ptr noundef %64, ptr noundef %948, ptr noundef @c__1)
  %949 = load ptr, ptr %17, align 8, !tbaa !5
  %950 = load i32, ptr %949, align 4, !tbaa !9
  store i32 %950, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %48, align 4, !tbaa !9
  br label %951

951:                                              ; preds = %988, %910
  %952 = load i32, ptr %48, align 4, !tbaa !9
  %953 = load i32, ptr %36, align 4, !tbaa !9
  %954 = icmp sle i32 %952, %953
  br i1 %954, label %955, label %991

955:                                              ; preds = %951
  %956 = load ptr, ptr %22, align 8, !tbaa !5
  %957 = load i32, ptr %48, align 4, !tbaa !9
  %958 = load i32, ptr %47, align 4, !tbaa !9
  %959 = load i32, ptr %31, align 4, !tbaa !9
  %960 = mul nsw i32 %958, %959
  %961 = add nsw i32 %957, %960
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds float, ptr %956, i64 %962
  %964 = load float, ptr %963, align 4, !tbaa !11
  store float %964, ptr %38, align 4, !tbaa !11
  %965 = load ptr, ptr %22, align 8, !tbaa !5
  %966 = load i32, ptr %48, align 4, !tbaa !9
  %967 = load i32, ptr %47, align 4, !tbaa !9
  %968 = add nsw i32 %967, 1
  %969 = load i32, ptr %31, align 4, !tbaa !9
  %970 = mul nsw i32 %968, %969
  %971 = add nsw i32 %966, %970
  %972 = sext i32 %971 to i64
  %973 = getelementptr inbounds float, ptr %965, i64 %972
  %974 = load float, ptr %973, align 4, !tbaa !11
  store float %974, ptr %39, align 4, !tbaa !11
  %975 = load float, ptr %38, align 4, !tbaa !11
  %976 = load float, ptr %38, align 4, !tbaa !11
  %977 = load float, ptr %39, align 4, !tbaa !11
  %978 = load float, ptr %39, align 4, !tbaa !11
  %979 = fmul float %977, %978
  %980 = call float @llvm.fmuladd.f32(float %975, float %976, float %979)
  %981 = load ptr, ptr %26, align 8, !tbaa !5
  %982 = load i32, ptr %45, align 4, !tbaa !9
  %983 = load i32, ptr %48, align 4, !tbaa !9
  %984 = add nsw i32 %982, %983
  %985 = sub nsw i32 %984, 1
  %986 = sext i32 %985 to i64
  %987 = getelementptr inbounds float, ptr %981, i64 %986
  store float %980, ptr %987, align 4, !tbaa !11
  br label %988

988:                                              ; preds = %955
  %989 = load i32, ptr %48, align 4, !tbaa !9
  %990 = add nsw i32 %989, 1
  store i32 %990, ptr %48, align 4, !tbaa !9
  br label %951, !llvm.loop !14

991:                                              ; preds = %951
  %992 = load ptr, ptr %17, align 8, !tbaa !5
  %993 = load ptr, ptr %26, align 8, !tbaa !5
  %994 = load i32, ptr %45, align 4, !tbaa !9
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds float, ptr %993, i64 %995
  %997 = call i32 @isamax_(ptr noundef %992, ptr noundef %996, ptr noundef @c__1)
  store i32 %997, ptr %48, align 4, !tbaa !9
  %998 = load ptr, ptr %22, align 8, !tbaa !5
  %999 = load i32, ptr %48, align 4, !tbaa !9
  %1000 = load i32, ptr %47, align 4, !tbaa !9
  %1001 = load i32, ptr %31, align 4, !tbaa !9
  %1002 = mul nsw i32 %1000, %1001
  %1003 = add nsw i32 %999, %1002
  %1004 = sext i32 %1003 to i64
  %1005 = getelementptr inbounds float, ptr %998, i64 %1004
  %1006 = load ptr, ptr %22, align 8, !tbaa !5
  %1007 = load i32, ptr %48, align 4, !tbaa !9
  %1008 = load i32, ptr %47, align 4, !tbaa !9
  %1009 = add nsw i32 %1008, 1
  %1010 = load i32, ptr %31, align 4, !tbaa !9
  %1011 = mul nsw i32 %1009, %1010
  %1012 = add nsw i32 %1007, %1011
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds float, ptr %1006, i64 %1013
  call void @slartg_(ptr noundef %1005, ptr noundef %1014, ptr noundef %50, ptr noundef %53, ptr noundef %49)
  %1015 = load ptr, ptr %17, align 8, !tbaa !5
  %1016 = load ptr, ptr %22, align 8, !tbaa !5
  %1017 = load i32, ptr %47, align 4, !tbaa !9
  %1018 = load i32, ptr %31, align 4, !tbaa !9
  %1019 = mul nsw i32 %1017, %1018
  %1020 = add nsw i32 %1019, 1
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds float, ptr %1016, i64 %1021
  %1023 = load ptr, ptr %22, align 8, !tbaa !5
  %1024 = load i32, ptr %47, align 4, !tbaa !9
  %1025 = add nsw i32 %1024, 1
  %1026 = load i32, ptr %31, align 4, !tbaa !9
  %1027 = mul nsw i32 %1025, %1026
  %1028 = add nsw i32 %1027, 1
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds float, ptr %1023, i64 %1029
  call void @srot_(ptr noundef %1015, ptr noundef %1022, ptr noundef @c__1, ptr noundef %1030, ptr noundef @c__1, ptr noundef %50, ptr noundef %53)
  %1031 = load ptr, ptr %22, align 8, !tbaa !5
  %1032 = load i32, ptr %48, align 4, !tbaa !9
  %1033 = load i32, ptr %47, align 4, !tbaa !9
  %1034 = add nsw i32 %1033, 1
  %1035 = load i32, ptr %31, align 4, !tbaa !9
  %1036 = mul nsw i32 %1034, %1035
  %1037 = add nsw i32 %1032, %1036
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds float, ptr %1031, i64 %1038
  store float 0.000000e+00, ptr %1039, align 4, !tbaa !11
  br label %1040

1040:                                             ; preds = %991, %903
  br label %1041

1041:                                             ; preds = %1040, %884
  br label %1042

1042:                                             ; preds = %1041
  %1043 = load i32, ptr %47, align 4, !tbaa !9
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr %47, align 4, !tbaa !9
  br label %873, !llvm.loop !16

1045:                                             ; preds = %873
  br label %1046

1046:                                             ; preds = %1045, %856
  %1047 = load i32, ptr %62, align 4, !tbaa !9
  %1048 = icmp ne i32 %1047, 0
  br i1 %1048, label %1049, label %1236

1049:                                             ; preds = %1046
  %1050 = load ptr, ptr %17, align 8, !tbaa !5
  %1051 = load ptr, ptr %26, align 8, !tbaa !5
  %1052 = load i32, ptr %40, align 4, !tbaa !9
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds float, ptr %1051, i64 %1053
  %1055 = load ptr, ptr %17, align 8, !tbaa !5
  %1056 = load ptr, ptr %24, align 8, !tbaa !5
  %1057 = load i32, ptr %34, align 4, !tbaa !9
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds float, ptr %1056, i64 %1058
  %1060 = load ptr, ptr %25, align 8, !tbaa !5
  call void @sgebak_(ptr noundef @.str.7, ptr noundef @.str.8, ptr noundef %1050, ptr noundef %65, ptr noundef %63, ptr noundef %1054, ptr noundef %1055, ptr noundef %1059, ptr noundef %1060, ptr noundef %43)
  %1061 = load ptr, ptr %17, align 8, !tbaa !5
  %1062 = load i32, ptr %1061, align 4, !tbaa !9
  store i32 %1062, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %47, align 4, !tbaa !9
  br label %1063

1063:                                             ; preds = %1232, %1049
  %1064 = load i32, ptr %47, align 4, !tbaa !9
  %1065 = load i32, ptr %35, align 4, !tbaa !9
  %1066 = icmp sle i32 %1064, %1065
  br i1 %1066, label %1067, label %1235

1067:                                             ; preds = %1063
  %1068 = load ptr, ptr %21, align 8, !tbaa !5
  %1069 = load i32, ptr %47, align 4, !tbaa !9
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds float, ptr %1068, i64 %1070
  %1072 = load float, ptr %1071, align 4, !tbaa !11
  %1073 = fcmp oeq float %1072, 0.000000e+00
  br i1 %1073, label %1074, label %1093

1074:                                             ; preds = %1067
  %1075 = load ptr, ptr %17, align 8, !tbaa !5
  %1076 = load ptr, ptr %24, align 8, !tbaa !5
  %1077 = load i32, ptr %47, align 4, !tbaa !9
  %1078 = load i32, ptr %33, align 4, !tbaa !9
  %1079 = mul nsw i32 %1077, %1078
  %1080 = add nsw i32 %1079, 1
  %1081 = sext i32 %1080 to i64
  %1082 = getelementptr inbounds float, ptr %1076, i64 %1081
  %1083 = call float @snrm2_(ptr noundef %1075, ptr noundef %1082, ptr noundef @c__1)
  %1084 = fdiv float 1.000000e+00, %1083
  store float %1084, ptr %64, align 4, !tbaa !11
  %1085 = load ptr, ptr %17, align 8, !tbaa !5
  %1086 = load ptr, ptr %24, align 8, !tbaa !5
  %1087 = load i32, ptr %47, align 4, !tbaa !9
  %1088 = load i32, ptr %33, align 4, !tbaa !9
  %1089 = mul nsw i32 %1087, %1088
  %1090 = add nsw i32 %1089, 1
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds float, ptr %1086, i64 %1091
  call void @sscal_(ptr noundef %1085, ptr noundef %64, ptr noundef %1092, ptr noundef @c__1)
  br label %1231

1093:                                             ; preds = %1067
  %1094 = load ptr, ptr %21, align 8, !tbaa !5
  %1095 = load i32, ptr %47, align 4, !tbaa !9
  %1096 = sext i32 %1095 to i64
  %1097 = getelementptr inbounds float, ptr %1094, i64 %1096
  %1098 = load float, ptr %1097, align 4, !tbaa !11
  %1099 = fcmp ogt float %1098, 0.000000e+00
  br i1 %1099, label %1100, label %1230

1100:                                             ; preds = %1093
  %1101 = load ptr, ptr %17, align 8, !tbaa !5
  %1102 = load ptr, ptr %24, align 8, !tbaa !5
  %1103 = load i32, ptr %47, align 4, !tbaa !9
  %1104 = load i32, ptr %33, align 4, !tbaa !9
  %1105 = mul nsw i32 %1103, %1104
  %1106 = add nsw i32 %1105, 1
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds float, ptr %1102, i64 %1107
  %1109 = call float @snrm2_(ptr noundef %1101, ptr noundef %1108, ptr noundef @c__1)
  store float %1109, ptr %38, align 4, !tbaa !11
  %1110 = load ptr, ptr %17, align 8, !tbaa !5
  %1111 = load ptr, ptr %24, align 8, !tbaa !5
  %1112 = load i32, ptr %47, align 4, !tbaa !9
  %1113 = add nsw i32 %1112, 1
  %1114 = load i32, ptr %33, align 4, !tbaa !9
  %1115 = mul nsw i32 %1113, %1114
  %1116 = add nsw i32 %1115, 1
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds float, ptr %1111, i64 %1117
  %1119 = call float @snrm2_(ptr noundef %1110, ptr noundef %1118, ptr noundef @c__1)
  store float %1119, ptr %39, align 4, !tbaa !11
  %1120 = call float @slapy2_(ptr noundef %38, ptr noundef %39)
  %1121 = fdiv float 1.000000e+00, %1120
  store float %1121, ptr %64, align 4, !tbaa !11
  %1122 = load ptr, ptr %17, align 8, !tbaa !5
  %1123 = load ptr, ptr %24, align 8, !tbaa !5
  %1124 = load i32, ptr %47, align 4, !tbaa !9
  %1125 = load i32, ptr %33, align 4, !tbaa !9
  %1126 = mul nsw i32 %1124, %1125
  %1127 = add nsw i32 %1126, 1
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds float, ptr %1123, i64 %1128
  call void @sscal_(ptr noundef %1122, ptr noundef %64, ptr noundef %1129, ptr noundef @c__1)
  %1130 = load ptr, ptr %17, align 8, !tbaa !5
  %1131 = load ptr, ptr %24, align 8, !tbaa !5
  %1132 = load i32, ptr %47, align 4, !tbaa !9
  %1133 = add nsw i32 %1132, 1
  %1134 = load i32, ptr %33, align 4, !tbaa !9
  %1135 = mul nsw i32 %1133, %1134
  %1136 = add nsw i32 %1135, 1
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds float, ptr %1131, i64 %1137
  call void @sscal_(ptr noundef %1130, ptr noundef %64, ptr noundef %1138, ptr noundef @c__1)
  %1139 = load ptr, ptr %17, align 8, !tbaa !5
  %1140 = load i32, ptr %1139, align 4, !tbaa !9
  store i32 %1140, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %48, align 4, !tbaa !9
  br label %1141

1141:                                             ; preds = %1178, %1100
  %1142 = load i32, ptr %48, align 4, !tbaa !9
  %1143 = load i32, ptr %36, align 4, !tbaa !9
  %1144 = icmp sle i32 %1142, %1143
  br i1 %1144, label %1145, label %1181

1145:                                             ; preds = %1141
  %1146 = load ptr, ptr %24, align 8, !tbaa !5
  %1147 = load i32, ptr %48, align 4, !tbaa !9
  %1148 = load i32, ptr %47, align 4, !tbaa !9
  %1149 = load i32, ptr %33, align 4, !tbaa !9
  %1150 = mul nsw i32 %1148, %1149
  %1151 = add nsw i32 %1147, %1150
  %1152 = sext i32 %1151 to i64
  %1153 = getelementptr inbounds float, ptr %1146, i64 %1152
  %1154 = load float, ptr %1153, align 4, !tbaa !11
  store float %1154, ptr %38, align 4, !tbaa !11
  %1155 = load ptr, ptr %24, align 8, !tbaa !5
  %1156 = load i32, ptr %48, align 4, !tbaa !9
  %1157 = load i32, ptr %47, align 4, !tbaa !9
  %1158 = add nsw i32 %1157, 1
  %1159 = load i32, ptr %33, align 4, !tbaa !9
  %1160 = mul nsw i32 %1158, %1159
  %1161 = add nsw i32 %1156, %1160
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds float, ptr %1155, i64 %1162
  %1164 = load float, ptr %1163, align 4, !tbaa !11
  store float %1164, ptr %39, align 4, !tbaa !11
  %1165 = load float, ptr %38, align 4, !tbaa !11
  %1166 = load float, ptr %38, align 4, !tbaa !11
  %1167 = load float, ptr %39, align 4, !tbaa !11
  %1168 = load float, ptr %39, align 4, !tbaa !11
  %1169 = fmul float %1167, %1168
  %1170 = call float @llvm.fmuladd.f32(float %1165, float %1166, float %1169)
  %1171 = load ptr, ptr %26, align 8, !tbaa !5
  %1172 = load i32, ptr %45, align 4, !tbaa !9
  %1173 = load i32, ptr %48, align 4, !tbaa !9
  %1174 = add nsw i32 %1172, %1173
  %1175 = sub nsw i32 %1174, 1
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds float, ptr %1171, i64 %1176
  store float %1170, ptr %1177, align 4, !tbaa !11
  br label %1178

1178:                                             ; preds = %1145
  %1179 = load i32, ptr %48, align 4, !tbaa !9
  %1180 = add nsw i32 %1179, 1
  store i32 %1180, ptr %48, align 4, !tbaa !9
  br label %1141, !llvm.loop !17

1181:                                             ; preds = %1141
  %1182 = load ptr, ptr %17, align 8, !tbaa !5
  %1183 = load ptr, ptr %26, align 8, !tbaa !5
  %1184 = load i32, ptr %45, align 4, !tbaa !9
  %1185 = sext i32 %1184 to i64
  %1186 = getelementptr inbounds float, ptr %1183, i64 %1185
  %1187 = call i32 @isamax_(ptr noundef %1182, ptr noundef %1186, ptr noundef @c__1)
  store i32 %1187, ptr %48, align 4, !tbaa !9
  %1188 = load ptr, ptr %24, align 8, !tbaa !5
  %1189 = load i32, ptr %48, align 4, !tbaa !9
  %1190 = load i32, ptr %47, align 4, !tbaa !9
  %1191 = load i32, ptr %33, align 4, !tbaa !9
  %1192 = mul nsw i32 %1190, %1191
  %1193 = add nsw i32 %1189, %1192
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds float, ptr %1188, i64 %1194
  %1196 = load ptr, ptr %24, align 8, !tbaa !5
  %1197 = load i32, ptr %48, align 4, !tbaa !9
  %1198 = load i32, ptr %47, align 4, !tbaa !9
  %1199 = add nsw i32 %1198, 1
  %1200 = load i32, ptr %33, align 4, !tbaa !9
  %1201 = mul nsw i32 %1199, %1200
  %1202 = add nsw i32 %1197, %1201
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds float, ptr %1196, i64 %1203
  call void @slartg_(ptr noundef %1195, ptr noundef %1204, ptr noundef %50, ptr noundef %53, ptr noundef %49)
  %1205 = load ptr, ptr %17, align 8, !tbaa !5
  %1206 = load ptr, ptr %24, align 8, !tbaa !5
  %1207 = load i32, ptr %47, align 4, !tbaa !9
  %1208 = load i32, ptr %33, align 4, !tbaa !9
  %1209 = mul nsw i32 %1207, %1208
  %1210 = add nsw i32 %1209, 1
  %1211 = sext i32 %1210 to i64
  %1212 = getelementptr inbounds float, ptr %1206, i64 %1211
  %1213 = load ptr, ptr %24, align 8, !tbaa !5
  %1214 = load i32, ptr %47, align 4, !tbaa !9
  %1215 = add nsw i32 %1214, 1
  %1216 = load i32, ptr %33, align 4, !tbaa !9
  %1217 = mul nsw i32 %1215, %1216
  %1218 = add nsw i32 %1217, 1
  %1219 = sext i32 %1218 to i64
  %1220 = getelementptr inbounds float, ptr %1213, i64 %1219
  call void @srot_(ptr noundef %1205, ptr noundef %1212, ptr noundef @c__1, ptr noundef %1220, ptr noundef @c__1, ptr noundef %50, ptr noundef %53)
  %1221 = load ptr, ptr %24, align 8, !tbaa !5
  %1222 = load i32, ptr %48, align 4, !tbaa !9
  %1223 = load i32, ptr %47, align 4, !tbaa !9
  %1224 = add nsw i32 %1223, 1
  %1225 = load i32, ptr %33, align 4, !tbaa !9
  %1226 = mul nsw i32 %1224, %1225
  %1227 = add nsw i32 %1222, %1226
  %1228 = sext i32 %1227 to i64
  %1229 = getelementptr inbounds float, ptr %1221, i64 %1228
  store float 0.000000e+00, ptr %1229, align 4, !tbaa !11
  br label %1230

1230:                                             ; preds = %1181, %1093
  br label %1231

1231:                                             ; preds = %1230, %1074
  br label %1232

1232:                                             ; preds = %1231
  %1233 = load i32, ptr %47, align 4, !tbaa !9
  %1234 = add nsw i32 %1233, 1
  store i32 %1234, ptr %47, align 4, !tbaa !9
  br label %1063, !llvm.loop !18

1235:                                             ; preds = %1063
  br label %1236

1236:                                             ; preds = %1235, %1046
  br label %1237

1237:                                             ; preds = %1236, %820
  %1238 = load i32, ptr %51, align 4, !tbaa !9
  %1239 = icmp ne i32 %1238, 0
  br i1 %1239, label %1240, label %1302

1240:                                             ; preds = %1237
  %1241 = load ptr, ptr %17, align 8, !tbaa !5
  %1242 = load i32, ptr %1241, align 4, !tbaa !9
  %1243 = load ptr, ptr %28, align 8, !tbaa !5
  %1244 = load i32, ptr %1243, align 4, !tbaa !9
  %1245 = sub nsw i32 %1242, %1244
  store i32 %1245, ptr %35, align 4, !tbaa !9
  %1246 = load ptr, ptr %17, align 8, !tbaa !5
  %1247 = load i32, ptr %1246, align 4, !tbaa !9
  %1248 = load ptr, ptr %28, align 8, !tbaa !5
  %1249 = load i32, ptr %1248, align 4, !tbaa !9
  %1250 = sub nsw i32 %1247, %1249
  store i32 %1250, ptr %37, align 4, !tbaa !9
  %1251 = load i32, ptr %37, align 4, !tbaa !9
  %1252 = icmp sge i32 %1251, 1
  br i1 %1252, label %1253, label %1255

1253:                                             ; preds = %1240
  %1254 = load i32, ptr %37, align 4, !tbaa !9
  br label %1256

1255:                                             ; preds = %1240
  br label %1256

1256:                                             ; preds = %1255, %1253
  %1257 = phi i32 [ %1254, %1253 ], [ 1, %1255 ]
  store i32 %1257, ptr %36, align 4, !tbaa !9
  %1258 = load ptr, ptr %20, align 8, !tbaa !5
  %1259 = load ptr, ptr %28, align 8, !tbaa !5
  %1260 = load i32, ptr %1259, align 4, !tbaa !9
  %1261 = add nsw i32 %1260, 1
  %1262 = sext i32 %1261 to i64
  %1263 = getelementptr inbounds float, ptr %1258, i64 %1262
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %52, ptr noundef %42, ptr noundef %35, ptr noundef @c__1, ptr noundef %1263, ptr noundef %36, ptr noundef %43)
  %1264 = load ptr, ptr %17, align 8, !tbaa !5
  %1265 = load i32, ptr %1264, align 4, !tbaa !9
  %1266 = load ptr, ptr %28, align 8, !tbaa !5
  %1267 = load i32, ptr %1266, align 4, !tbaa !9
  %1268 = sub nsw i32 %1265, %1267
  store i32 %1268, ptr %35, align 4, !tbaa !9
  %1269 = load ptr, ptr %17, align 8, !tbaa !5
  %1270 = load i32, ptr %1269, align 4, !tbaa !9
  %1271 = load ptr, ptr %28, align 8, !tbaa !5
  %1272 = load i32, ptr %1271, align 4, !tbaa !9
  %1273 = sub nsw i32 %1270, %1272
  store i32 %1273, ptr %37, align 4, !tbaa !9
  %1274 = load i32, ptr %37, align 4, !tbaa !9
  %1275 = icmp sge i32 %1274, 1
  br i1 %1275, label %1276, label %1278

1276:                                             ; preds = %1256
  %1277 = load i32, ptr %37, align 4, !tbaa !9
  br label %1279

1278:                                             ; preds = %1256
  br label %1279

1279:                                             ; preds = %1278, %1276
  %1280 = phi i32 [ %1277, %1276 ], [ 1, %1278 ]
  store i32 %1280, ptr %36, align 4, !tbaa !9
  %1281 = load ptr, ptr %21, align 8, !tbaa !5
  %1282 = load ptr, ptr %28, align 8, !tbaa !5
  %1283 = load i32, ptr %1282, align 4, !tbaa !9
  %1284 = add nsw i32 %1283, 1
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds float, ptr %1281, i64 %1285
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %52, ptr noundef %42, ptr noundef %35, ptr noundef @c__1, ptr noundef %1286, ptr noundef %36, ptr noundef %43)
  %1287 = load ptr, ptr %28, align 8, !tbaa !5
  %1288 = load i32, ptr %1287, align 4, !tbaa !9
  %1289 = icmp sgt i32 %1288, 0
  br i1 %1289, label %1290, label %1301

1290:                                             ; preds = %1279
  %1291 = load i32, ptr %65, align 4, !tbaa !9
  %1292 = sub nsw i32 %1291, 1
  store i32 %1292, ptr %35, align 4, !tbaa !9
  %1293 = load ptr, ptr %20, align 8, !tbaa !5
  %1294 = getelementptr inbounds float, ptr %1293, i64 1
  %1295 = load ptr, ptr %17, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %52, ptr noundef %42, ptr noundef %35, ptr noundef @c__1, ptr noundef %1294, ptr noundef %1295, ptr noundef %43)
  %1296 = load i32, ptr %65, align 4, !tbaa !9
  %1297 = sub nsw i32 %1296, 1
  store i32 %1297, ptr %35, align 4, !tbaa !9
  %1298 = load ptr, ptr %21, align 8, !tbaa !5
  %1299 = getelementptr inbounds float, ptr %1298, i64 1
  %1300 = load ptr, ptr %17, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %52, ptr noundef %42, ptr noundef %35, ptr noundef @c__1, ptr noundef %1299, ptr noundef %1300, ptr noundef %43)
  br label %1301

1301:                                             ; preds = %1290, %1279
  br label %1302

1302:                                             ; preds = %1301, %1237
  %1303 = load i32, ptr %57, align 4, !tbaa !9
  %1304 = sitofp i32 %1303 to float
  %1305 = load ptr, ptr %26, align 8, !tbaa !5
  %1306 = getelementptr inbounds float, ptr %1305, i64 1
  store float %1304, ptr %1306, align 4, !tbaa !11
  store i32 1, ptr %69, align 4
  br label %1307

1307:                                             ; preds = %1302, %560, %554, %546
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  ret void
}

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

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

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

declare float @slange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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

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

declare float @snrm2_(ptr noundef, ptr noundef, ptr noundef) #2

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

declare float @slapy2_(ptr noundef, ptr noundef) #2

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

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

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

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

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

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

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

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


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1

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

52:                                               ; preds = %14
  %53 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %.not = icmp eq i32 %53, 0
  br i1 %.not, label %.thread529.sink.split, label %54

54:                                               ; preds = %52, %14
  %.not499 = icmp ne i32 %50, 0
  br i1 %.not499, label %57, label %55

55:                                               ; preds = %54
  %56 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %.not500 = icmp eq i32 %56, 0
  br i1 %.not500, label %.thread529.sink.split, label %57

57:                                               ; preds = %55, %54
  %58 = load i32, ptr %2, align 4, !tbaa !5
  %59 = icmp slt i32 %58, 0
  br i1 %59, label %.thread529.sink.split, label %60

60:                                               ; preds = %57
  %61 = load i32, ptr %4, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %58, i32 1)
  %62 = icmp slt i32 %61, %spec.select
  br i1 %62, label %.thread529.sink.split, label %63

63:                                               ; preds = %60
  %64 = load i32, ptr %8, align 4, !tbaa !5
  %65 = icmp slt i32 %64, 1
  %66 = icmp ult i32 %64, %58
  %or.cond542 = and i1 %51, %66
  %or.cond544 = or i1 %65, %or.cond542
  br i1 %or.cond544, label %.thread529.sink.split, label %67

67:                                               ; preds = %63
  %68 = load i32, ptr %10, align 4, !tbaa !5
  %69 = icmp slt i32 %68, 1
  %70 = icmp ult i32 %68, %58
  %or.cond543 = and i1 %.not499, %70
  %or.cond545 = or i1 %69, %or.cond543
  br i1 %or.cond545, label %.thread529.sink.split, label %71

71:                                               ; preds = %67
  %.pr = load i32, ptr %13, align 4, !tbaa !5
  %72 = icmp eq i32 %.pr, 0
  br i1 %72, label %73, label %.thread529

73:                                               ; preds = %71
  %74 = icmp eq i32 %58, 0
  br i1 %74, label %140, label %75

75:                                               ; preds = %73
  %76 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #6
  %77 = add i32 %76, 2
  %78 = mul i32 %77, %58
  br i1 %51, label %79, label %102

79:                                               ; preds = %75
  %80 = load i32, ptr %2, align 4, !tbaa !5
  %81 = shl i32 %80, 2
  %82 = shl i32 %80, 1
  %83 = add nsw i32 %80, -1
  %84 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #6
  %85 = mul nsw i32 %84, %83
  %86 = add nsw i32 %85, %82
  %87 = tail call i32 @llvm.smax.i32(i32 %78, i32 %86)
  tail call void @shseqr_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %11, ptr noundef nonnull @c_n1, ptr noundef nonnull %13) #6
  %88 = load float, ptr %11, align 4, !tbaa !9
  %89 = fptosi float %88 to i32
  %90 = load i32, ptr %2, align 4, !tbaa !5
  %91 = add nsw i32 %90, 1
  %92 = tail call i32 @llvm.smax.i32(i32 %87, i32 %91)
  store i32 %92, ptr %19, align 4, !tbaa !5
  %93 = add nsw i32 %90, %89
  %94 = tail call i32 @llvm.smax.i32(i32 %92, i32 %93)
  call void @strevc3_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef nonnull %11, ptr noundef nonnull @c_n1, ptr noundef nonnull %25) #6
  %95 = load float, ptr %11, align 4, !tbaa !9
  %96 = fptosi float %95 to i32
  %97 = load i32, ptr %2, align 4, !tbaa !5
  %98 = add nsw i32 %97, %96
  %99 = call i32 @llvm.smax.i32(i32 %94, i32 %98)
  store i32 %99, ptr %19, align 4, !tbaa !5
  %100 = shl i32 %97, 2
  store i32 %100, ptr %20, align 4, !tbaa !5
  %101 = call i32 @llvm.smax.i32(i32 %99, i32 %100)
  br label %135

102:                                              ; preds = %75
  %.not501 = icmp eq i32 %50, 0
  %103 = load i32, ptr %2, align 4, !tbaa !5
  br i1 %.not501, label %126, label %104

104:                                              ; preds = %102
  %105 = shl i32 %103, 2
  %106 = shl i32 %103, 1
  %107 = add nsw i32 %103, -1
  %108 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #6
  %109 = mul nsw i32 %108, %107
  %110 = add nsw i32 %109, %106
  %111 = tail call i32 @llvm.smax.i32(i32 %78, i32 %110)
  tail call void @shseqr_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull @c_n1, ptr noundef nonnull %13) #6
  %112 = load float, ptr %11, align 4, !tbaa !9
  %113 = fptosi float %112 to i32
  %114 = load i32, ptr %2, align 4, !tbaa !5
  %115 = add nsw i32 %114, 1
  %116 = tail call i32 @llvm.smax.i32(i32 %111, i32 %115)
  store i32 %116, ptr %19, align 4, !tbaa !5
  %117 = add nsw i32 %114, %113
  %118 = tail call i32 @llvm.smax.i32(i32 %116, i32 %117)
  call void @strevc3_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef nonnull %11, ptr noundef nonnull @c_n1, ptr noundef nonnull %25) #6
  %119 = load float, ptr %11, align 4, !tbaa !9
  %120 = fptosi float %119 to i32
  %121 = load i32, ptr %2, align 4, !tbaa !5
  %122 = add nsw i32 %121, %120
  %123 = call i32 @llvm.smax.i32(i32 %118, i32 %122)
  store i32 %123, ptr %19, align 4, !tbaa !5
  %124 = shl i32 %121, 2
  store i32 %124, ptr %20, align 4, !tbaa !5
  %125 = call i32 @llvm.smax.i32(i32 %123, i32 %124)
  br label %135

126:                                              ; preds = %102
  %127 = mul nsw i32 %103, 3
  tail call void @shseqr_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull @c_n1, ptr noundef nonnull %13) #6
  %128 = load float, ptr %11, align 4, !tbaa !9
  %129 = fptosi float %128 to i32
  %130 = load i32, ptr %2, align 4, !tbaa !5
  %131 = add nsw i32 %130, 1
  %132 = tail call i32 @llvm.smax.i32(i32 %78, i32 %131)
  store i32 %132, ptr %19, align 4, !tbaa !5
  %133 = add nsw i32 %130, %129
  store i32 %133, ptr %20, align 4, !tbaa !5
  %134 = tail call i32 @llvm.smax.i32(i32 %132, i32 %133)
  br label %135

135:                                              ; preds = %104, %126, %79
  %136 = phi i32 [ %97, %79 ], [ %121, %104 ], [ %130, %126 ]
  %.0481 = phi i32 [ %81, %79 ], [ %105, %104 ], [ %127, %126 ]
  %.0 = phi i32 [ %101, %79 ], [ %125, %104 ], [ %134, %126 ]
  %137 = call i32 @llvm.smax.i32(i32 %.0, i32 %.0481)
  %138 = sitofp i32 %137 to float
  %139 = icmp eq i32 %136, 0
  br label %140

140:                                              ; preds = %73, %135
  %141 = phi i1 [ %139, %135 ], [ true, %73 ]
  %.1482 = phi i32 [ %.0481, %135 ], [ 1, %73 ]
  %.1 = phi float [ %138, %135 ], [ 1.000000e+00, %73 ]
  store float %.1, ptr %11, align 4, !tbaa !9
  %142 = load i32, ptr %12, align 4, !tbaa !5
  %143 = icmp sge i32 %142, %.1482
  %or.cond = select i1 %143, i1 true, i1 %48
  br i1 %or.cond, label %.thread, label %.thread529.sink.split

.thread:                                          ; preds = %140
  %.pr526.pr = load i32, ptr %13, align 4, !tbaa !5
  %.not515 = icmp eq i32 %.pr526.pr, 0
  br i1 %.not515, label %147, label %.thread529

.thread529.sink.split:                            ; preds = %140, %67, %63, %60, %57, %55, %52
  %.sink = phi i32 [ -1, %52 ], [ -2, %55 ], [ -3, %57 ], [ -5, %60 ], [ -9, %63 ], [ -11, %67 ], [ -13, %140 ]
  store i32 %.sink, ptr %13, align 4, !tbaa !5
  br label %.thread529

.thread529:                                       ; preds = %.thread529.sink.split, %71, %.thread
  %144 = phi i32 [ %.pr526.pr, %.thread ], [ %.pr, %71 ], [ %.sink, %.thread529.sink.split ]
  %145 = sub nsw i32 0, %144
  store i32 %145, ptr %19, align 4, !tbaa !5
  %146 = call i32 @xerbla_(ptr noundef nonnull @.str.10, ptr noundef nonnull %19, i32 noundef 5) #6
  br label %428

147:                                              ; preds = %.thread
  %or.cond604 = select i1 %48, i1 true, i1 %141
  br i1 %or.cond604, label %428, label %148

148:                                              ; preds = %147
  %149 = call float @slamch_(ptr noundef nonnull @.str.11) #6
  %150 = call float @slamch_(ptr noundef nonnull @.str.5) #6
  store float %150, ptr %33, align 4, !tbaa !9
  %151 = fdiv float 1.000000e+00, %150
  store float %151, ptr %32, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %33, ptr noundef nonnull %32) #6
  %152 = load float, ptr %33, align 4, !tbaa !9
  %153 = fpext float %152 to double
  %154 = call double @sqrt(double noundef %153) #6
  %155 = fpext float %149 to double
  %156 = fdiv double %154, %155
  %157 = fptrunc double %156 to float
  store float %157, ptr %33, align 4, !tbaa !9
  %158 = fdiv float 1.000000e+00, %157
  store float %158, ptr %32, align 4, !tbaa !9
  %159 = call float @slange_(ptr noundef nonnull @.str.12, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %37) #6
  store float %159, ptr %24, align 4, !tbaa !9
  %160 = fcmp ogt float %159, 0.000000e+00
  %161 = load float, ptr %33, align 4
  %162 = fcmp olt float %159, %161
  %or.cond547 = select i1 %160, i1 %162, i1 false
  br i1 %or.cond547, label %166, label %163

163:                                              ; preds = %148
  %164 = load float, ptr %32, align 4, !tbaa !9
  %165 = fcmp ogt float %159, %164
  br i1 %165, label %166, label %167

166:                                              ; preds = %148, %163
  %storemerge = phi float [ %164, %163 ], [ %161, %148 ]
  store float %storemerge, ptr %29, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull %29, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %25) #6
  br label %167

167:                                              ; preds = %163, %166
  %.not516536 = phi i1 [ false, %166 ], [ true, %163 ]
  call void @sgebal_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef nonnull %11, ptr noundef nonnull %25) #6
  %168 = load i32, ptr %2, align 4, !tbaa !5
  %169 = add nsw i32 %168, 1
  %170 = add nsw i32 %169, %168
  %171 = load i32, ptr %12, align 4, !tbaa !5
  %172 = add i32 %171, 1
  %173 = sub i32 %172, %170
  store i32 %173, ptr %19, align 4, !tbaa !5
  %174 = sext i32 %169 to i64
  %175 = getelementptr inbounds float, ptr %46, i64 %174
  %176 = sext i32 %170 to i64
  %177 = getelementptr inbounds float, ptr %46, i64 %176
  call void @sgehrd_(ptr noundef nonnull %2, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %175, ptr noundef nonnull %177, ptr noundef nonnull %19, ptr noundef nonnull %25) #6
  br i1 %51, label %178, label %184

178:                                              ; preds = %167
  store i8 76, ptr %23, align 1, !tbaa !11
  call void @slacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8) #6
  %179 = load i32, ptr %12, align 4, !tbaa !5
  %reass.sub577 = sub i32 %179, %170
  %180 = add i32 %reass.sub577, 1
  store i32 %180, ptr %19, align 4, !tbaa !5
  call void @sorghr_(ptr noundef nonnull %2, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %175, ptr noundef nonnull %177, ptr noundef nonnull %19, ptr noundef nonnull %25) #6
  %181 = load i32, ptr %12, align 4, !tbaa !5
  %182 = sub i32 %181, %168
  store i32 %182, ptr %19, align 4, !tbaa !5
  call void @shseqr_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %175, ptr noundef nonnull %19, ptr noundef nonnull %13) #6
  %.not518 = icmp eq i32 %50, 0
  br i1 %.not518, label %193, label %183

183:                                              ; preds = %178
  store i8 66, ptr %23, align 1, !tbaa !11
  call void @slacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10) #6
  br label %193

184:                                              ; preds = %167
  %.not517 = icmp eq i32 %50, 0
  br i1 %.not517, label %190, label %185

185:                                              ; preds = %184
  store i8 82, ptr %23, align 1, !tbaa !11
  call void @slacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10) #6
  %186 = load i32, ptr %12, align 4, !tbaa !5
  %reass.sub = sub i32 %186, %170
  %187 = add i32 %reass.sub, 1
  store i32 %187, ptr %19, align 4, !tbaa !5
  call void @sorghr_(ptr noundef nonnull %2, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %175, ptr noundef nonnull %177, ptr noundef nonnull %19, ptr noundef nonnull %25) #6
  %188 = load i32, ptr %12, align 4, !tbaa !5
  %189 = sub i32 %188, %168
  store i32 %189, ptr %19, align 4, !tbaa !5
  call void @shseqr_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %175, ptr noundef nonnull %19, ptr noundef nonnull %13) #6
  br label %193

190:                                              ; preds = %184
  %191 = load i32, ptr %12, align 4, !tbaa !5
  %192 = sub i32 %191, %168
  store i32 %192, ptr %19, align 4, !tbaa !5
  call void @shseqr_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, ptr noundef nonnull %2, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %175, ptr noundef nonnull %19, ptr noundef nonnull %13) #6
  br label %193

193:                                              ; preds = %185, %190, %178, %183
  %194 = load i32, ptr %13, align 4, !tbaa !5
  %.not519 = icmp ne i32 %194, 0
  %195 = or i32 %49, %50
  %or.cond3.not = icmp eq i32 %195, 0
  %or.cond605 = select i1 %.not519, i1 true, i1 %or.cond3.not
  br i1 %or.cond605, label %.thread538, label %196

196:                                              ; preds = %193
  %197 = load i32, ptr %12, align 4, !tbaa !5
  %198 = sub i32 %197, %168
  store i32 %198, ptr %19, align 4, !tbaa !5
  call void @strevc3_(ptr noundef nonnull %23, ptr noundef nonnull @.str.7, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef nonnull %175, ptr noundef nonnull %19, ptr noundef nonnull %25) #6
  br i1 %51, label %199, label %.loopexit

199:                                              ; preds = %196
  call void @sgebak_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef nonnull %11, ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %25) #6
  %200 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %200, ptr %19, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %42, i64 4
  %.not520556 = icmp slt i32 %200, 1
  br i1 %.not520556, label %.loopexit, label %.lr.ph559.preheader

.lr.ph559.preheader:                              ; preds = %199
  %201 = sext i32 %40 to i64
  %202 = add i32 %168, 1
  %203 = sext i32 %202 to i64
  %204 = shl nsw i64 %203, 2
  %205 = add i64 %204, %18
  %206 = add i64 %205, -8
  %207 = shl nsw i64 %41, 2
  %208 = add i64 %207, %17
  %209 = shl nsw i64 %201, 3
  %210 = add i64 %208, %209
  %211 = sub i64 %206, %210
  %212 = mul nsw i64 %201, -4
  %213 = add i64 %204, %18
  %214 = add i64 %213, -8
  %215 = shl nsw i64 %201, 2
  %216 = add i64 %215, %17
  %217 = add i64 %216, %207
  %218 = sub i64 %214, %217
  br label %.lr.ph559

.lr.ph559:                                        ; preds = %.lr.ph559.preheader, %299
  %indvar = phi i64 [ 0, %.lr.ph559.preheader ], [ %indvar.next, %299 ]
  %indvars.iv582 = phi i64 [ 1, %.lr.ph559.preheader ], [ %indvars.iv.next583, %299 ]
  %219 = mul i64 %212, %indvar
  %220 = add i64 %211, %219
  %221 = add i64 %218, %219
  %222 = getelementptr inbounds float, ptr %39, i64 %indvars.iv582
  %223 = load float, ptr %222, align 4, !tbaa !9
  %224 = fcmp oeq float %223, 0.000000e+00
  br i1 %224, label %225, label %229

225:                                              ; preds = %.lr.ph559
  %226 = mul nsw i64 %indvars.iv582, %201
  %gep555 = getelementptr float, ptr %invariant.gep, i64 %226
  %227 = call float @snrm2_(ptr noundef nonnull %2, ptr noundef %gep555, ptr noundef nonnull @c__1) #6
  %228 = fdiv float 1.000000e+00, %227
  store float %228, ptr %35, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep555, ptr noundef nonnull @c__1) #6
  br label %299

229:                                              ; preds = %.lr.ph559
  %230 = fcmp ogt float %223, 0.000000e+00
  br i1 %230, label %231, label %299

231:                                              ; preds = %229
  %232 = mul nsw i64 %indvars.iv582, %201
  %gep = getelementptr float, ptr %invariant.gep, i64 %232
  %233 = call float @snrm2_(ptr noundef nonnull %2, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  store float %233, ptr %21, align 4, !tbaa !9
  %234 = add nuw nsw i64 %indvars.iv582, 1
  %235 = mul nsw i64 %234, %201
  %gep553 = getelementptr float, ptr %invariant.gep, i64 %235
  %236 = call float @snrm2_(ptr noundef nonnull %2, ptr noundef %gep553, ptr noundef nonnull @c__1) #6
  store float %236, ptr %22, align 4, !tbaa !9
  %237 = call float @slapy2_(ptr noundef nonnull %21, ptr noundef nonnull %22) #6
  %238 = fdiv float 1.000000e+00, %237
  store float %238, ptr %35, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep553, ptr noundef nonnull @c__1) #6
  %239 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %239, ptr %20, align 4, !tbaa !5
  %.not524549 = icmp slt i32 %239, 1
  br i1 %.not524549, label %292, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %231
  %240 = add nuw i32 %239, 1
  %wide.trip.count = zext i32 %240 to i64
  %invariant.gep596 = getelementptr float, ptr %42, i64 %232
  %invariant.gep598 = getelementptr float, ptr %42, i64 %235
  %241 = zext nneg i32 %239 to i64
  %min.iters.check = icmp ult i32 %239, 8
  br i1 %min.iters.check, label %.lr.ph.preheader642, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph.preheader
  %242 = add nsw i64 %wide.trip.count, -2
  %243 = trunc i64 %242 to i32
  %244 = add i32 %202, %243
  %245 = icmp slt i32 %244, %202
  %246 = icmp ugt i64 %242, 4294967295
  %247 = or i1 %245, %246
  br i1 %247, label %.lr.ph.preheader642, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %diff.check = icmp ult i64 %220, 32
  %diff.check609 = icmp ult i64 %221, 32
  %conflict.rdx = or i1 %diff.check, %diff.check609
  br i1 %conflict.rdx, label %.lr.ph.preheader642, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %241, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %248 = trunc i64 %index to i32
  %249 = or disjoint i32 %248, 1
  %250 = getelementptr float, ptr %invariant.gep596, i64 %offset.idx
  %251 = getelementptr i8, ptr %250, i64 16
  %wide.load = load <4 x float>, ptr %250, align 4, !tbaa !9
  %wide.load611 = load <4 x float>, ptr %251, align 4, !tbaa !9
  %252 = getelementptr float, ptr %invariant.gep598, i64 %offset.idx
  %253 = getelementptr i8, ptr %252, i64 16
  %wide.load612 = load <4 x float>, ptr %252, align 4, !tbaa !9
  %wide.load613 = load <4 x float>, ptr %253, align 4, !tbaa !9
  %254 = fmul <4 x float> %wide.load612, %wide.load612
  %255 = fmul <4 x float> %wide.load613, %wide.load613
  %256 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load, <4 x float> %wide.load, <4 x float> %254)
  %257 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load611, <4 x float> %wide.load611, <4 x float> %255)
  %258 = add i32 %168, %249
  %259 = sext i32 %258 to i64
  %260 = getelementptr inbounds float, ptr %46, i64 %259
  %261 = getelementptr inbounds i8, ptr %260, i64 16
  store <4 x float> %256, ptr %260, align 4, !tbaa !9
  store <4 x float> %257, ptr %261, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %262 = icmp eq i64 %index.next, %n.vec
  br i1 %262, label %middle.block, label %vector.body, !llvm.loop !12

middle.block:                                     ; preds = %vector.body
  %263 = extractelement <4 x float> %wide.load613, i64 3
  %264 = extractelement <4 x float> %wide.load611, i64 3
  %cmp.n = icmp eq i64 %n.vec, %241
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.preheader642

.lr.ph.preheader642:                              ; preds = %middle.block, %vector.memcheck, %vector.scevcheck, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %vector.scevcheck ], [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %265 = zext nneg i32 %239 to i64
  %266 = and i32 %239, 1
  %lcmp.mod.not = icmp eq i32 %266, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader642
  %gep597.prol = getelementptr float, ptr %invariant.gep596, i64 %indvars.iv.ph
  %267 = load float, ptr %gep597.prol, align 4, !tbaa !9
  %gep599.prol = getelementptr float, ptr %invariant.gep598, i64 %indvars.iv.ph
  %268 = load float, ptr %gep599.prol, align 4, !tbaa !9
  %269 = fmul float %268, %268
  %270 = call float @llvm.fmuladd.f32(float %267, float %267, float %269)
  %271 = trunc nuw nsw i64 %indvars.iv.ph to i32
  %272 = add i32 %168, %271
  %273 = sext i32 %272 to i64
  %274 = getelementptr inbounds float, ptr %46, i64 %273
  store float %270, ptr %274, align 4, !tbaa !9
  %indvars.iv.next.prol = add nuw nsw i64 %indvars.iv.ph, 1
  br label %.lr.ph.prol.loopexit

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader642
  %.lcssa644.unr = phi float [ poison, %.lr.ph.preheader642 ], [ %267, %.lr.ph.prol ]
  %.lcssa643.unr = phi float [ poison, %.lr.ph.preheader642 ], [ %268, %.lr.ph.prol ]
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %.lr.ph.preheader642 ], [ %indvars.iv.next.prol, %.lr.ph.prol ]
  %275 = icmp eq i64 %indvars.iv.ph, %265
  br i1 %275, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next.1, %.lr.ph ], [ %indvars.iv.unr, %.lr.ph.prol.loopexit ]
  %gep597 = getelementptr float, ptr %invariant.gep596, i64 %indvars.iv
  %276 = load float, ptr %gep597, align 4, !tbaa !9
  %gep599 = getelementptr float, ptr %invariant.gep598, i64 %indvars.iv
  %277 = load float, ptr %gep599, align 4, !tbaa !9
  %278 = fmul float %277, %277
  %279 = call float @llvm.fmuladd.f32(float %276, float %276, float %278)
  %280 = trunc nuw nsw i64 %indvars.iv to i32
  %281 = add i32 %168, %280
  %282 = sext i32 %281 to i64
  %283 = getelementptr inbounds float, ptr %46, i64 %282
  store float %279, ptr %283, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %gep597.1 = getelementptr float, ptr %invariant.gep596, i64 %indvars.iv.next
  %284 = load float, ptr %gep597.1, align 4, !tbaa !9
  %gep599.1 = getelementptr float, ptr %invariant.gep598, i64 %indvars.iv.next
  %285 = load float, ptr %gep599.1, align 4, !tbaa !9
  %286 = fmul float %285, %285
  %287 = call float @llvm.fmuladd.f32(float %284, float %284, float %286)
  %288 = trunc nuw nsw i64 %indvars.iv.next to i32
  %289 = add i32 %168, %288
  %290 = sext i32 %289 to i64
  %291 = getelementptr inbounds float, ptr %46, i64 %290
  store float %287, ptr %291, align 4, !tbaa !9
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %exitcond.not.1 = icmp eq i64 %indvars.iv.next.1, %wide.trip.count
  br i1 %exitcond.not.1, label %._crit_edge, label %.lr.ph, !llvm.loop !16

._crit_edge:                                      ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block
  %.lcssa608 = phi float [ %264, %middle.block ], [ %.lcssa644.unr, %.lr.ph.prol.loopexit ], [ %284, %.lr.ph ]
  %.lcssa607 = phi float [ %263, %middle.block ], [ %.lcssa643.unr, %.lr.ph.prol.loopexit ], [ %285, %.lr.ph ]
  store float %.lcssa608, ptr %21, align 4, !tbaa !9
  store float %.lcssa607, ptr %22, align 4, !tbaa !9
  br label %292

292:                                              ; preds = %._crit_edge, %231
  %293 = call i32 @isamax_(ptr noundef nonnull %2, ptr noundef nonnull %175, ptr noundef nonnull @c__1) #6
  %294 = sext i32 %293 to i64
  %295 = getelementptr float, ptr %42, i64 %232
  %296 = getelementptr float, ptr %295, i64 %294
  %297 = getelementptr float, ptr %42, i64 %235
  %298 = getelementptr float, ptr %297, i64 %294
  call void @slartg_(ptr noundef %296, ptr noundef %298, ptr noundef nonnull %28, ptr noundef nonnull %30, ptr noundef nonnull %27) #6
  call void @srot_(ptr noundef nonnull %2, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep553, ptr noundef nonnull @c__1, ptr noundef nonnull %28, ptr noundef nonnull %30) #6
  store float 0.000000e+00, ptr %298, align 4, !tbaa !9
  br label %299

299:                                              ; preds = %225, %292, %229
  %indvars.iv.next583 = add nuw nsw i64 %indvars.iv582, 1
  %300 = load i32, ptr %19, align 4, !tbaa !5
  %301 = sext i32 %300 to i64
  %.not520.not = icmp slt i64 %indvars.iv582, %301
  %indvar.next = add i64 %indvar, 1
  br i1 %.not520.not, label %.lr.ph559, label %.loopexit, !llvm.loop !17

.loopexit:                                        ; preds = %299, %199, %196
  br i1 %.not499, label %302, label %.thread538

302:                                              ; preds = %.loopexit
  call void @sgebak_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef nonnull %11, ptr noundef nonnull %2, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %25) #6
  %303 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %303, ptr %19, align 4, !tbaa !5
  %invariant.gep567 = getelementptr i8, ptr %45, i64 4
  %.not522573 = icmp slt i32 %303, 1
  br i1 %.not522573, label %.thread538, label %.lr.ph576.preheader

.lr.ph576.preheader:                              ; preds = %302
  %304 = sext i32 %43 to i64
  %305 = add i32 %168, 1
  %306 = sext i32 %305 to i64
  %307 = shl nsw i64 %306, 2
  %308 = add i64 %307, %16
  %309 = add i64 %308, -8
  %310 = shl nsw i64 %44, 2
  %311 = add i64 %310, %15
  %312 = shl nsw i64 %304, 3
  %313 = add i64 %311, %312
  %314 = sub i64 %309, %313
  %315 = mul nsw i64 %304, -4
  %316 = add i64 %307, %16
  %317 = add i64 %316, -8
  %318 = shl nsw i64 %304, 2
  %319 = add i64 %318, %15
  %320 = add i64 %319, %310
  %321 = sub i64 %317, %320
  br label %.lr.ph576

.lr.ph576:                                        ; preds = %.lr.ph576.preheader, %402
  %indvar616 = phi i64 [ 0, %.lr.ph576.preheader ], [ %indvar.next617, %402 ]
  %indvars.iv590 = phi i64 [ 1, %.lr.ph576.preheader ], [ %indvars.iv.next591, %402 ]
  %322 = mul i64 %315, %indvar616
  %323 = add i64 %314, %322
  %324 = add i64 %321, %322
  %325 = getelementptr inbounds float, ptr %39, i64 %indvars.iv590
  %326 = load float, ptr %325, align 4, !tbaa !9
  %327 = fcmp oeq float %326, 0.000000e+00
  br i1 %327, label %328, label %332

328:                                              ; preds = %.lr.ph576
  %329 = mul nsw i64 %indvars.iv590, %304
  %gep572 = getelementptr float, ptr %invariant.gep567, i64 %329
  %330 = call float @snrm2_(ptr noundef nonnull %2, ptr noundef %gep572, ptr noundef nonnull @c__1) #6
  %331 = fdiv float 1.000000e+00, %330
  store float %331, ptr %35, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep572, ptr noundef nonnull @c__1) #6
  br label %402

332:                                              ; preds = %.lr.ph576
  %333 = fcmp ogt float %326, 0.000000e+00
  br i1 %333, label %334, label %402

334:                                              ; preds = %332
  %335 = mul nsw i64 %indvars.iv590, %304
  %gep568 = getelementptr float, ptr %invariant.gep567, i64 %335
  %336 = call float @snrm2_(ptr noundef nonnull %2, ptr noundef %gep568, ptr noundef nonnull @c__1) #6
  store float %336, ptr %21, align 4, !tbaa !9
  %337 = add nuw nsw i64 %indvars.iv590, 1
  %338 = mul nsw i64 %337, %304
  %gep570 = getelementptr float, ptr %invariant.gep567, i64 %338
  %339 = call float @snrm2_(ptr noundef nonnull %2, ptr noundef %gep570, ptr noundef nonnull @c__1) #6
  store float %339, ptr %22, align 4, !tbaa !9
  %340 = call float @slapy2_(ptr noundef nonnull %21, ptr noundef nonnull %22) #6
  %341 = fdiv float 1.000000e+00, %340
  store float %341, ptr %35, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep568, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %35, ptr noundef %gep570, ptr noundef nonnull @c__1) #6
  %342 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %342, ptr %20, align 4, !tbaa !5
  %.not523560 = icmp slt i32 %342, 1
  br i1 %.not523560, label %395, label %.lr.ph563.preheader

.lr.ph563.preheader:                              ; preds = %334
  %343 = add nuw i32 %342, 1
  %wide.trip.count588 = zext i32 %343 to i64
  %invariant.gep600 = getelementptr float, ptr %45, i64 %335
  %invariant.gep602 = getelementptr float, ptr %45, i64 %338
  %344 = zext nneg i32 %342 to i64
  %min.iters.check623 = icmp ult i32 %342, 8
  br i1 %min.iters.check623, label %.lr.ph563.preheader639, label %vector.scevcheck614

vector.scevcheck614:                              ; preds = %.lr.ph563.preheader
  %345 = add nsw i64 %wide.trip.count588, -2
  %346 = trunc i64 %345 to i32
  %347 = add i32 %305, %346
  %348 = icmp slt i32 %347, %305
  %349 = icmp ugt i64 %345, 4294967295
  %350 = or i1 %348, %349
  br i1 %350, label %.lr.ph563.preheader639, label %vector.memcheck615

vector.memcheck615:                               ; preds = %vector.scevcheck614
  %diff.check618 = icmp ult i64 %323, 32
  %diff.check619 = icmp ult i64 %324, 32
  %conflict.rdx620 = or i1 %diff.check618, %diff.check619
  br i1 %conflict.rdx620, label %.lr.ph563.preheader639, label %vector.ph624

vector.ph624:                                     ; preds = %vector.memcheck615
  %n.vec626 = and i64 %344, 2147483640
  %ind.end627 = or disjoint i64 %n.vec626, 1
  br label %vector.body629

vector.body629:                                   ; preds = %vector.body629, %vector.ph624
  %index630 = phi i64 [ 0, %vector.ph624 ], [ %index.next637, %vector.body629 ]
  %offset.idx631 = or disjoint i64 %index630, 1
  %351 = trunc i64 %index630 to i32
  %352 = or disjoint i32 %351, 1
  %353 = getelementptr float, ptr %invariant.gep600, i64 %offset.idx631
  %354 = getelementptr i8, ptr %353, i64 16
  %wide.load633 = load <4 x float>, ptr %353, align 4, !tbaa !9
  %wide.load634 = load <4 x float>, ptr %354, align 4, !tbaa !9
  %355 = getelementptr float, ptr %invariant.gep602, i64 %offset.idx631
  %356 = getelementptr i8, ptr %355, i64 16
  %wide.load635 = load <4 x float>, ptr %355, align 4, !tbaa !9
  %wide.load636 = load <4 x float>, ptr %356, align 4, !tbaa !9
  %357 = fmul <4 x float> %wide.load635, %wide.load635
  %358 = fmul <4 x float> %wide.load636, %wide.load636
  %359 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load633, <4 x float> %wide.load633, <4 x float> %357)
  %360 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load634, <4 x float> %wide.load634, <4 x float> %358)
  %361 = add i32 %168, %352
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds float, ptr %46, i64 %362
  %364 = getelementptr inbounds i8, ptr %363, i64 16
  store <4 x float> %359, ptr %363, align 4, !tbaa !9
  store <4 x float> %360, ptr %364, align 4, !tbaa !9
  %index.next637 = add nuw i64 %index630, 8
  %365 = icmp eq i64 %index.next637, %n.vec626
  br i1 %365, label %middle.block621, label %vector.body629, !llvm.loop !18

middle.block621:                                  ; preds = %vector.body629
  %366 = extractelement <4 x float> %wide.load636, i64 3
  %367 = extractelement <4 x float> %wide.load634, i64 3
  %cmp.n638 = icmp eq i64 %n.vec626, %344
  br i1 %cmp.n638, label %._crit_edge564, label %.lr.ph563.preheader639

.lr.ph563.preheader639:                           ; preds = %middle.block621, %vector.memcheck615, %vector.scevcheck614, %.lr.ph563.preheader
  %indvars.iv585.ph = phi i64 [ 1, %vector.memcheck615 ], [ 1, %vector.scevcheck614 ], [ 1, %.lr.ph563.preheader ], [ %ind.end627, %middle.block621 ]
  %368 = zext nneg i32 %342 to i64
  %369 = and i32 %342, 1
  %lcmp.mod646.not = icmp eq i32 %369, 0
  br i1 %lcmp.mod646.not, label %.lr.ph563.prol.loopexit, label %.lr.ph563.prol

.lr.ph563.prol:                                   ; preds = %.lr.ph563.preheader639
  %gep601.prol = getelementptr float, ptr %invariant.gep600, i64 %indvars.iv585.ph
  %370 = load float, ptr %gep601.prol, align 4, !tbaa !9
  %gep603.prol = getelementptr float, ptr %invariant.gep602, i64 %indvars.iv585.ph
  %371 = load float, ptr %gep603.prol, align 4, !tbaa !9
  %372 = fmul float %371, %371
  %373 = call float @llvm.fmuladd.f32(float %370, float %370, float %372)
  %374 = trunc nuw nsw i64 %indvars.iv585.ph to i32
  %375 = add i32 %168, %374
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds float, ptr %46, i64 %376
  store float %373, ptr %377, align 4, !tbaa !9
  %indvars.iv.next586.prol = add nuw nsw i64 %indvars.iv585.ph, 1
  br label %.lr.ph563.prol.loopexit

.lr.ph563.prol.loopexit:                          ; preds = %.lr.ph563.prol, %.lr.ph563.preheader639
  %.lcssa641.unr = phi float [ poison, %.lr.ph563.preheader639 ], [ %370, %.lr.ph563.prol ]
  %.lcssa640.unr = phi float [ poison, %.lr.ph563.preheader639 ], [ %371, %.lr.ph563.prol ]
  %indvars.iv585.unr = phi i64 [ %indvars.iv585.ph, %.lr.ph563.preheader639 ], [ %indvars.iv.next586.prol, %.lr.ph563.prol ]
  %378 = icmp eq i64 %indvars.iv585.ph, %368
  br i1 %378, label %._crit_edge564, label %.lr.ph563

.lr.ph563:                                        ; preds = %.lr.ph563.prol.loopexit, %.lr.ph563
  %indvars.iv585 = phi i64 [ %indvars.iv.next586.1, %.lr.ph563 ], [ %indvars.iv585.unr, %.lr.ph563.prol.loopexit ]
  %gep601 = getelementptr float, ptr %invariant.gep600, i64 %indvars.iv585
  %379 = load float, ptr %gep601, align 4, !tbaa !9
  %gep603 = getelementptr float, ptr %invariant.gep602, i64 %indvars.iv585
  %380 = load float, ptr %gep603, align 4, !tbaa !9
  %381 = fmul float %380, %380
  %382 = call float @llvm.fmuladd.f32(float %379, float %379, float %381)
  %383 = trunc nuw nsw i64 %indvars.iv585 to i32
  %384 = add i32 %168, %383
  %385 = sext i32 %384 to i64
  %386 = getelementptr inbounds float, ptr %46, i64 %385
  store float %382, ptr %386, align 4, !tbaa !9
  %indvars.iv.next586 = add nuw nsw i64 %indvars.iv585, 1
  %gep601.1 = getelementptr float, ptr %invariant.gep600, i64 %indvars.iv.next586
  %387 = load float, ptr %gep601.1, align 4, !tbaa !9
  %gep603.1 = getelementptr float, ptr %invariant.gep602, i64 %indvars.iv.next586
  %388 = load float, ptr %gep603.1, align 4, !tbaa !9
  %389 = fmul float %388, %388
  %390 = call float @llvm.fmuladd.f32(float %387, float %387, float %389)
  %391 = trunc nuw nsw i64 %indvars.iv.next586 to i32
  %392 = add i32 %168, %391
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds float, ptr %46, i64 %393
  store float %390, ptr %394, align 4, !tbaa !9
  %indvars.iv.next586.1 = add nuw nsw i64 %indvars.iv585, 2
  %exitcond589.not.1 = icmp eq i64 %indvars.iv.next586.1, %wide.trip.count588
  br i1 %exitcond589.not.1, label %._crit_edge564, label %.lr.ph563, !llvm.loop !19

._crit_edge564:                                   ; preds = %.lr.ph563.prol.loopexit, %.lr.ph563, %middle.block621
  %.lcssa606 = phi float [ %367, %middle.block621 ], [ %.lcssa641.unr, %.lr.ph563.prol.loopexit ], [ %387, %.lr.ph563 ]
  %.lcssa = phi float [ %366, %middle.block621 ], [ %.lcssa640.unr, %.lr.ph563.prol.loopexit ], [ %388, %.lr.ph563 ]
  store float %.lcssa606, ptr %21, align 4, !tbaa !9
  store float %.lcssa, ptr %22, align 4, !tbaa !9
  br label %395

395:                                              ; preds = %._crit_edge564, %334
  %396 = call i32 @isamax_(ptr noundef nonnull %2, ptr noundef nonnull %175, ptr noundef nonnull @c__1) #6
  %397 = sext i32 %396 to i64
  %398 = getelementptr float, ptr %45, i64 %335
  %399 = getelementptr float, ptr %398, i64 %397
  %400 = getelementptr float, ptr %45, i64 %338
  %401 = getelementptr float, ptr %400, i64 %397
  call void @slartg_(ptr noundef %399, ptr noundef %401, ptr noundef nonnull %28, ptr noundef nonnull %30, ptr noundef nonnull %27) #6
  call void @srot_(ptr noundef nonnull %2, ptr noundef %gep568, ptr noundef nonnull @c__1, ptr noundef %gep570, ptr noundef nonnull @c__1, ptr noundef nonnull %28, ptr noundef nonnull %30) #6
  store float 0.000000e+00, ptr %401, align 4, !tbaa !9
  br label %402

402:                                              ; preds = %328, %395, %332
  %indvars.iv.next591 = add nuw nsw i64 %indvars.iv590, 1
  %403 = load i32, ptr %19, align 4, !tbaa !5
  %404 = sext i32 %403 to i64
  %.not522.not = icmp slt i64 %indvars.iv590, %404
  %indvar.next617 = add i64 %indvar616, 1
  br i1 %.not522.not, label %.lr.ph576, label %.thread538, !llvm.loop !20

.thread538:                                       ; preds = %402, %302, %.loopexit, %193
  br i1 %.not516536, label %427, label %405

405:                                              ; preds = %.thread538
  %406 = load i32, ptr %2, align 4, !tbaa !5
  %407 = load i32, ptr %13, align 4, !tbaa !5
  %408 = sub nsw i32 %406, %407
  store i32 %408, ptr %19, align 4, !tbaa !5
  %409 = call i32 @llvm.smax.i32(i32 %408, i32 1)
  store i32 %409, ptr %20, align 4, !tbaa !5
  %410 = sext i32 %407 to i64
  %411 = getelementptr float, ptr %38, i64 %410
  %412 = getelementptr i8, ptr %411, i64 4
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %29, ptr noundef nonnull %24, ptr noundef nonnull %19, ptr noundef nonnull @c__1, ptr noundef %412, ptr noundef nonnull %20, ptr noundef nonnull %25) #6
  %413 = load i32, ptr %2, align 4, !tbaa !5
  %414 = load i32, ptr %13, align 4, !tbaa !5
  %415 = sub nsw i32 %413, %414
  store i32 %415, ptr %19, align 4, !tbaa !5
  %416 = call i32 @llvm.smax.i32(i32 %415, i32 1)
  store i32 %416, ptr %20, align 4, !tbaa !5
  %417 = sext i32 %414 to i64
  %418 = getelementptr float, ptr %39, i64 %417
  %419 = getelementptr i8, ptr %418, i64 4
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %29, ptr noundef nonnull %24, ptr noundef nonnull %19, ptr noundef nonnull @c__1, ptr noundef %419, ptr noundef nonnull %20, ptr noundef nonnull %25) #6
  %420 = load i32, ptr %13, align 4, !tbaa !5
  %421 = icmp sgt i32 %420, 0
  br i1 %421, label %422, label %427

422:                                              ; preds = %405
  %423 = load i32, ptr %36, align 4, !tbaa !5
  %424 = add nsw i32 %423, -1
  store i32 %424, ptr %19, align 4, !tbaa !5
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %29, ptr noundef nonnull %24, ptr noundef nonnull %19, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %2, ptr noundef nonnull %25) #6
  %425 = load i32, ptr %36, align 4, !tbaa !5
  %426 = add nsw i32 %425, -1
  store i32 %426, ptr %19, align 4, !tbaa !5
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %29, ptr noundef nonnull %24, ptr noundef nonnull %19, ptr noundef nonnull @c__1, ptr noundef %6, ptr noundef nonnull %2, ptr noundef nonnull %25) #6
  br label %427

427:                                              ; preds = %405, %422, %.thread538
  store float %.1, ptr %11, align 4, !tbaa !9
  br label %428

428:                                              ; preds = %147, %427, %.thread529
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  ret void
}

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

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

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

declare float @slange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

declare float @snrm2_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare float @slapy2_(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 x float>) #5

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

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

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


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