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

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

130:                                              ; preds = %20
  %131 = load ptr, ptr %38, align 8, !tbaa !5
  %132 = load i32, ptr %131, align 4, !tbaa !9
  %133 = icmp eq i32 %132, -1
  br label %134

134:                                              ; preds = %130, %20
  %135 = phi i1 [ true, %20 ], [ %133, %130 ]
  %136 = zext i1 %135 to i32
  store i32 %136, ptr %76, align 4, !tbaa !9
  %137 = load i32, ptr %78, align 4, !tbaa !9
  %138 = icmp ne i32 %137, 0
  br i1 %138, label %145, label %139

139:                                              ; preds = %134
  %140 = load ptr, ptr %21, align 8, !tbaa !5
  %141 = call i32 @lsame_(ptr noundef %140, ptr noundef @.str.2)
  %142 = icmp ne i32 %141, 0
  br i1 %142, label %145, label %143

143:                                              ; preds = %139
  %144 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -1, ptr %144, align 4, !tbaa !9
  br label %215

145:                                              ; preds = %139, %134
  %146 = load i32, ptr %75, align 4, !tbaa !9
  %147 = icmp ne i32 %146, 0
  br i1 %147, label %154, label %148

148:                                              ; preds = %145
  %149 = load ptr, ptr %22, align 8, !tbaa !5
  %150 = call i32 @lsame_(ptr noundef %149, ptr noundef @.str.2)
  %151 = icmp ne i32 %150, 0
  br i1 %151, label %154, label %152

152:                                              ; preds = %148
  %153 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -2, ptr %153, align 4, !tbaa !9
  br label %214

154:                                              ; preds = %148, %145
  %155 = load i32, ptr %72, align 4, !tbaa !9
  %156 = icmp ne i32 %155, 0
  br i1 %156, label %166, label %157

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

160:                                              ; preds = %157
  %161 = load i32, ptr %77, align 4, !tbaa !9
  %162 = icmp ne i32 %161, 0
  br i1 %162, label %166, label %163

163:                                              ; preds = %160
  %164 = load i32, ptr %67, align 4, !tbaa !9
  %165 = icmp ne i32 %164, 0
  br i1 %165, label %166, label %172

166:                                              ; preds = %163, %160, %157, %154
  %167 = load i32, ptr %75, align 4, !tbaa !9
  %168 = icmp ne i32 %167, 0
  br i1 %168, label %174, label %169

169:                                              ; preds = %166
  %170 = load i32, ptr %72, align 4, !tbaa !9
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %174, label %172

172:                                              ; preds = %169, %163
  %173 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -4, ptr %173, align 4, !tbaa !9
  br label %213

174:                                              ; preds = %169, %166
  %175 = load ptr, ptr %25, align 8, !tbaa !5
  %176 = load i32, ptr %175, align 4, !tbaa !9
  %177 = icmp slt i32 %176, 0
  br i1 %177, label %178, label %180

178:                                              ; preds = %174
  %179 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -5, ptr %179, align 4, !tbaa !9
  br label %212

180:                                              ; preds = %174
  %181 = load ptr, ptr %27, align 8, !tbaa !5
  %182 = load i32, ptr %181, align 4, !tbaa !9
  %183 = load ptr, ptr %25, align 8, !tbaa !5
  %184 = load i32, ptr %183, align 4, !tbaa !9
  %185 = icmp sge i32 1, %184
  br i1 %185, label %186, label %187

186:                                              ; preds = %180
  br label %190

187:                                              ; preds = %180
  %188 = load ptr, ptr %25, align 8, !tbaa !5
  %189 = load i32, ptr %188, align 4, !tbaa !9
  br label %190

190:                                              ; preds = %187, %186
  %191 = phi i32 [ 1, %186 ], [ %189, %187 ]
  %192 = icmp slt i32 %182, %191
  br i1 %192, label %193, label %195

193:                                              ; preds = %190
  %194 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -7, ptr %194, align 4, !tbaa !9
  br label %211

195:                                              ; preds = %190
  %196 = load ptr, ptr %32, align 8, !tbaa !5
  %197 = load i32, ptr %196, align 4, !tbaa !9
  %198 = icmp slt i32 %197, 1
  br i1 %198, label %208, label %199

199:                                              ; preds = %195
  %200 = load i32, ptr %78, align 4, !tbaa !9
  %201 = icmp ne i32 %200, 0
  br i1 %201, label %202, label %210

202:                                              ; preds = %199
  %203 = load ptr, ptr %32, align 8, !tbaa !5
  %204 = load i32, ptr %203, align 4, !tbaa !9
  %205 = load ptr, ptr %25, align 8, !tbaa !5
  %206 = load i32, ptr %205, align 4, !tbaa !9
  %207 = icmp slt i32 %204, %206
  br i1 %207, label %208, label %210

208:                                              ; preds = %202, %195
  %209 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -12, ptr %209, align 4, !tbaa !9
  br label %210

210:                                              ; preds = %208, %202, %199
  br label %211

211:                                              ; preds = %210, %193
  br label %212

212:                                              ; preds = %211, %178
  br label %213

213:                                              ; preds = %212, %172
  br label %214

214:                                              ; preds = %213, %152
  br label %215

215:                                              ; preds = %214, %143
  %216 = load ptr, ptr %40, align 8, !tbaa !5
  %217 = load i32, ptr %216, align 4, !tbaa !9
  %218 = icmp eq i32 %217, 0
  br i1 %218, label %219, label %380

219:                                              ; preds = %215
  store i32 1, ptr %59, align 4, !tbaa !9
  %220 = load ptr, ptr %25, align 8, !tbaa !5
  %221 = load i32, ptr %220, align 4, !tbaa !9
  %222 = icmp eq i32 %221, 0
  br i1 %222, label %223, label %224

223:                                              ; preds = %219
  store i32 1, ptr %70, align 4, !tbaa !9
  store i32 1, ptr %53, align 4, !tbaa !9
  br label %352

224:                                              ; preds = %219
  %225 = load ptr, ptr %25, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = shl i32 %226, 1
  %228 = load ptr, ptr %25, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = load ptr, ptr %25, align 8, !tbaa !5
  %231 = load ptr, ptr %25, align 8, !tbaa !5
  %232 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef %230, ptr noundef @c__1, ptr noundef %231, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %233 = mul nsw i32 %229, %232
  %234 = add nsw i32 %227, %233
  store i32 %234, ptr %71, align 4, !tbaa !9
  %235 = load ptr, ptr %25, align 8, !tbaa !5
  %236 = load i32, ptr %235, align 4, !tbaa !9
  %237 = mul nsw i32 %236, 3
  store i32 %237, ptr %70, align 4, !tbaa !9
  %238 = load ptr, ptr %21, align 8, !tbaa !5
  %239 = load ptr, ptr %25, align 8, !tbaa !5
  %240 = load ptr, ptr %25, align 8, !tbaa !5
  %241 = load ptr, ptr %26, align 8, !tbaa !5
  %242 = load i32, ptr %42, align 4, !tbaa !9
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds float, ptr %241, i64 %243
  %245 = load ptr, ptr %27, align 8, !tbaa !5
  %246 = load ptr, ptr %29, align 8, !tbaa !5
  %247 = getelementptr inbounds float, ptr %246, i64 1
  %248 = load ptr, ptr %30, align 8, !tbaa !5
  %249 = getelementptr inbounds float, ptr %248, i64 1
  %250 = load ptr, ptr %31, align 8, !tbaa !5
  %251 = load i32, ptr %44, align 4, !tbaa !9
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds float, ptr %250, i64 %252
  %254 = load ptr, ptr %32, align 8, !tbaa !5
  %255 = load ptr, ptr %35, align 8, !tbaa !5
  %256 = getelementptr inbounds float, ptr %255, i64 1
  call void @shseqr_(ptr noundef @.str.1, ptr noundef %238, ptr noundef %239, ptr noundef @c__1, ptr noundef %240, ptr noundef %244, ptr noundef %245, ptr noundef %247, ptr noundef %249, ptr noundef %253, ptr noundef %254, ptr noundef %256, ptr noundef @c_n1, ptr noundef %57)
  %257 = load ptr, ptr %35, align 8, !tbaa !5
  %258 = getelementptr inbounds float, ptr %257, i64 1
  %259 = load float, ptr %258, align 4, !tbaa !11
  %260 = fptosi float %259 to i32
  store i32 %260, ptr %74, align 4, !tbaa !9
  %261 = load i32, ptr %78, align 4, !tbaa !9
  %262 = icmp ne i32 %261, 0
  br i1 %262, label %278, label %263

263:                                              ; preds = %224
  %264 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %264, ptr %45, align 4, !tbaa !9
  %265 = load ptr, ptr %25, align 8, !tbaa !5
  %266 = load i32, ptr %265, align 4, !tbaa !9
  %267 = load i32, ptr %74, align 4, !tbaa !9
  %268 = add nsw i32 %266, %267
  store i32 %268, ptr %46, align 4, !tbaa !9
  %269 = load i32, ptr %45, align 4, !tbaa !9
  %270 = load i32, ptr %46, align 4, !tbaa !9
  %271 = icmp sge i32 %269, %270
  br i1 %271, label %272, label %274

272:                                              ; preds = %263
  %273 = load i32, ptr %45, align 4, !tbaa !9
  br label %276

274:                                              ; preds = %263
  %275 = load i32, ptr %46, align 4, !tbaa !9
  br label %276

276:                                              ; preds = %274, %272
  %277 = phi i32 [ %273, %272 ], [ %275, %274 ]
  store i32 %277, ptr %71, align 4, !tbaa !9
  br label %314

278:                                              ; preds = %224
  %279 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %279, ptr %45, align 4, !tbaa !9
  %280 = load ptr, ptr %25, align 8, !tbaa !5
  %281 = load i32, ptr %280, align 4, !tbaa !9
  %282 = shl i32 %281, 1
  %283 = load ptr, ptr %25, align 8, !tbaa !5
  %284 = load i32, ptr %283, align 4, !tbaa !9
  %285 = sub nsw i32 %284, 1
  %286 = load ptr, ptr %25, align 8, !tbaa !5
  %287 = load ptr, ptr %25, align 8, !tbaa !5
  %288 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef @.str.6, ptr noundef %286, ptr noundef @c__1, ptr noundef %287, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %289 = mul nsw i32 %285, %288
  %290 = add nsw i32 %282, %289
  store i32 %290, ptr %46, align 4, !tbaa !9
  %291 = load i32, ptr %45, align 4, !tbaa !9
  %292 = load i32, ptr %46, align 4, !tbaa !9
  %293 = icmp sge i32 %291, %292
  br i1 %293, label %294, label %296

294:                                              ; preds = %278
  %295 = load i32, ptr %45, align 4, !tbaa !9
  br label %298

296:                                              ; preds = %278
  %297 = load i32, ptr %46, align 4, !tbaa !9
  br label %298

298:                                              ; preds = %296, %294
  %299 = phi i32 [ %295, %294 ], [ %297, %296 ]
  store i32 %299, ptr %71, align 4, !tbaa !9
  %300 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %300, ptr %45, align 4, !tbaa !9
  %301 = load ptr, ptr %25, align 8, !tbaa !5
  %302 = load i32, ptr %301, align 4, !tbaa !9
  %303 = load i32, ptr %74, align 4, !tbaa !9
  %304 = add nsw i32 %302, %303
  store i32 %304, ptr %46, align 4, !tbaa !9
  %305 = load i32, ptr %45, align 4, !tbaa !9
  %306 = load i32, ptr %46, align 4, !tbaa !9
  %307 = icmp sge i32 %305, %306
  br i1 %307, label %308, label %310

308:                                              ; preds = %298
  %309 = load i32, ptr %45, align 4, !tbaa !9
  br label %312

310:                                              ; preds = %298
  %311 = load i32, ptr %46, align 4, !tbaa !9
  br label %312

312:                                              ; preds = %310, %308
  %313 = phi i32 [ %309, %308 ], [ %311, %310 ]
  store i32 %313, ptr %71, align 4, !tbaa !9
  br label %314

314:                                              ; preds = %312, %276
  %315 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %315, ptr %53, align 4, !tbaa !9
  %316 = load i32, ptr %72, align 4, !tbaa !9
  %317 = icmp ne i32 %316, 0
  br i1 %317, label %338, label %318

318:                                              ; preds = %314
  %319 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %319, ptr %45, align 4, !tbaa !9
  %320 = load ptr, ptr %25, align 8, !tbaa !5
  %321 = load i32, ptr %320, align 4, !tbaa !9
  %322 = load ptr, ptr %25, align 8, !tbaa !5
  %323 = load i32, ptr %322, align 4, !tbaa !9
  %324 = load ptr, ptr %25, align 8, !tbaa !5
  %325 = load i32, ptr %324, align 4, !tbaa !9
  %326 = mul nsw i32 %323, %325
  %327 = sdiv i32 %326, 2
  %328 = add nsw i32 %321, %327
  store i32 %328, ptr %46, align 4, !tbaa !9
  %329 = load i32, ptr %45, align 4, !tbaa !9
  %330 = load i32, ptr %46, align 4, !tbaa !9
  %331 = icmp sge i32 %329, %330
  br i1 %331, label %332, label %334

332:                                              ; preds = %318
  %333 = load i32, ptr %45, align 4, !tbaa !9
  br label %336

334:                                              ; preds = %318
  %335 = load i32, ptr %46, align 4, !tbaa !9
  br label %336

336:                                              ; preds = %334, %332
  %337 = phi i32 [ %333, %332 ], [ %335, %334 ]
  store i32 %337, ptr %53, align 4, !tbaa !9
  br label %338

338:                                              ; preds = %336, %314
  %339 = load i32, ptr %77, align 4, !tbaa !9
  %340 = icmp ne i32 %339, 0
  br i1 %340, label %344, label %341

341:                                              ; preds = %338
  %342 = load i32, ptr %67, align 4, !tbaa !9
  %343 = icmp ne i32 %342, 0
  br i1 %343, label %344, label %351

344:                                              ; preds = %341, %338
  %345 = load ptr, ptr %25, align 8, !tbaa !5
  %346 = load i32, ptr %345, align 4, !tbaa !9
  %347 = load ptr, ptr %25, align 8, !tbaa !5
  %348 = load i32, ptr %347, align 4, !tbaa !9
  %349 = mul nsw i32 %346, %348
  %350 = sdiv i32 %349, 4
  store i32 %350, ptr %59, align 4, !tbaa !9
  br label %351

351:                                              ; preds = %344, %341
  br label %352

352:                                              ; preds = %351, %223
  %353 = load i32, ptr %59, align 4, !tbaa !9
  %354 = load ptr, ptr %37, align 8, !tbaa !5
  %355 = getelementptr inbounds i32, ptr %354, i64 1
  store i32 %353, ptr %355, align 4, !tbaa !9
  %356 = load i32, ptr %53, align 4, !tbaa !9
  %357 = sitofp i32 %356 to float
  %358 = load ptr, ptr %35, align 8, !tbaa !5
  %359 = getelementptr inbounds float, ptr %358, i64 1
  store float %357, ptr %359, align 4, !tbaa !11
  %360 = load ptr, ptr %36, align 8, !tbaa !5
  %361 = load i32, ptr %360, align 4, !tbaa !9
  %362 = load i32, ptr %70, align 4, !tbaa !9
  %363 = icmp slt i32 %361, %362
  br i1 %363, label %364, label %369

364:                                              ; preds = %352
  %365 = load i32, ptr %76, align 4, !tbaa !9
  %366 = icmp ne i32 %365, 0
  br i1 %366, label %369, label %367

367:                                              ; preds = %364
  %368 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -16, ptr %368, align 4, !tbaa !9
  br label %379

369:                                              ; preds = %364, %352
  %370 = load ptr, ptr %38, align 8, !tbaa !5
  %371 = load i32, ptr %370, align 4, !tbaa !9
  %372 = icmp slt i32 %371, 1
  br i1 %372, label %373, label %378

373:                                              ; preds = %369
  %374 = load i32, ptr %76, align 4, !tbaa !9
  %375 = icmp ne i32 %374, 0
  br i1 %375, label %378, label %376

376:                                              ; preds = %373
  %377 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -18, ptr %377, align 4, !tbaa !9
  br label %378

378:                                              ; preds = %376, %373, %369
  br label %379

379:                                              ; preds = %378, %367
  br label %380

380:                                              ; preds = %379, %215
  %381 = load ptr, ptr %40, align 8, !tbaa !5
  %382 = load i32, ptr %381, align 4, !tbaa !9
  %383 = icmp ne i32 %382, 0
  br i1 %383, label %384, label %389

384:                                              ; preds = %380
  %385 = load ptr, ptr %40, align 8, !tbaa !5
  %386 = load i32, ptr %385, align 4, !tbaa !9
  %387 = sub nsw i32 0, %386
  store i32 %387, ptr %45, align 4, !tbaa !9
  %388 = call i32 @xerbla_(ptr noundef @.str.8, ptr noundef %45, i32 noundef 6)
  store i32 1, ptr %83, align 4
  br label %1091

389:                                              ; preds = %380
  %390 = load i32, ptr %76, align 4, !tbaa !9
  %391 = icmp ne i32 %390, 0
  br i1 %391, label %392, label %393

392:                                              ; preds = %389
  store i32 1, ptr %83, align 4
  br label %1091

393:                                              ; preds = %389
  br label %394

394:                                              ; preds = %393
  %395 = load ptr, ptr %25, align 8, !tbaa !5
  %396 = load i32, ptr %395, align 4, !tbaa !9
  %397 = icmp eq i32 %396, 0
  br i1 %397, label %398, label %400

398:                                              ; preds = %394
  %399 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 0, ptr %399, align 4, !tbaa !9
  store i32 1, ptr %83, align 4
  br label %1091

400:                                              ; preds = %394
  %401 = call float @slamch_(ptr noundef @.str.9)
  store float %401, ptr %82, align 4, !tbaa !11
  %402 = call float @slamch_(ptr noundef @.str.1)
  store float %402, ptr %73, align 4, !tbaa !11
  %403 = load float, ptr %73, align 4, !tbaa !11
  %404 = fdiv float 1.000000e+00, %403
  store float %404, ptr %66, align 4, !tbaa !11
  call void @slabad_(ptr noundef %73, ptr noundef %66)
  %405 = load float, ptr %73, align 4, !tbaa !11
  %406 = fpext float %405 to double
  %407 = call double @sqrt(double noundef %406) #4
  %408 = load float, ptr %82, align 4, !tbaa !11
  %409 = fpext float %408 to double
  %410 = fdiv double %407, %409
  %411 = fptrunc double %410 to float
  store float %411, ptr %73, align 4, !tbaa !11
  %412 = load float, ptr %73, align 4, !tbaa !11
  %413 = fdiv float 1.000000e+00, %412
  store float %413, ptr %66, align 4, !tbaa !11
  %414 = load ptr, ptr %25, align 8, !tbaa !5
  %415 = load ptr, ptr %25, align 8, !tbaa !5
  %416 = load ptr, ptr %26, align 8, !tbaa !5
  %417 = load i32, ptr %42, align 4, !tbaa !9
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds float, ptr %416, i64 %418
  %420 = load ptr, ptr %27, align 8, !tbaa !5
  %421 = getelementptr inbounds [1 x float], ptr %81, i64 0, i64 0
  %422 = call float @slange_(ptr noundef @.str.10, ptr noundef %414, ptr noundef %415, ptr noundef %419, ptr noundef %420, ptr noundef %421)
  store float %422, ptr %49, align 4, !tbaa !11
  store i32 0, ptr %63, align 4, !tbaa !9
  %423 = load float, ptr %49, align 4, !tbaa !11
  %424 = fcmp ogt float %423, 0.000000e+00
  br i1 %424, label %425, label %431

425:                                              ; preds = %400
  %426 = load float, ptr %49, align 4, !tbaa !11
  %427 = load float, ptr %73, align 4, !tbaa !11
  %428 = fcmp olt float %426, %427
  br i1 %428, label %429, label %431

429:                                              ; preds = %425
  store i32 1, ptr %63, align 4, !tbaa !9
  %430 = load float, ptr %73, align 4, !tbaa !11
  store float %430, ptr %65, align 4, !tbaa !11
  br label %438

431:                                              ; preds = %425, %400
  %432 = load float, ptr %49, align 4, !tbaa !11
  %433 = load float, ptr %66, align 4, !tbaa !11
  %434 = fcmp ogt float %432, %433
  br i1 %434, label %435, label %437

435:                                              ; preds = %431
  store i32 1, ptr %63, align 4, !tbaa !9
  %436 = load float, ptr %66, align 4, !tbaa !11
  store float %436, ptr %65, align 4, !tbaa !11
  br label %437

437:                                              ; preds = %435, %431
  br label %438

438:                                              ; preds = %437, %429
  %439 = load i32, ptr %63, align 4, !tbaa !9
  %440 = icmp ne i32 %439, 0
  br i1 %440, label %441, label %449

441:                                              ; preds = %438
  %442 = load ptr, ptr %25, align 8, !tbaa !5
  %443 = load ptr, ptr %25, align 8, !tbaa !5
  %444 = load ptr, ptr %26, align 8, !tbaa !5
  %445 = load i32, ptr %42, align 4, !tbaa !9
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds float, ptr %444, i64 %446
  %448 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %49, ptr noundef %65, ptr noundef %442, ptr noundef %443, ptr noundef %447, ptr noundef %448, ptr noundef %50)
  br label %449

449:                                              ; preds = %441, %438
  store i32 1, ptr %48, align 4, !tbaa !9
  %450 = load ptr, ptr %25, align 8, !tbaa !5
  %451 = load ptr, ptr %26, align 8, !tbaa !5
  %452 = load i32, ptr %42, align 4, !tbaa !9
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds float, ptr %451, i64 %453
  %455 = load ptr, ptr %27, align 8, !tbaa !5
  %456 = load ptr, ptr %35, align 8, !tbaa !5
  %457 = load i32, ptr %48, align 4, !tbaa !9
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds float, ptr %456, i64 %458
  call void @sgebal_(ptr noundef @.str.9, ptr noundef %450, ptr noundef %454, ptr noundef %455, ptr noundef %80, ptr noundef %79, ptr noundef %459, ptr noundef %50)
  %460 = load ptr, ptr %25, align 8, !tbaa !5
  %461 = load i32, ptr %460, align 4, !tbaa !9
  %462 = load i32, ptr %48, align 4, !tbaa !9
  %463 = add nsw i32 %461, %462
  store i32 %463, ptr %51, align 4, !tbaa !9
  %464 = load ptr, ptr %25, align 8, !tbaa !5
  %465 = load i32, ptr %464, align 4, !tbaa !9
  %466 = load i32, ptr %51, align 4, !tbaa !9
  %467 = add nsw i32 %465, %466
  store i32 %467, ptr %52, align 4, !tbaa !9
  %468 = load ptr, ptr %36, align 8, !tbaa !5
  %469 = load i32, ptr %468, align 4, !tbaa !9
  %470 = load i32, ptr %52, align 4, !tbaa !9
  %471 = sub nsw i32 %469, %470
  %472 = add nsw i32 %471, 1
  store i32 %472, ptr %45, align 4, !tbaa !9
  %473 = load ptr, ptr %25, align 8, !tbaa !5
  %474 = load ptr, ptr %26, align 8, !tbaa !5
  %475 = load i32, ptr %42, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds float, ptr %474, i64 %476
  %478 = load ptr, ptr %27, align 8, !tbaa !5
  %479 = load ptr, ptr %35, align 8, !tbaa !5
  %480 = load i32, ptr %51, align 4, !tbaa !9
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds float, ptr %479, i64 %481
  %483 = load ptr, ptr %35, align 8, !tbaa !5
  %484 = load i32, ptr %52, align 4, !tbaa !9
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds float, ptr %483, i64 %485
  call void @sgehrd_(ptr noundef %473, ptr noundef %80, ptr noundef %79, ptr noundef %477, ptr noundef %478, ptr noundef %482, ptr noundef %486, ptr noundef %45, ptr noundef %50)
  %487 = load i32, ptr %78, align 4, !tbaa !9
  %488 = icmp ne i32 %487, 0
  br i1 %488, label %489, label %521

489:                                              ; preds = %449
  %490 = load ptr, ptr %25, align 8, !tbaa !5
  %491 = load ptr, ptr %25, align 8, !tbaa !5
  %492 = load ptr, ptr %26, align 8, !tbaa !5
  %493 = load i32, ptr %42, align 4, !tbaa !9
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds float, ptr %492, i64 %494
  %496 = load ptr, ptr %27, align 8, !tbaa !5
  %497 = load ptr, ptr %31, align 8, !tbaa !5
  %498 = load i32, ptr %44, align 4, !tbaa !9
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds float, ptr %497, i64 %499
  %501 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.12, ptr noundef %490, ptr noundef %491, ptr noundef %495, ptr noundef %496, ptr noundef %500, ptr noundef %501)
  %502 = load ptr, ptr %36, align 8, !tbaa !5
  %503 = load i32, ptr %502, align 4, !tbaa !9
  %504 = load i32, ptr %52, align 4, !tbaa !9
  %505 = sub nsw i32 %503, %504
  %506 = add nsw i32 %505, 1
  store i32 %506, ptr %45, align 4, !tbaa !9
  %507 = load ptr, ptr %25, align 8, !tbaa !5
  %508 = load ptr, ptr %31, align 8, !tbaa !5
  %509 = load i32, ptr %44, align 4, !tbaa !9
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds float, ptr %508, i64 %510
  %512 = load ptr, ptr %32, align 8, !tbaa !5
  %513 = load ptr, ptr %35, align 8, !tbaa !5
  %514 = load i32, ptr %51, align 4, !tbaa !9
  %515 = sext i32 %514 to i64
  %516 = getelementptr inbounds float, ptr %513, i64 %515
  %517 = load ptr, ptr %35, align 8, !tbaa !5
  %518 = load i32, ptr %52, align 4, !tbaa !9
  %519 = sext i32 %518 to i64
  %520 = getelementptr inbounds float, ptr %517, i64 %519
  call void @sorghr_(ptr noundef %507, ptr noundef %80, ptr noundef %79, ptr noundef %511, ptr noundef %512, ptr noundef %516, ptr noundef %520, ptr noundef %45, ptr noundef %50)
  br label %521

521:                                              ; preds = %489, %449
  %522 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 0, ptr %522, align 4, !tbaa !9
  %523 = load i32, ptr %51, align 4, !tbaa !9
  store i32 %523, ptr %52, align 4, !tbaa !9
  %524 = load ptr, ptr %36, align 8, !tbaa !5
  %525 = load i32, ptr %524, align 4, !tbaa !9
  %526 = load i32, ptr %52, align 4, !tbaa !9
  %527 = sub nsw i32 %525, %526
  %528 = add nsw i32 %527, 1
  store i32 %528, ptr %45, align 4, !tbaa !9
  %529 = load ptr, ptr %21, align 8, !tbaa !5
  %530 = load ptr, ptr %25, align 8, !tbaa !5
  %531 = load ptr, ptr %26, align 8, !tbaa !5
  %532 = load i32, ptr %42, align 4, !tbaa !9
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds float, ptr %531, i64 %533
  %535 = load ptr, ptr %27, align 8, !tbaa !5
  %536 = load ptr, ptr %29, align 8, !tbaa !5
  %537 = getelementptr inbounds float, ptr %536, i64 1
  %538 = load ptr, ptr %30, align 8, !tbaa !5
  %539 = getelementptr inbounds float, ptr %538, i64 1
  %540 = load ptr, ptr %31, align 8, !tbaa !5
  %541 = load i32, ptr %44, align 4, !tbaa !9
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds float, ptr %540, i64 %542
  %544 = load ptr, ptr %32, align 8, !tbaa !5
  %545 = load ptr, ptr %35, align 8, !tbaa !5
  %546 = load i32, ptr %52, align 4, !tbaa !9
  %547 = sext i32 %546 to i64
  %548 = getelementptr inbounds float, ptr %545, i64 %547
  call void @shseqr_(ptr noundef @.str.1, ptr noundef %529, ptr noundef %530, ptr noundef %80, ptr noundef %79, ptr noundef %534, ptr noundef %535, ptr noundef %537, ptr noundef %539, ptr noundef %543, ptr noundef %544, ptr noundef %548, ptr noundef %45, ptr noundef %57)
  %549 = load i32, ptr %57, align 4, !tbaa !9
  %550 = icmp sgt i32 %549, 0
  br i1 %550, label %551, label %554

551:                                              ; preds = %521
  %552 = load i32, ptr %57, align 4, !tbaa !9
  %553 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 %552, ptr %553, align 4, !tbaa !9
  br label %554

554:                                              ; preds = %551, %521
  %555 = load i32, ptr %75, align 4, !tbaa !9
  %556 = icmp ne i32 %555, 0
  br i1 %556, label %557, label %680

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

561:                                              ; preds = %557
  %562 = load i32, ptr %63, align 4, !tbaa !9
  %563 = icmp ne i32 %562, 0
  br i1 %563, label %564, label %573

564:                                              ; preds = %561
  %565 = load ptr, ptr %25, align 8, !tbaa !5
  %566 = load ptr, ptr %29, align 8, !tbaa !5
  %567 = getelementptr inbounds float, ptr %566, i64 1
  %568 = load ptr, ptr %25, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef %49, ptr noundef %565, ptr noundef @c__1, ptr noundef %567, ptr noundef %568, ptr noundef %50)
  %569 = load ptr, ptr %25, align 8, !tbaa !5
  %570 = load ptr, ptr %30, align 8, !tbaa !5
  %571 = getelementptr inbounds float, ptr %570, i64 1
  %572 = load ptr, ptr %25, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef %49, ptr noundef %569, ptr noundef @c__1, ptr noundef %571, ptr noundef %572, ptr noundef %50)
  br label %573

573:                                              ; preds = %564, %561
  %574 = load ptr, ptr %25, align 8, !tbaa !5
  %575 = load i32, ptr %574, align 4, !tbaa !9
  store i32 %575, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %576

576:                                              ; preds = %595, %573
  %577 = load i32, ptr %55, align 4, !tbaa !9
  %578 = load i32, ptr %45, align 4, !tbaa !9
  %579 = icmp sle i32 %577, %578
  br i1 %579, label %580, label %598

580:                                              ; preds = %576
  %581 = load ptr, ptr %23, align 8, !tbaa !5
  %582 = load ptr, ptr %29, align 8, !tbaa !5
  %583 = load i32, ptr %55, align 4, !tbaa !9
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds float, ptr %582, i64 %584
  %586 = load ptr, ptr %30, align 8, !tbaa !5
  %587 = load i32, ptr %55, align 4, !tbaa !9
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds float, ptr %586, i64 %588
  %590 = call i32 (ptr, ptr, ...) %581(ptr noundef %585, ptr noundef %589)
  %591 = load ptr, ptr %39, align 8, !tbaa !5
  %592 = load i32, ptr %55, align 4, !tbaa !9
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds i32, ptr %591, i64 %593
  store i32 %590, ptr %594, align 4, !tbaa !9
  br label %595

595:                                              ; preds = %580
  %596 = load i32, ptr %55, align 4, !tbaa !9
  %597 = add nsw i32 %596, 1
  store i32 %597, ptr %55, align 4, !tbaa !9
  br label %576, !llvm.loop !13

598:                                              ; preds = %576
  %599 = load ptr, ptr %36, align 8, !tbaa !5
  %600 = load i32, ptr %599, align 4, !tbaa !9
  %601 = load i32, ptr %52, align 4, !tbaa !9
  %602 = sub nsw i32 %600, %601
  %603 = add nsw i32 %602, 1
  store i32 %603, ptr %45, align 4, !tbaa !9
  %604 = load ptr, ptr %24, align 8, !tbaa !5
  %605 = load ptr, ptr %21, align 8, !tbaa !5
  %606 = load ptr, ptr %39, align 8, !tbaa !5
  %607 = getelementptr inbounds i32, ptr %606, i64 1
  %608 = load ptr, ptr %25, align 8, !tbaa !5
  %609 = load ptr, ptr %26, align 8, !tbaa !5
  %610 = load i32, ptr %42, align 4, !tbaa !9
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds float, ptr %609, i64 %611
  %613 = load ptr, ptr %27, align 8, !tbaa !5
  %614 = load ptr, ptr %31, align 8, !tbaa !5
  %615 = load i32, ptr %44, align 4, !tbaa !9
  %616 = sext i32 %615 to i64
  %617 = getelementptr inbounds float, ptr %614, i64 %616
  %618 = load ptr, ptr %32, align 8, !tbaa !5
  %619 = load ptr, ptr %29, align 8, !tbaa !5
  %620 = getelementptr inbounds float, ptr %619, i64 1
  %621 = load ptr, ptr %30, align 8, !tbaa !5
  %622 = getelementptr inbounds float, ptr %621, i64 1
  %623 = load ptr, ptr %28, align 8, !tbaa !5
  %624 = load ptr, ptr %33, align 8, !tbaa !5
  %625 = load ptr, ptr %34, align 8, !tbaa !5
  %626 = load ptr, ptr %35, align 8, !tbaa !5
  %627 = load i32, ptr %52, align 4, !tbaa !9
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds float, ptr %626, i64 %628
  %630 = load ptr, ptr %37, align 8, !tbaa !5
  %631 = getelementptr inbounds i32, ptr %630, i64 1
  %632 = load ptr, ptr %38, align 8, !tbaa !5
  call void @strsen_(ptr noundef %604, ptr noundef %605, ptr noundef %607, ptr noundef %608, ptr noundef %612, ptr noundef %613, ptr noundef %617, ptr noundef %618, ptr noundef %620, ptr noundef %622, ptr noundef %623, ptr noundef %624, ptr noundef %625, ptr noundef %629, ptr noundef %45, ptr noundef %631, ptr noundef %632, ptr noundef %56)
  %633 = load i32, ptr %72, align 4, !tbaa !9
  %634 = icmp ne i32 %633, 0
  br i1 %634, label %658, label %635

635:                                              ; preds = %598
  %636 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %636, ptr %45, align 4, !tbaa !9
  %637 = load ptr, ptr %25, align 8, !tbaa !5
  %638 = load i32, ptr %637, align 4, !tbaa !9
  %639 = load ptr, ptr %28, align 8, !tbaa !5
  %640 = load i32, ptr %639, align 4, !tbaa !9
  %641 = shl i32 %640, 1
  %642 = load ptr, ptr %25, align 8, !tbaa !5
  %643 = load i32, ptr %642, align 4, !tbaa !9
  %644 = load ptr, ptr %28, align 8, !tbaa !5
  %645 = load i32, ptr %644, align 4, !tbaa !9
  %646 = sub nsw i32 %643, %645
  %647 = mul nsw i32 %641, %646
  %648 = add nsw i32 %638, %647
  store i32 %648, ptr %46, align 4, !tbaa !9
  %649 = load i32, ptr %45, align 4, !tbaa !9
  %650 = load i32, ptr %46, align 4, !tbaa !9
  %651 = icmp sge i32 %649, %650
  br i1 %651, label %652, label %654

652:                                              ; preds = %635
  %653 = load i32, ptr %45, align 4, !tbaa !9
  br label %656

654:                                              ; preds = %635
  %655 = load i32, ptr %46, align 4, !tbaa !9
  br label %656

656:                                              ; preds = %654, %652
  %657 = phi i32 [ %653, %652 ], [ %655, %654 ]
  store i32 %657, ptr %71, align 4, !tbaa !9
  br label %658

658:                                              ; preds = %656, %598
  %659 = load i32, ptr %56, align 4, !tbaa !9
  %660 = icmp eq i32 %659, -15
  br i1 %660, label %661, label %663

661:                                              ; preds = %658
  %662 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -16, ptr %662, align 4, !tbaa !9
  br label %679

663:                                              ; preds = %658
  %664 = load i32, ptr %56, align 4, !tbaa !9
  %665 = icmp eq i32 %664, -17
  br i1 %665, label %666, label %668

666:                                              ; preds = %663
  %667 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -18, ptr %667, align 4, !tbaa !9
  br label %678

668:                                              ; preds = %663
  %669 = load i32, ptr %56, align 4, !tbaa !9
  %670 = icmp sgt i32 %669, 0
  br i1 %670, label %671, label %677

671:                                              ; preds = %668
  %672 = load i32, ptr %56, align 4, !tbaa !9
  %673 = load ptr, ptr %25, align 8, !tbaa !5
  %674 = load i32, ptr %673, align 4, !tbaa !9
  %675 = add nsw i32 %672, %674
  %676 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 %675, ptr %676, align 4, !tbaa !9
  br label %677

677:                                              ; preds = %671, %668
  br label %678

678:                                              ; preds = %677, %666
  br label %679

679:                                              ; preds = %678, %661
  br label %680

680:                                              ; preds = %679, %557, %554
  %681 = load i32, ptr %78, align 4, !tbaa !9
  %682 = icmp ne i32 %681, 0
  br i1 %682, label %683, label %695

683:                                              ; preds = %680
  %684 = load ptr, ptr %25, align 8, !tbaa !5
  %685 = load ptr, ptr %35, align 8, !tbaa !5
  %686 = load i32, ptr %48, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %685, i64 %687
  %689 = load ptr, ptr %25, align 8, !tbaa !5
  %690 = load ptr, ptr %31, align 8, !tbaa !5
  %691 = load i32, ptr %44, align 4, !tbaa !9
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds float, ptr %690, i64 %692
  %694 = load ptr, ptr %32, align 8, !tbaa !5
  call void @sgebak_(ptr noundef @.str.9, ptr noundef @.str.13, ptr noundef %684, ptr noundef %80, ptr noundef %79, ptr noundef %688, ptr noundef %689, ptr noundef %693, ptr noundef %694, ptr noundef %50)
  br label %695

695:                                              ; preds = %683, %680
  %696 = load i32, ptr %63, align 4, !tbaa !9
  %697 = icmp ne i32 %696, 0
  br i1 %697, label %698, label %975

698:                                              ; preds = %695
  %699 = load ptr, ptr %25, align 8, !tbaa !5
  %700 = load ptr, ptr %25, align 8, !tbaa !5
  %701 = load ptr, ptr %26, align 8, !tbaa !5
  %702 = load i32, ptr %42, align 4, !tbaa !9
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds float, ptr %701, i64 %703
  %705 = load ptr, ptr %27, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef %49, ptr noundef %699, ptr noundef %700, ptr noundef %704, ptr noundef %705, ptr noundef %50)
  %706 = load ptr, ptr %27, align 8, !tbaa !5
  %707 = load i32, ptr %706, align 4, !tbaa !9
  %708 = add nsw i32 %707, 1
  store i32 %708, ptr %45, align 4, !tbaa !9
  %709 = load ptr, ptr %25, align 8, !tbaa !5
  %710 = load ptr, ptr %26, align 8, !tbaa !5
  %711 = load i32, ptr %42, align 4, !tbaa !9
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds float, ptr %710, i64 %712
  %714 = load ptr, ptr %29, align 8, !tbaa !5
  %715 = getelementptr inbounds float, ptr %714, i64 1
  call void @scopy_(ptr noundef %709, ptr noundef %713, ptr noundef %45, ptr noundef %715, ptr noundef @c__1)
  %716 = load i32, ptr %77, align 4, !tbaa !9
  %717 = icmp ne i32 %716, 0
  br i1 %717, label %721, label %718

718:                                              ; preds = %698
  %719 = load i32, ptr %67, align 4, !tbaa !9
  %720 = icmp ne i32 %719, 0
  br i1 %720, label %721, label %733

721:                                              ; preds = %718, %698
  %722 = load ptr, ptr %40, align 8, !tbaa !5
  %723 = load i32, ptr %722, align 4, !tbaa !9
  %724 = icmp eq i32 %723, 0
  br i1 %724, label %725, label %733

725:                                              ; preds = %721
  %726 = load ptr, ptr %34, align 8, !tbaa !5
  %727 = load float, ptr %726, align 4, !tbaa !11
  %728 = getelementptr inbounds [1 x float], ptr %81, i64 0, i64 0
  store float %727, ptr %728, align 4, !tbaa !11
  %729 = getelementptr inbounds [1 x float], ptr %81, i64 0, i64 0
  call void @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef %49, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %729, ptr noundef @c__1, ptr noundef %50)
  %730 = getelementptr inbounds [1 x float], ptr %81, i64 0, i64 0
  %731 = load float, ptr %730, align 4, !tbaa !11
  %732 = load ptr, ptr %34, align 8, !tbaa !5
  store float %731, ptr %732, align 4, !tbaa !11
  br label %733

733:                                              ; preds = %725, %721, %718
  %734 = load float, ptr %65, align 4, !tbaa !11
  %735 = load float, ptr %73, align 4, !tbaa !11
  %736 = fcmp oeq float %734, %735
  br i1 %736, label %737, label %954

737:                                              ; preds = %733
  %738 = load i32, ptr %57, align 4, !tbaa !9
  %739 = icmp sgt i32 %738, 0
  br i1 %739, label %740, label %750

740:                                              ; preds = %737
  %741 = load i32, ptr %57, align 4, !tbaa !9
  %742 = add nsw i32 %741, 1
  store i32 %742, ptr %60, align 4, !tbaa !9
  %743 = load i32, ptr %79, align 4, !tbaa !9
  %744 = sub nsw i32 %743, 1
  store i32 %744, ptr %61, align 4, !tbaa !9
  %745 = load i32, ptr %80, align 4, !tbaa !9
  %746 = sub nsw i32 %745, 1
  store i32 %746, ptr %45, align 4, !tbaa !9
  %747 = load ptr, ptr %30, align 8, !tbaa !5
  %748 = getelementptr inbounds float, ptr %747, i64 1
  %749 = load ptr, ptr %25, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef %49, ptr noundef %45, ptr noundef @c__1, ptr noundef %748, ptr noundef %749, ptr noundef %50)
  br label %762

750:                                              ; preds = %737
  %751 = load i32, ptr %75, align 4, !tbaa !9
  %752 = icmp ne i32 %751, 0
  br i1 %752, label %753, label %757

753:                                              ; preds = %750
  store i32 1, ptr %60, align 4, !tbaa !9
  %754 = load ptr, ptr %25, align 8, !tbaa !5
  %755 = load i32, ptr %754, align 4, !tbaa !9
  %756 = sub nsw i32 %755, 1
  store i32 %756, ptr %61, align 4, !tbaa !9
  br label %761

757:                                              ; preds = %750
  %758 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %758, ptr %60, align 4, !tbaa !9
  %759 = load i32, ptr %79, align 4, !tbaa !9
  %760 = sub nsw i32 %759, 1
  store i32 %760, ptr %61, align 4, !tbaa !9
  br label %761

761:                                              ; preds = %757, %753
  br label %762

762:                                              ; preds = %761, %740
  %763 = load i32, ptr %60, align 4, !tbaa !9
  %764 = sub nsw i32 %763, 1
  store i32 %764, ptr %54, align 4, !tbaa !9
  %765 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %765, ptr %45, align 4, !tbaa !9
  %766 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %766, ptr %55, align 4, !tbaa !9
  br label %767

767:                                              ; preds = %950, %762
  %768 = load i32, ptr %55, align 4, !tbaa !9
  %769 = load i32, ptr %45, align 4, !tbaa !9
  %770 = icmp sle i32 %768, %769
  br i1 %770, label %771, label %953

771:                                              ; preds = %767
  %772 = load i32, ptr %55, align 4, !tbaa !9
  %773 = load i32, ptr %54, align 4, !tbaa !9
  %774 = icmp slt i32 %772, %773
  br i1 %774, label %775, label %776

775:                                              ; preds = %771
  br label %949

776:                                              ; preds = %771
  %777 = load ptr, ptr %30, align 8, !tbaa !5
  %778 = load i32, ptr %55, align 4, !tbaa !9
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds float, ptr %777, i64 %779
  %781 = load float, ptr %780, align 4, !tbaa !11
  %782 = fcmp oeq float %781, 0.000000e+00
  br i1 %782, label %783, label %786

783:                                              ; preds = %776
  %784 = load i32, ptr %55, align 4, !tbaa !9
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr %54, align 4, !tbaa !9
  br label %948

786:                                              ; preds = %776
  %787 = load ptr, ptr %26, align 8, !tbaa !5
  %788 = load i32, ptr %55, align 4, !tbaa !9
  %789 = add nsw i32 %788, 1
  %790 = load i32, ptr %55, align 4, !tbaa !9
  %791 = load i32, ptr %41, align 4, !tbaa !9
  %792 = mul nsw i32 %790, %791
  %793 = add nsw i32 %789, %792
  %794 = sext i32 %793 to i64
  %795 = getelementptr inbounds float, ptr %787, i64 %794
  %796 = load float, ptr %795, align 4, !tbaa !11
  %797 = fcmp oeq float %796, 0.000000e+00
  br i1 %797, label %798, label %808

798:                                              ; preds = %786
  %799 = load ptr, ptr %30, align 8, !tbaa !5
  %800 = load i32, ptr %55, align 4, !tbaa !9
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds float, ptr %799, i64 %801
  store float 0.000000e+00, ptr %802, align 4, !tbaa !11
  %803 = load ptr, ptr %30, align 8, !tbaa !5
  %804 = load i32, ptr %55, align 4, !tbaa !9
  %805 = add nsw i32 %804, 1
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds float, ptr %803, i64 %806
  store float 0.000000e+00, ptr %807, align 4, !tbaa !11
  br label %945

808:                                              ; preds = %786
  %809 = load ptr, ptr %26, align 8, !tbaa !5
  %810 = load i32, ptr %55, align 4, !tbaa !9
  %811 = add nsw i32 %810, 1
  %812 = load i32, ptr %55, align 4, !tbaa !9
  %813 = load i32, ptr %41, align 4, !tbaa !9
  %814 = mul nsw i32 %812, %813
  %815 = add nsw i32 %811, %814
  %816 = sext i32 %815 to i64
  %817 = getelementptr inbounds float, ptr %809, i64 %816
  %818 = load float, ptr %817, align 4, !tbaa !11
  %819 = fcmp une float %818, 0.000000e+00
  br i1 %819, label %820, label %944

820:                                              ; preds = %808
  %821 = load ptr, ptr %26, align 8, !tbaa !5
  %822 = load i32, ptr %55, align 4, !tbaa !9
  %823 = load i32, ptr %55, align 4, !tbaa !9
  %824 = add nsw i32 %823, 1
  %825 = load i32, ptr %41, align 4, !tbaa !9
  %826 = mul nsw i32 %824, %825
  %827 = add nsw i32 %822, %826
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds float, ptr %821, i64 %828
  %830 = load float, ptr %829, align 4, !tbaa !11
  %831 = fcmp oeq float %830, 0.000000e+00
  br i1 %831, label %832, label %944

832:                                              ; preds = %820
  %833 = load ptr, ptr %30, align 8, !tbaa !5
  %834 = load i32, ptr %55, align 4, !tbaa !9
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds float, ptr %833, i64 %835
  store float 0.000000e+00, ptr %836, align 4, !tbaa !11
  %837 = load ptr, ptr %30, align 8, !tbaa !5
  %838 = load i32, ptr %55, align 4, !tbaa !9
  %839 = add nsw i32 %838, 1
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds float, ptr %837, i64 %840
  store float 0.000000e+00, ptr %841, align 4, !tbaa !11
  %842 = load i32, ptr %55, align 4, !tbaa !9
  %843 = icmp sgt i32 %842, 1
  br i1 %843, label %844, label %862

844:                                              ; preds = %832
  %845 = load i32, ptr %55, align 4, !tbaa !9
  %846 = sub nsw i32 %845, 1
  store i32 %846, ptr %46, align 4, !tbaa !9
  %847 = load ptr, ptr %26, align 8, !tbaa !5
  %848 = load i32, ptr %55, align 4, !tbaa !9
  %849 = load i32, ptr %41, align 4, !tbaa !9
  %850 = mul nsw i32 %848, %849
  %851 = add nsw i32 %850, 1
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds float, ptr %847, i64 %852
  %854 = load ptr, ptr %26, align 8, !tbaa !5
  %855 = load i32, ptr %55, align 4, !tbaa !9
  %856 = add nsw i32 %855, 1
  %857 = load i32, ptr %41, align 4, !tbaa !9
  %858 = mul nsw i32 %856, %857
  %859 = add nsw i32 %858, 1
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds float, ptr %854, i64 %860
  call void @sswap_(ptr noundef %46, ptr noundef %853, ptr noundef @c__1, ptr noundef %861, ptr noundef @c__1)
  br label %862

862:                                              ; preds = %844, %832
  %863 = load ptr, ptr %25, align 8, !tbaa !5
  %864 = load i32, ptr %863, align 4, !tbaa !9
  %865 = load i32, ptr %55, align 4, !tbaa !9
  %866 = add nsw i32 %865, 1
  %867 = icmp sgt i32 %864, %866
  br i1 %867, label %868, label %895

868:                                              ; preds = %862
  %869 = load ptr, ptr %25, align 8, !tbaa !5
  %870 = load i32, ptr %869, align 4, !tbaa !9
  %871 = load i32, ptr %55, align 4, !tbaa !9
  %872 = sub nsw i32 %870, %871
  %873 = sub nsw i32 %872, 1
  store i32 %873, ptr %46, align 4, !tbaa !9
  %874 = load ptr, ptr %26, align 8, !tbaa !5
  %875 = load i32, ptr %55, align 4, !tbaa !9
  %876 = load i32, ptr %55, align 4, !tbaa !9
  %877 = add nsw i32 %876, 2
  %878 = load i32, ptr %41, align 4, !tbaa !9
  %879 = mul nsw i32 %877, %878
  %880 = add nsw i32 %875, %879
  %881 = sext i32 %880 to i64
  %882 = getelementptr inbounds float, ptr %874, i64 %881
  %883 = load ptr, ptr %27, align 8, !tbaa !5
  %884 = load ptr, ptr %26, align 8, !tbaa !5
  %885 = load i32, ptr %55, align 4, !tbaa !9
  %886 = add nsw i32 %885, 1
  %887 = load i32, ptr %55, align 4, !tbaa !9
  %888 = add nsw i32 %887, 2
  %889 = load i32, ptr %41, align 4, !tbaa !9
  %890 = mul nsw i32 %888, %889
  %891 = add nsw i32 %886, %890
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds float, ptr %884, i64 %892
  %894 = load ptr, ptr %27, align 8, !tbaa !5
  call void @sswap_(ptr noundef %46, ptr noundef %882, ptr noundef %883, ptr noundef %893, ptr noundef %894)
  br label %895

895:                                              ; preds = %868, %862
  %896 = load i32, ptr %78, align 4, !tbaa !9
  %897 = icmp ne i32 %896, 0
  br i1 %897, label %898, label %915

898:                                              ; preds = %895
  %899 = load ptr, ptr %25, align 8, !tbaa !5
  %900 = load ptr, ptr %31, align 8, !tbaa !5
  %901 = load i32, ptr %55, align 4, !tbaa !9
  %902 = load i32, ptr %43, align 4, !tbaa !9
  %903 = mul nsw i32 %901, %902
  %904 = add nsw i32 %903, 1
  %905 = sext i32 %904 to i64
  %906 = getelementptr inbounds float, ptr %900, i64 %905
  %907 = load ptr, ptr %31, align 8, !tbaa !5
  %908 = load i32, ptr %55, align 4, !tbaa !9
  %909 = add nsw i32 %908, 1
  %910 = load i32, ptr %43, align 4, !tbaa !9
  %911 = mul nsw i32 %909, %910
  %912 = add nsw i32 %911, 1
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds float, ptr %907, i64 %913
  call void @sswap_(ptr noundef %899, ptr noundef %906, ptr noundef @c__1, ptr noundef %914, ptr noundef @c__1)
  br label %915

915:                                              ; preds = %898, %895
  %916 = load ptr, ptr %26, align 8, !tbaa !5
  %917 = load i32, ptr %55, align 4, !tbaa !9
  %918 = add nsw i32 %917, 1
  %919 = load i32, ptr %55, align 4, !tbaa !9
  %920 = load i32, ptr %41, align 4, !tbaa !9
  %921 = mul nsw i32 %919, %920
  %922 = add nsw i32 %918, %921
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds float, ptr %916, i64 %923
  %925 = load float, ptr %924, align 4, !tbaa !11
  %926 = load ptr, ptr %26, align 8, !tbaa !5
  %927 = load i32, ptr %55, align 4, !tbaa !9
  %928 = load i32, ptr %55, align 4, !tbaa !9
  %929 = add nsw i32 %928, 1
  %930 = load i32, ptr %41, align 4, !tbaa !9
  %931 = mul nsw i32 %929, %930
  %932 = add nsw i32 %927, %931
  %933 = sext i32 %932 to i64
  %934 = getelementptr inbounds float, ptr %926, i64 %933
  store float %925, ptr %934, align 4, !tbaa !11
  %935 = load ptr, ptr %26, align 8, !tbaa !5
  %936 = load i32, ptr %55, align 4, !tbaa !9
  %937 = add nsw i32 %936, 1
  %938 = load i32, ptr %55, align 4, !tbaa !9
  %939 = load i32, ptr %41, align 4, !tbaa !9
  %940 = mul nsw i32 %938, %939
  %941 = add nsw i32 %937, %940
  %942 = sext i32 %941 to i64
  %943 = getelementptr inbounds float, ptr %935, i64 %942
  store float 0.000000e+00, ptr %943, align 4, !tbaa !11
  br label %944

944:                                              ; preds = %915, %820, %808
  br label %945

945:                                              ; preds = %944, %798
  %946 = load i32, ptr %55, align 4, !tbaa !9
  %947 = add nsw i32 %946, 2
  store i32 %947, ptr %54, align 4, !tbaa !9
  br label %948

948:                                              ; preds = %945, %783
  br label %949

949:                                              ; preds = %948, %775
  br label %950

950:                                              ; preds = %949
  %951 = load i32, ptr %55, align 4, !tbaa !9
  %952 = add nsw i32 %951, 1
  store i32 %952, ptr %55, align 4, !tbaa !9
  br label %767, !llvm.loop !15

953:                                              ; preds = %767
  br label %954

954:                                              ; preds = %953, %733
  %955 = load ptr, ptr %25, align 8, !tbaa !5
  %956 = load i32, ptr %955, align 4, !tbaa !9
  %957 = load i32, ptr %57, align 4, !tbaa !9
  %958 = sub nsw i32 %956, %957
  store i32 %958, ptr %45, align 4, !tbaa !9
  %959 = load ptr, ptr %25, align 8, !tbaa !5
  %960 = load i32, ptr %959, align 4, !tbaa !9
  %961 = load i32, ptr %57, align 4, !tbaa !9
  %962 = sub nsw i32 %960, %961
  store i32 %962, ptr %47, align 4, !tbaa !9
  %963 = load i32, ptr %47, align 4, !tbaa !9
  %964 = icmp sge i32 %963, 1
  br i1 %964, label %965, label %967

965:                                              ; preds = %954
  %966 = load i32, ptr %47, align 4, !tbaa !9
  br label %968

967:                                              ; preds = %954
  br label %968

968:                                              ; preds = %967, %965
  %969 = phi i32 [ %966, %965 ], [ 1, %967 ]
  store i32 %969, ptr %46, align 4, !tbaa !9
  %970 = load ptr, ptr %30, align 8, !tbaa !5
  %971 = load i32, ptr %57, align 4, !tbaa !9
  %972 = add nsw i32 %971, 1
  %973 = sext i32 %972 to i64
  %974 = getelementptr inbounds float, ptr %970, i64 %973
  call void @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %65, ptr noundef %49, ptr noundef %45, ptr noundef @c__1, ptr noundef %974, ptr noundef %46, ptr noundef %50)
  br label %975

975:                                              ; preds = %968, %695
  %976 = load i32, ptr %75, align 4, !tbaa !9
  %977 = icmp ne i32 %976, 0
  br i1 %977, label %978, label %1066

978:                                              ; preds = %975
  %979 = load ptr, ptr %40, align 8, !tbaa !5
  %980 = load i32, ptr %979, align 4, !tbaa !9
  %981 = icmp eq i32 %980, 0
  br i1 %981, label %982, label %1066

982:                                              ; preds = %978
  store i32 1, ptr %69, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  %983 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 0, ptr %983, align 4, !tbaa !9
  store i32 0, ptr %64, align 4, !tbaa !9
  %984 = load ptr, ptr %25, align 8, !tbaa !5
  %985 = load i32, ptr %984, align 4, !tbaa !9
  store i32 %985, ptr %45, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %986

986:                                              ; preds = %1062, %982
  %987 = load i32, ptr %55, align 4, !tbaa !9
  %988 = load i32, ptr %45, align 4, !tbaa !9
  %989 = icmp sle i32 %987, %988
  br i1 %989, label %990, label %1065

990:                                              ; preds = %986
  %991 = load ptr, ptr %23, align 8, !tbaa !5
  %992 = load ptr, ptr %29, align 8, !tbaa !5
  %993 = load i32, ptr %55, align 4, !tbaa !9
  %994 = sext i32 %993 to i64
  %995 = getelementptr inbounds float, ptr %992, i64 %994
  %996 = load ptr, ptr %30, align 8, !tbaa !5
  %997 = load i32, ptr %55, align 4, !tbaa !9
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds float, ptr %996, i64 %998
  %1000 = call i32 (ptr, ptr, ...) %991(ptr noundef %995, ptr noundef %999)
  store i32 %1000, ptr %58, align 4, !tbaa !9
  %1001 = load ptr, ptr %30, align 8, !tbaa !5
  %1002 = load i32, ptr %55, align 4, !tbaa !9
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds float, ptr %1001, i64 %1003
  %1005 = load float, ptr %1004, align 4, !tbaa !11
  %1006 = fcmp oeq float %1005, 0.000000e+00
  br i1 %1006, label %1007, label %1026

1007:                                             ; preds = %990
  %1008 = load i32, ptr %58, align 4, !tbaa !9
  %1009 = icmp ne i32 %1008, 0
  br i1 %1009, label %1010, label %1014

1010:                                             ; preds = %1007
  %1011 = load ptr, ptr %28, align 8, !tbaa !5
  %1012 = load i32, ptr %1011, align 4, !tbaa !9
  %1013 = add nsw i32 %1012, 1
  store i32 %1013, ptr %1011, align 4, !tbaa !9
  br label %1014

1014:                                             ; preds = %1010, %1007
  store i32 0, ptr %64, align 4, !tbaa !9
  %1015 = load i32, ptr %58, align 4, !tbaa !9
  %1016 = icmp ne i32 %1015, 0
  br i1 %1016, label %1017, label %1025

1017:                                             ; preds = %1014
  %1018 = load i32, ptr %69, align 4, !tbaa !9
  %1019 = icmp ne i32 %1018, 0
  br i1 %1019, label %1025, label %1020

1020:                                             ; preds = %1017
  %1021 = load ptr, ptr %25, align 8, !tbaa !5
  %1022 = load i32, ptr %1021, align 4, !tbaa !9
  %1023 = add nsw i32 %1022, 2
  %1024 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 %1023, ptr %1024, align 4, !tbaa !9
  br label %1025

1025:                                             ; preds = %1020, %1017, %1014
  br label %1059

1026:                                             ; preds = %990
  %1027 = load i32, ptr %64, align 4, !tbaa !9
  %1028 = icmp eq i32 %1027, 1
  br i1 %1028, label %1029, label %1057

1029:                                             ; preds = %1026
  %1030 = load i32, ptr %58, align 4, !tbaa !9
  %1031 = icmp ne i32 %1030, 0
  br i1 %1031, label %1035, label %1032

1032:                                             ; preds = %1029
  %1033 = load i32, ptr %69, align 4, !tbaa !9
  %1034 = icmp ne i32 %1033, 0
  br label %1035

1035:                                             ; preds = %1032, %1029
  %1036 = phi i1 [ true, %1029 ], [ %1034, %1032 ]
  %1037 = zext i1 %1036 to i32
  store i32 %1037, ptr %58, align 4, !tbaa !9
  %1038 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %1038, ptr %69, align 4, !tbaa !9
  %1039 = load i32, ptr %58, align 4, !tbaa !9
  %1040 = icmp ne i32 %1039, 0
  br i1 %1040, label %1041, label %1045

1041:                                             ; preds = %1035
  %1042 = load ptr, ptr %28, align 8, !tbaa !5
  %1043 = load i32, ptr %1042, align 4, !tbaa !9
  %1044 = add nsw i32 %1043, 2
  store i32 %1044, ptr %1042, align 4, !tbaa !9
  br label %1045

1045:                                             ; preds = %1041, %1035
  store i32 -1, ptr %64, align 4, !tbaa !9
  %1046 = load i32, ptr %58, align 4, !tbaa !9
  %1047 = icmp ne i32 %1046, 0
  br i1 %1047, label %1048, label %1056

1048:                                             ; preds = %1045
  %1049 = load i32, ptr %62, align 4, !tbaa !9
  %1050 = icmp ne i32 %1049, 0
  br i1 %1050, label %1056, label %1051

1051:                                             ; preds = %1048
  %1052 = load ptr, ptr %25, align 8, !tbaa !5
  %1053 = load i32, ptr %1052, align 4, !tbaa !9
  %1054 = add nsw i32 %1053, 2
  %1055 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 %1054, ptr %1055, align 4, !tbaa !9
  br label %1056

1056:                                             ; preds = %1051, %1048, %1045
  br label %1058

1057:                                             ; preds = %1026
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %1058

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

1059:                                             ; preds = %1058, %1025
  %1060 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %1060, ptr %62, align 4, !tbaa !9
  %1061 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %1061, ptr %69, align 4, !tbaa !9
  br label %1062

1062:                                             ; preds = %1059
  %1063 = load i32, ptr %55, align 4, !tbaa !9
  %1064 = add nsw i32 %1063, 1
  store i32 %1064, ptr %55, align 4, !tbaa !9
  br label %986, !llvm.loop !16

1065:                                             ; preds = %986
  br label %1066

1066:                                             ; preds = %1065, %978, %975
  %1067 = load i32, ptr %71, align 4, !tbaa !9
  %1068 = sitofp i32 %1067 to float
  %1069 = load ptr, ptr %35, align 8, !tbaa !5
  %1070 = getelementptr inbounds float, ptr %1069, i64 1
  store float %1068, ptr %1070, align 4, !tbaa !11
  %1071 = load i32, ptr %77, align 4, !tbaa !9
  %1072 = icmp ne i32 %1071, 0
  br i1 %1072, label %1076, label %1073

1073:                                             ; preds = %1066
  %1074 = load i32, ptr %67, align 4, !tbaa !9
  %1075 = icmp ne i32 %1074, 0
  br i1 %1075, label %1076, label %1087

1076:                                             ; preds = %1073, %1066
  %1077 = load ptr, ptr %28, align 8, !tbaa !5
  %1078 = load i32, ptr %1077, align 4, !tbaa !9
  %1079 = load ptr, ptr %25, align 8, !tbaa !5
  %1080 = load i32, ptr %1079, align 4, !tbaa !9
  %1081 = load ptr, ptr %28, align 8, !tbaa !5
  %1082 = load i32, ptr %1081, align 4, !tbaa !9
  %1083 = sub nsw i32 %1080, %1082
  %1084 = mul nsw i32 %1078, %1083
  %1085 = load ptr, ptr %37, align 8, !tbaa !5
  %1086 = getelementptr inbounds i32, ptr %1085, i64 1
  store i32 %1084, ptr %1086, align 4, !tbaa !9
  br label %1090

1087:                                             ; preds = %1073
  %1088 = load ptr, ptr %37, align 8, !tbaa !5
  %1089 = getelementptr inbounds i32, ptr %1088, i64 1
  store i32 1, ptr %1089, align 4, !tbaa !9
  br label %1090

1090:                                             ; preds = %1087, %1076
  store i32 1, ptr %83, align 4
  br label %1091

1091:                                             ; preds = %1090, %398, %392, %384
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  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 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 @strsen_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

declare void @sswap_(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 = { nounwind }

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

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


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

51:                                               ; preds = %20
  %52 = load i32, ptr %17, align 4, !tbaa !5
  %53 = icmp eq i32 %52, -1
  br label %54

54:                                               ; preds = %51, %20
  %55 = phi i1 [ true, %20 ], [ %53, %51 ]
  %.not = icmp ne i32 %43, 0
  br i1 %.not, label %58, label %56

56:                                               ; preds = %54
  %57 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #5
  %.not421 = icmp eq i32 %57, 0
  br i1 %.not421, label %.thread445.sink.split, label %58

58:                                               ; preds = %56, %54
  %.not423 = icmp eq i32 %44, 0
  br i1 %.not423, label %59, label %61

59:                                               ; preds = %58
  %60 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #5
  %.not422 = icmp eq i32 %60, 0
  br i1 %.not422, label %.thread445.sink.split, label %61

61:                                               ; preds = %59, %58
  %62 = icmp eq i32 %45, 0
  %63 = icmp eq i32 %46, 0
  %or.cond.not467 = select i1 %62, i1 %63, i1 false
  %64 = icmp eq i32 %47, 0
  %or.cond3.not464 = select i1 %or.cond.not467, i1 %64, i1 false
  %65 = icmp eq i32 %48, 0
  %or.cond5.not462 = select i1 %or.cond3.not464, i1 %65, i1 false
  %66 = or i32 %45, %44
  %or.cond7.not = icmp eq i32 %66, 0
  %or.cond440 = select i1 %or.cond5.not462, i1 true, i1 %or.cond7.not
  br i1 %or.cond440, label %.thread445.sink.split, label %67

67:                                               ; preds = %61
  %68 = load i32, ptr %4, align 4, !tbaa !5
  %69 = icmp slt i32 %68, 0
  br i1 %69, label %.thread445.sink.split, label %70

70:                                               ; preds = %67
  %71 = load i32, ptr %6, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %68, i32 1)
  %72 = icmp slt i32 %71, %spec.select
  br i1 %72, label %.thread445.sink.split, label %73

73:                                               ; preds = %70
  %74 = load i32, ptr %11, align 4, !tbaa !5
  %75 = icmp slt i32 %74, 1
  %76 = icmp ult i32 %74, %68
  %or.cond460 = and i1 %.not, %76
  %or.cond = or i1 %75, %or.cond460
  br i1 %or.cond, label %.thread445.sink.split, label %77

77:                                               ; preds = %73
  %.pr = load i32, ptr %19, align 4, !tbaa !5
  %78 = icmp eq i32 %.pr, 0
  br i1 %78, label %79, label %.thread445

79:                                               ; preds = %77
  %80 = icmp eq i32 %68, 0
  br i1 %80, label %113, label %81

81:                                               ; preds = %79
  %82 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #5
  %83 = add i32 %82, 2
  %84 = mul i32 %83, %68
  %85 = load i32, ptr %4, align 4, !tbaa !5
  %86 = mul nsw i32 %85, 3
  call void @shseqr_(ptr noundef nonnull @.str.1, ptr noundef %0, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %14, ptr noundef nonnull @c_n1, ptr noundef nonnull %26) #5
  %87 = load float, ptr %14, align 4, !tbaa !9
  %88 = fptosi float %87 to i32
  br i1 %.not, label %89, label %98

89:                                               ; preds = %81
  store i32 %84, ptr %21, align 4, !tbaa !5
  %90 = load i32, ptr %4, align 4, !tbaa !5
  %91 = shl i32 %90, 1
  %92 = add nsw i32 %90, -1
  %93 = call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.6, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %94 = mul nsw i32 %92, %93
  %95 = add nsw i32 %94, %91
  %96 = load i32, ptr %21, align 4
  %97 = call i32 @llvm.smax.i32(i32 %96, i32 %95)
  br label %98

98:                                               ; preds = %81, %89
  %.sink508 = phi i32 [ %97, %89 ], [ %84, %81 ]
  %99 = load i32, ptr %4, align 4, !tbaa !5
  %100 = add nsw i32 %99, %88
  %101 = call i32 @llvm.smax.i32(i32 %.sink508, i32 %100)
  store i32 %.sink508, ptr %21, align 4
  store i32 %100, ptr %22, align 4
  br i1 %62, label %102, label %107

102:                                              ; preds = %98
  store i32 %101, ptr %21, align 4, !tbaa !5
  %103 = mul nsw i32 %99, %99
  %104 = lshr i32 %103, 1
  %105 = add nsw i32 %104, %99
  store i32 %105, ptr %22, align 4, !tbaa !5
  %106 = call i32 @llvm.smax.i32(i32 %101, i32 %105)
  br label %107

107:                                              ; preds = %102, %98
  %.0391 = phi i32 [ %101, %98 ], [ %106, %102 ]
  %108 = icmp ne i32 %47, 0
  %109 = icmp ne i32 %48, 0
  %or.cond9 = select i1 %108, i1 true, i1 %109
  br i1 %or.cond9, label %110, label %113

110:                                              ; preds = %107
  %111 = mul nsw i32 %99, %99
  %112 = lshr i32 %111, 2
  br label %113

113:                                              ; preds = %79, %110, %107
  %.0399 = phi i32 [ %112, %110 ], [ 1, %107 ], [ 1, %79 ]
  %.1392 = phi i32 [ %.0391, %110 ], [ %.0391, %107 ], [ 1, %79 ]
  %.0388 = phi i32 [ %86, %110 ], [ %86, %107 ], [ 1, %79 ]
  %.1 = phi i32 [ %101, %110 ], [ %101, %107 ], [ undef, %79 ]
  store i32 %.0399, ptr %16, align 4, !tbaa !5
  %114 = sitofp i32 %.1392 to float
  store float %114, ptr %14, align 4, !tbaa !9
  %115 = load i32, ptr %15, align 4, !tbaa !5
  %116 = icmp sge i32 %115, %.0388
  %or.cond11 = select i1 %116, i1 true, i1 %55
  br i1 %or.cond11, label %117, label %.thread445.sink.split

117:                                              ; preds = %113
  %118 = load i32, ptr %17, align 4, !tbaa !5
  %119 = icmp sgt i32 %118, 0
  %or.cond13 = select i1 %119, i1 true, i1 %55
  br i1 %or.cond13, label %.thread, label %.thread445.sink.split

.thread:                                          ; preds = %117
  %.pr442.pr = load i32, ptr %19, align 4, !tbaa !5
  %.not429 = icmp eq i32 %.pr442.pr, 0
  br i1 %.not429, label %123, label %.thread445

.thread445.sink.split:                            ; preds = %117, %113, %73, %70, %67, %61, %59, %56
  %.sink = phi i32 [ -1, %56 ], [ -2, %59 ], [ -4, %61 ], [ -5, %67 ], [ -7, %70 ], [ -12, %73 ], [ -16, %113 ], [ -18, %117 ]
  store i32 %.sink, ptr %19, align 4, !tbaa !5
  br label %.thread445

.thread445:                                       ; preds = %.thread445.sink.split, %77, %.thread
  %120 = phi i32 [ %.pr442.pr, %.thread ], [ %.pr, %77 ], [ %.sink, %.thread445.sink.split ]
  %121 = sub nsw i32 0, %120
  store i32 %121, ptr %21, align 4, !tbaa !5
  %122 = call i32 @xerbla_(ptr noundef nonnull @.str.8, ptr noundef nonnull %21, i32 noundef 6) #5
  br label %339

123:                                              ; preds = %.thread
  br i1 %55, label %339, label %124

124:                                              ; preds = %123
  %125 = load i32, ptr %4, align 4, !tbaa !5
  %126 = icmp eq i32 %125, 0
  br i1 %126, label %127, label %128

127:                                              ; preds = %124
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %339

128:                                              ; preds = %124
  %129 = call float @slamch_(ptr noundef nonnull @.str.9) #5
  %130 = call float @slamch_(ptr noundef nonnull @.str.1) #5
  store float %130, ptr %29, align 4, !tbaa !9
  %131 = fdiv float 1.000000e+00, %130
  store float %131, ptr %28, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %29, ptr noundef nonnull %28) #5
  %132 = load float, ptr %29, align 4, !tbaa !9
  %133 = fpext float %132 to double
  %134 = call double @sqrt(double noundef %133) #5
  %135 = fpext float %129 to double
  %136 = fdiv double %134, %135
  %137 = fptrunc double %136 to float
  store float %137, ptr %29, align 4, !tbaa !9
  %138 = fdiv float 1.000000e+00, %137
  store float %138, ptr %28, align 4, !tbaa !9
  %139 = call float @slange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %32) #5
  store float %139, ptr %23, align 4, !tbaa !9
  %140 = fcmp ogt float %139, 0.000000e+00
  %141 = load float, ptr %29, align 4
  %142 = fcmp olt float %139, %141
  %or.cond471 = select i1 %140, i1 %142, i1 false
  br i1 %or.cond471, label %146, label %143

143:                                              ; preds = %128
  %144 = load float, ptr %28, align 4, !tbaa !9
  %145 = fcmp ogt float %139, %144
  br i1 %145, label %146, label %147

146:                                              ; preds = %128, %143
  %storemerge468 = phi float [ %144, %143 ], [ %141, %128 ]
  store float %storemerge468, ptr %27, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24) #5
  br label %147

147:                                              ; preds = %143, %146
  %.not430452 = phi i1 [ false, %146 ], [ true, %143 ]
  call void @sgebal_(ptr noundef nonnull @.str.9, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull %14, ptr noundef nonnull %24) #5
  %148 = load i32, ptr %4, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  %150 = add nsw i32 %149, %148
  %151 = load i32, ptr %15, align 4, !tbaa !5
  %152 = add i32 %151, 1
  %153 = sub i32 %152, %150
  store i32 %153, ptr %21, align 4, !tbaa !5
  %154 = sext i32 %149 to i64
  %155 = getelementptr inbounds float, ptr %41, i64 %154
  %156 = sext i32 %150 to i64
  %157 = getelementptr inbounds float, ptr %41, i64 %156
  call void @sgehrd_(ptr noundef nonnull %4, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %155, ptr noundef nonnull %157, ptr noundef nonnull %21, ptr noundef nonnull %24) #5
  br i1 %.not, label %158, label %161

158:                                              ; preds = %147
  call void @slacpy_(ptr noundef nonnull @.str.12, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11) #5
  %159 = load i32, ptr %15, align 4, !tbaa !5
  %reass.sub = sub i32 %159, %150
  %160 = add i32 %reass.sub, 1
  store i32 %160, ptr %21, align 4, !tbaa !5
  call void @sorghr_(ptr noundef nonnull %4, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %155, ptr noundef nonnull %157, ptr noundef nonnull %21, ptr noundef nonnull %24) #5
  br label %161

161:                                              ; preds = %158, %147
  store i32 0, ptr %7, align 4, !tbaa !5
  %162 = load i32, ptr %15, align 4, !tbaa !5
  %163 = sub i32 %162, %148
  store i32 %163, ptr %21, align 4, !tbaa !5
  call void @shseqr_(ptr noundef nonnull @.str.1, ptr noundef %0, ptr noundef nonnull %4, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %155, ptr noundef nonnull %21, ptr noundef nonnull %26) #5
  %164 = load i32, ptr %26, align 4, !tbaa !5
  %165 = icmp sgt i32 %164, 0
  br i1 %165, label %166, label %167

166:                                              ; preds = %161
  store i32 %164, ptr %19, align 4, !tbaa !5
  br label %167

167:                                              ; preds = %166, %161
  br i1 %.not423, label %199, label %168

168:                                              ; preds = %167
  %169 = load i32, ptr %19, align 4, !tbaa !5
  %170 = icmp eq i32 %169, 0
  br i1 %170, label %171, label %199

171:                                              ; preds = %168
  br i1 %.not430452, label %173, label %172

172:                                              ; preds = %171
  call void @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %27, ptr noundef nonnull %23, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef nonnull %4, ptr noundef nonnull %24) #5
  call void @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %27, ptr noundef nonnull %23, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %9, ptr noundef nonnull %4, ptr noundef nonnull %24) #5
  br label %173

173:                                              ; preds = %172, %171
  %174 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %174, ptr %21, align 4, !tbaa !5
  %.not433474 = icmp slt i32 %174, 1
  br i1 %.not433474, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %173, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 1, %173 ]
  %175 = getelementptr inbounds float, ptr %36, i64 %indvars.iv
  %176 = getelementptr inbounds float, ptr %37, i64 %indvars.iv
  %177 = call i32 (ptr, ptr, ...) %2(ptr noundef nonnull %175, ptr noundef nonnull %176) #5
  %178 = getelementptr inbounds i32, ptr %42, i64 %indvars.iv
  store i32 %177, ptr %178, align 4, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %179 = load i32, ptr %21, align 4, !tbaa !5
  %180 = sext i32 %179 to i64
  %.not433.not = icmp slt i64 %indvars.iv, %180
  br i1 %.not433.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph, %173
  %181 = load i32, ptr %15, align 4, !tbaa !5
  %182 = sub i32 %181, %148
  store i32 %182, ptr %21, align 4, !tbaa !5
  call void @strsen_(ptr noundef %3, ptr noundef %0, ptr noundef %18, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %7, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %155, ptr noundef nonnull %21, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %25) #5
  br i1 %62, label %183, label %191

183:                                              ; preds = %._crit_edge
  store i32 %.1, ptr %21, align 4, !tbaa !5
  %184 = load i32, ptr %4, align 4, !tbaa !5
  %185 = load i32, ptr %7, align 4, !tbaa !5
  %186 = shl i32 %185, 1
  %187 = sub nsw i32 %184, %185
  %188 = mul nsw i32 %186, %187
  %189 = add nsw i32 %188, %184
  store i32 %189, ptr %22, align 4, !tbaa !5
  %190 = call i32 @llvm.smax.i32(i32 %.1, i32 %189)
  br label %191

191:                                              ; preds = %183, %._crit_edge
  %.3 = phi i32 [ %.1, %._crit_edge ], [ %190, %183 ]
  %192 = load i32, ptr %25, align 4, !tbaa !5
  switch i32 %192, label %194 [
    i32 -15, label %.sink.split
    i32 -17, label %193
  ]

193:                                              ; preds = %191
  br label %.sink.split

194:                                              ; preds = %191
  %195 = icmp sgt i32 %192, 0
  br i1 %195, label %196, label %199

196:                                              ; preds = %194
  %197 = load i32, ptr %4, align 4, !tbaa !5
  %198 = add nsw i32 %197, %192
  br label %.sink.split

.sink.split:                                      ; preds = %191, %193, %196
  %.sink511 = phi i32 [ %198, %196 ], [ -18, %193 ], [ -16, %191 ]
  store i32 %.sink511, ptr %19, align 4, !tbaa !5
  br label %199

199:                                              ; preds = %.sink.split, %194, %168, %167
  %.4 = phi i32 [ %.3, %194 ], [ %.1, %168 ], [ %.1, %167 ], [ %.3, %.sink.split ]
  br i1 %.not, label %200, label %201

200:                                              ; preds = %199
  call void @sgebak_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %24) #5
  br label %201

201:                                              ; preds = %200, %199
  br i1 %.not430452, label %301, label %202

202:                                              ; preds = %201
  call void @slascl_(ptr noundef nonnull @.str.14, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %27, ptr noundef nonnull %23, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24) #5
  %203 = load i32, ptr %6, align 4, !tbaa !5
  %204 = add nsw i32 %203, 1
  store i32 %204, ptr %21, align 4, !tbaa !5
  call void @scopy_(ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %21, ptr noundef %8, ptr noundef nonnull @c__1) #5
  %205 = icmp ne i32 %47, 0
  %206 = icmp ne i32 %48, 0
  %or.cond15 = select i1 %205, i1 true, i1 %206
  br i1 %or.cond15, label %207, label %213

207:                                              ; preds = %202
  %208 = load i32, ptr %19, align 4, !tbaa !5
  %209 = icmp eq i32 %208, 0
  br i1 %209, label %210, label %213

210:                                              ; preds = %207
  %211 = load float, ptr %13, align 4, !tbaa !9
  store float %211, ptr %32, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %27, ptr noundef nonnull %23, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef nonnull %24) #5
  %212 = load float, ptr %32, align 4, !tbaa !9
  store float %212, ptr %13, align 4, !tbaa !9
  br label %213

213:                                              ; preds = %202, %210, %207
  %214 = load float, ptr %27, align 4, !tbaa !9
  %215 = load float, ptr %29, align 4, !tbaa !9
  %216 = fcmp oeq float %214, %215
  br i1 %216, label %217, label %.loopexit473

217:                                              ; preds = %213
  %218 = load i32, ptr %26, align 4, !tbaa !5
  %219 = icmp sgt i32 %218, 0
  br i1 %219, label %220, label %225

220:                                              ; preds = %217
  %221 = add nuw nsw i32 %218, 1
  %222 = load i32, ptr %30, align 4, !tbaa !5
  %223 = load i32, ptr %31, align 4, !tbaa !5
  %224 = add nsw i32 %223, -1
  store i32 %224, ptr %21, align 4, !tbaa !5
  call void @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %27, ptr noundef nonnull %23, ptr noundef nonnull %21, ptr noundef nonnull @c__1, ptr noundef %9, ptr noundef nonnull %4, ptr noundef nonnull %24) #5
  br label %231

225:                                              ; preds = %217
  br i1 %.not423, label %228, label %226

226:                                              ; preds = %225
  %227 = load i32, ptr %4, align 4, !tbaa !5
  br label %231

228:                                              ; preds = %225
  %229 = load i32, ptr %31, align 4, !tbaa !5
  %230 = load i32, ptr %30, align 4, !tbaa !5
  br label %231

231:                                              ; preds = %226, %228, %220
  %.0398 = phi i32 [ %221, %220 ], [ 1, %226 ], [ %229, %228 ]
  %.0397.in = phi i32 [ %222, %220 ], [ %227, %226 ], [ %230, %228 ]
  %.0397 = add nsw i32 %.0397.in, -1
  store i32 %.0397, ptr %21, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %35, i64 4
  %invariant.gep478 = getelementptr i8, ptr %40, i64 4
  %.not436482.not = icmp slt i32 %.0398, %.0397.in
  br i1 %.not436482.not, label %.lr.ph488.preheader, label %.loopexit473

.lr.ph488.preheader:                              ; preds = %231
  %232 = add nsw i32 %.0398, -1
  %233 = sext i32 %.0398 to i64
  %234 = sext i32 %33 to i64
  %235 = sext i32 %38 to i64
  br label %.lr.ph488

.lr.ph488:                                        ; preds = %.lr.ph488.preheader, %291
  %.pre504 = phi i32 [ %.0397, %.lr.ph488.preheader ], [ %.pre505, %291 ]
  %236 = phi i32 [ %.0397, %.lr.ph488.preheader ], [ %292, %291 ]
  %indvars.iv497 = phi i64 [ %233, %.lr.ph488.preheader ], [ %indvars.iv.next498.pre-phi, %291 ]
  %.0404483 = phi i32 [ %232, %.lr.ph488.preheader ], [ %.1405, %291 ]
  %indvars499 = trunc i64 %indvars.iv497 to i32
  %237 = sext i32 %.0404483 to i64
  %238 = icmp slt i64 %indvars.iv497, %237
  br i1 %238, label %.lr.ph488._crit_edge, label %239

.lr.ph488._crit_edge:                             ; preds = %.lr.ph488
  %.pre507 = add nsw i64 %indvars.iv497, 1
  br label %291

239:                                              ; preds = %.lr.ph488
  %240 = getelementptr inbounds float, ptr %37, i64 %indvars.iv497
  %241 = load float, ptr %240, align 4, !tbaa !9
  %242 = fcmp oeq float %241, 0.000000e+00
  %243 = add nsw i64 %indvars.iv497, 1
  br i1 %242, label %244, label %246

244:                                              ; preds = %239
  %245 = trunc nsw i64 %243 to i32
  br label %291

246:                                              ; preds = %239
  %247 = mul nsw i64 %indvars.iv497, %234
  %248 = getelementptr float, ptr %35, i64 %243
  %249 = getelementptr float, ptr %248, i64 %247
  %250 = load float, ptr %249, align 4, !tbaa !9
  %251 = fcmp oeq float %250, 0.000000e+00
  br i1 %251, label %252, label %253

252:                                              ; preds = %246
  store <2 x float> zeroinitializer, ptr %240, align 4, !tbaa !9
  br label %289

253:                                              ; preds = %246
  %254 = add nsw i32 %indvars499, 1
  %255 = mul nsw i64 %243, %234
  %256 = mul nsw i32 %254, %33
  %257 = sext i32 %256 to i64
  %258 = getelementptr float, ptr %35, i64 %indvars.iv497
  %259 = getelementptr float, ptr %258, i64 %257
  %260 = load float, ptr %259, align 4, !tbaa !9
  %261 = fcmp oeq float %260, 0.000000e+00
  br i1 %261, label %262, label %289

262:                                              ; preds = %253
  store <2 x float> zeroinitializer, ptr %240, align 4, !tbaa !9
  %263 = icmp sgt i64 %indvars.iv497, 1
  br i1 %263, label %264, label %267

264:                                              ; preds = %262
  %265 = trunc i64 %indvars.iv497 to i32
  %266 = add i32 %265, -1
  store i32 %266, ptr %22, align 4, !tbaa !5
  %gep = getelementptr float, ptr %invariant.gep, i64 %247
  %gep477 = getelementptr float, ptr %invariant.gep, i64 %255
  call void @sswap_(ptr noundef nonnull %22, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep477, ptr noundef nonnull @c__1) #5
  br label %267

267:                                              ; preds = %264, %262
  %268 = load i32, ptr %4, align 4, !tbaa !5
  %269 = sext i32 %268 to i64
  %270 = icmp slt i64 %243, %269
  br i1 %270, label %271, label %283

271:                                              ; preds = %267
  %272 = xor i32 %indvars499, -1
  %273 = add i32 %268, %272
  store i32 %273, ptr %22, align 4, !tbaa !5
  %274 = add nsw i64 %indvars.iv497, 2
  %275 = add nsw i32 %indvars499, 2
  %276 = mul nsw i64 %274, %234
  %277 = mul nsw i32 %275, %33
  %278 = sext i32 %277 to i64
  %279 = getelementptr float, ptr %35, i64 %indvars.iv497
  %280 = getelementptr float, ptr %279, i64 %278
  %281 = getelementptr float, ptr %35, i64 %276
  %282 = getelementptr float, ptr %281, i64 %243
  call void @sswap_(ptr noundef nonnull %22, ptr noundef %280, ptr noundef nonnull %6, ptr noundef %282, ptr noundef nonnull %6) #5
  br label %283

283:                                              ; preds = %271, %267
  br i1 %.not, label %284, label %287

284:                                              ; preds = %283
  %285 = mul nsw i64 %indvars.iv497, %235
  %gep479 = getelementptr float, ptr %invariant.gep478, i64 %285
  %286 = mul nsw i64 %243, %235
  %gep481 = getelementptr float, ptr %invariant.gep478, i64 %286
  call void @sswap_(ptr noundef nonnull %4, ptr noundef %gep479, ptr noundef nonnull @c__1, ptr noundef %gep481, ptr noundef nonnull @c__1) #5
  br label %287

287:                                              ; preds = %284, %283
  %288 = load float, ptr %249, align 4, !tbaa !9
  store float %288, ptr %259, align 4, !tbaa !9
  store float 0.000000e+00, ptr %249, align 4, !tbaa !9
  %.pre.pre = load i32, ptr %21, align 4, !tbaa !5
  br label %289

289:                                              ; preds = %253, %287, %252
  %.pre = phi i32 [ %.pre504, %253 ], [ %.pre.pre, %287 ], [ %.pre504, %252 ]
  %290 = add nsw i32 %indvars499, 2
  br label %291

291:                                              ; preds = %.lr.ph488._crit_edge, %289, %244
  %indvars.iv.next498.pre-phi = phi i64 [ %.pre507, %.lr.ph488._crit_edge ], [ %243, %289 ], [ %243, %244 ]
  %.pre505 = phi i32 [ %.pre504, %.lr.ph488._crit_edge ], [ %.pre, %289 ], [ %.pre504, %244 ]
  %292 = phi i32 [ %236, %.lr.ph488._crit_edge ], [ %.pre, %289 ], [ %236, %244 ]
  %.1405 = phi i32 [ %.0404483, %.lr.ph488._crit_edge ], [ %290, %289 ], [ %245, %244 ]
  %293 = sext i32 %292 to i64
  %.not436.not = icmp slt i64 %indvars.iv497, %293
  br i1 %.not436.not, label %.lr.ph488, label %.loopexit473, !llvm.loop !13

.loopexit473:                                     ; preds = %291, %231, %213
  %294 = load i32, ptr %4, align 4, !tbaa !5
  %295 = load i32, ptr %26, align 4, !tbaa !5
  %296 = sub nsw i32 %294, %295
  store i32 %296, ptr %21, align 4, !tbaa !5
  %297 = call i32 @llvm.smax.i32(i32 %296, i32 1)
  store i32 %297, ptr %22, align 4, !tbaa !5
  %298 = sext i32 %295 to i64
  %299 = getelementptr float, ptr %37, i64 %298
  %300 = getelementptr i8, ptr %299, i64 4
  call void @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %27, ptr noundef nonnull %23, ptr noundef nonnull %21, ptr noundef nonnull @c__1, ptr noundef %300, ptr noundef nonnull %22, ptr noundef nonnull %24) #5
  br label %301

301:                                              ; preds = %.loopexit473, %201
  br i1 %.not423, label %.loopexit, label %302

302:                                              ; preds = %301
  %303 = load i32, ptr %19, align 4, !tbaa !5
  %304 = icmp eq i32 %303, 0
  br i1 %304, label %305, label %.loopexit

305:                                              ; preds = %302
  store i32 0, ptr %7, align 4, !tbaa !5
  %306 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %306, ptr %21, align 4, !tbaa !5
  %.not437489 = icmp slt i32 %306, 1
  br i1 %.not437489, label %.loopexit, label %.lr.ph495

.lr.ph495:                                        ; preds = %305, %.thread453
  %indvars.iv500 = phi i64 [ %indvars.iv.next501, %.thread453 ], [ 1, %305 ]
  %.0389493 = phi i32 [ %.0400, %.thread453 ], [ 1, %305 ]
  %.0393492 = phi i32 [ %.1394, %.thread453 ], [ 0, %305 ]
  %.0396491 = phi i32 [ %.1390, %.thread453 ], [ 1, %305 ]
  %307 = getelementptr inbounds float, ptr %36, i64 %indvars.iv500
  %308 = getelementptr inbounds float, ptr %37, i64 %indvars.iv500
  %309 = call i32 (ptr, ptr, ...) %2(ptr noundef nonnull %307, ptr noundef nonnull %308) #5
  %310 = load float, ptr %308, align 4, !tbaa !9
  %311 = fcmp oeq float %310, 0.000000e+00
  br i1 %311, label %312, label %316

312:                                              ; preds = %.lr.ph495
  %.not439 = icmp eq i32 %309, 0
  br i1 %.not439, label %.thread453, label %313

313:                                              ; preds = %312
  %314 = load i32, ptr %7, align 4, !tbaa !5
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr %7, align 4, !tbaa !5
  %.not469 = icmp eq i32 %.0389493, 0
  br i1 %.not469, label %.thread453.sink.split, label %.thread453

316:                                              ; preds = %.lr.ph495
  %317 = icmp eq i32 %.0393492, 1
  br i1 %317, label %318, label %.thread453

318:                                              ; preds = %316
  %319 = icmp ne i32 %309, 0
  %320 = icmp ne i32 %.0389493, 0
  %321 = select i1 %319, i1 true, i1 %320
  br i1 %321, label %322, label %.thread453

322:                                              ; preds = %318
  %323 = load i32, ptr %7, align 4, !tbaa !5
  %324 = add nsw i32 %323, 2
  store i32 %324, ptr %7, align 4, !tbaa !5
  %325 = icmp eq i32 %.0396491, 0
  br i1 %325, label %.thread453.sink.split, label %.thread453

.thread453.sink.split:                            ; preds = %322, %313
  %.0400.ph = phi i32 [ %309, %313 ], [ 1, %322 ]
  %.1394.ph = phi i32 [ 0, %313 ], [ -1, %322 ]
  %.1390.ph = phi i32 [ 0, %313 ], [ 1, %322 ]
  %326 = load i32, ptr %4, align 4, !tbaa !5
  %327 = add nsw i32 %326, 2
  store i32 %327, ptr %19, align 4, !tbaa !5
  br label %.thread453

.thread453:                                       ; preds = %.thread453.sink.split, %318, %312, %316, %322, %313
  %.0400 = phi i32 [ %309, %313 ], [ 1, %322 ], [ %309, %316 ], [ 0, %312 ], [ 0, %318 ], [ %.0400.ph, %.thread453.sink.split ]
  %.1394 = phi i32 [ 0, %313 ], [ -1, %322 ], [ 1, %316 ], [ 0, %312 ], [ -1, %318 ], [ %.1394.ph, %.thread453.sink.split ]
  %.1390 = phi i32 [ %.0389493, %313 ], [ 1, %322 ], [ %.0389493, %316 ], [ %.0389493, %312 ], [ 0, %318 ], [ %.1390.ph, %.thread453.sink.split ]
  %indvars.iv.next501 = add nuw nsw i64 %indvars.iv500, 1
  %328 = load i32, ptr %21, align 4, !tbaa !5
  %329 = sext i32 %328 to i64
  %.not437.not = icmp slt i64 %indvars.iv500, %329
  br i1 %.not437.not, label %.lr.ph495, label %.loopexit, !llvm.loop !14

.loopexit:                                        ; preds = %.thread453, %305, %302, %301
  %330 = sitofp i32 %.4 to float
  store float %330, ptr %14, align 4, !tbaa !9
  %331 = icmp ne i32 %47, 0
  %332 = icmp ne i32 %48, 0
  %or.cond21 = select i1 %331, i1 true, i1 %332
  br i1 %or.cond21, label %333, label %338

333:                                              ; preds = %.loopexit
  %334 = load i32, ptr %7, align 4, !tbaa !5
  %335 = load i32, ptr %4, align 4, !tbaa !5
  %336 = sub nsw i32 %335, %334
  %337 = mul nsw i32 %336, %334
  br label %338

338:                                              ; preds = %.loopexit, %333
  %storemerge = phi i32 [ %337, %333 ], [ 1, %.loopexit ]
  store i32 %storemerge, ptr %16, align 4, !tbaa !5
  br label %339

339:                                              ; preds = %123, %338, %127, %.thread445
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  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 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 @strsen_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare void @sswap_(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) #4

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

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 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}


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