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

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

@c__10 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8
@c__4 = external hidden global i64, align 8
@.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
@.str.5 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

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

113:                                              ; preds = %20
  %114 = load ptr, ptr %40, align 8, !tbaa !5
  %115 = load i64, ptr %114, align 8, !tbaa !9
  %116 = icmp eq i64 %115, -1
  br label %117

117:                                              ; preds = %113, %20
  %118 = phi i1 [ true, %20 ], [ %116, %113 ]
  %119 = zext i1 %118 to i32
  %120 = sext i32 %119 to i64
  store i64 %120, ptr %79, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  %121 = load ptr, ptr %24, align 8, !tbaa !5
  %122 = load i64, ptr %121, align 8, !tbaa !9
  %123 = mul nsw i64 %122, 20
  store i64 %123, ptr %45, align 8, !tbaa !9
  %124 = load i64, ptr %44, align 8, !tbaa !9
  %125 = load i64, ptr %45, align 8, !tbaa !9
  %126 = icmp sge i64 %124, %125
  br i1 %126, label %127, label %129

127:                                              ; preds = %117
  %128 = load i64, ptr %44, align 8, !tbaa !9
  br label %131

129:                                              ; preds = %117
  %130 = load i64, ptr %45, align 8, !tbaa !9
  br label %131

131:                                              ; preds = %129, %127
  %132 = phi i64 [ %128, %127 ], [ %130, %129 ]
  store i64 %132, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  %133 = load ptr, ptr %24, align 8, !tbaa !5
  %134 = load i64, ptr %133, align 8, !tbaa !9
  %135 = mul nsw i64 %134, 10
  store i64 %135, ptr %45, align 8, !tbaa !9
  %136 = load i64, ptr %44, align 8, !tbaa !9
  %137 = load i64, ptr %45, align 8, !tbaa !9
  %138 = icmp sge i64 %136, %137
  br i1 %138, label %139, label %141

139:                                              ; preds = %131
  %140 = load i64, ptr %44, align 8, !tbaa !9
  br label %143

141:                                              ; preds = %131
  %142 = load i64, ptr %45, align 8, !tbaa !9
  br label %143

143:                                              ; preds = %141, %139
  %144 = phi i64 [ %140, %139 ], [ %142, %141 ]
  store i64 %144, ptr %75, align 8, !tbaa !9
  %145 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 0, ptr %145, align 8, !tbaa !9
  %146 = load i64, ptr %63, align 8, !tbaa !9
  %147 = icmp ne i64 %146, 0
  br i1 %147, label %154, label %148

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

152:                                              ; preds = %148
  %153 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -1, ptr %153, align 8, !tbaa !9
  br label %240

154:                                              ; preds = %148, %143
  %155 = load i64, ptr %64, align 8, !tbaa !9
  %156 = icmp ne i64 %155, 0
  br i1 %156, label %165, label %157

157:                                              ; preds = %154
  %158 = load i64, ptr %70, align 8, !tbaa !9
  %159 = icmp ne i64 %158, 0
  br i1 %159, label %165, label %160

160:                                              ; preds = %157
  %161 = load i64, ptr %65, align 8, !tbaa !9
  %162 = icmp ne i64 %161, 0
  br i1 %162, label %165, label %163

163:                                              ; preds = %160
  %164 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -2, ptr %164, align 8, !tbaa !9
  br label %239

165:                                              ; preds = %160, %157, %154
  %166 = load ptr, ptr %24, align 8, !tbaa !5
  %167 = load i64, ptr %166, align 8, !tbaa !9
  %168 = icmp slt i64 %167, 0
  br i1 %168, label %169, label %171

169:                                              ; preds = %165
  %170 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -3, ptr %170, align 8, !tbaa !9
  br label %238

171:                                              ; preds = %165
  %172 = load i64, ptr %70, align 8, !tbaa !9
  %173 = icmp ne i64 %172, 0
  br i1 %173, label %174, label %187

174:                                              ; preds = %171
  %175 = load ptr, ptr %24, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = icmp sgt i64 %176, 0
  br i1 %177, label %178, label %186

178:                                              ; preds = %174
  %179 = load ptr, ptr %28, align 8, !tbaa !5
  %180 = load float, ptr %179, align 4, !tbaa !11
  %181 = load ptr, ptr %27, align 8, !tbaa !5
  %182 = load float, ptr %181, align 4, !tbaa !11
  %183 = fcmp ole float %180, %182
  br i1 %183, label %184, label %186

184:                                              ; preds = %178
  %185 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -7, ptr %185, align 8, !tbaa !9
  br label %186

186:                                              ; preds = %184, %178, %174
  br label %237

187:                                              ; preds = %171
  %188 = load i64, ptr %65, align 8, !tbaa !9
  %189 = icmp ne i64 %188, 0
  br i1 %189, label %190, label %236

190:                                              ; preds = %187
  %191 = load ptr, ptr %29, align 8, !tbaa !5
  %192 = load i64, ptr %191, align 8, !tbaa !9
  %193 = icmp slt i64 %192, 1
  br i1 %193, label %207, label %194

194:                                              ; preds = %190
  %195 = load ptr, ptr %29, align 8, !tbaa !5
  %196 = load i64, ptr %195, align 8, !tbaa !9
  %197 = load ptr, ptr %24, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !9
  %199 = icmp sge i64 1, %198
  br i1 %199, label %200, label %201

200:                                              ; preds = %194
  br label %204

201:                                              ; preds = %194
  %202 = load ptr, ptr %24, align 8, !tbaa !5
  %203 = load i64, ptr %202, align 8, !tbaa !9
  br label %204

204:                                              ; preds = %201, %200
  %205 = phi i64 [ 1, %200 ], [ %203, %201 ]
  %206 = icmp sgt i64 %196, %205
  br i1 %206, label %207, label %209

207:                                              ; preds = %204, %190
  %208 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -8, ptr %208, align 8, !tbaa !9
  br label %235

209:                                              ; preds = %204
  %210 = load ptr, ptr %30, align 8, !tbaa !5
  %211 = load i64, ptr %210, align 8, !tbaa !9
  %212 = load ptr, ptr %24, align 8, !tbaa !5
  %213 = load i64, ptr %212, align 8, !tbaa !9
  %214 = load ptr, ptr %29, align 8, !tbaa !5
  %215 = load i64, ptr %214, align 8, !tbaa !9
  %216 = icmp sle i64 %213, %215
  br i1 %216, label %217, label %220

217:                                              ; preds = %209
  %218 = load ptr, ptr %24, align 8, !tbaa !5
  %219 = load i64, ptr %218, align 8, !tbaa !9
  br label %223

220:                                              ; preds = %209
  %221 = load ptr, ptr %29, align 8, !tbaa !5
  %222 = load i64, ptr %221, align 8, !tbaa !9
  br label %223

223:                                              ; preds = %220, %217
  %224 = phi i64 [ %219, %217 ], [ %222, %220 ]
  %225 = icmp slt i64 %211, %224
  br i1 %225, label %232, label %226

226:                                              ; preds = %223
  %227 = load ptr, ptr %30, align 8, !tbaa !5
  %228 = load i64, ptr %227, align 8, !tbaa !9
  %229 = load ptr, ptr %24, align 8, !tbaa !5
  %230 = load i64, ptr %229, align 8, !tbaa !9
  %231 = icmp sgt i64 %228, %230
  br i1 %231, label %232, label %234

232:                                              ; preds = %226, %223
  %233 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -9, ptr %233, align 8, !tbaa !9
  br label %234

234:                                              ; preds = %232, %226
  br label %235

235:                                              ; preds = %234, %207
  br label %236

236:                                              ; preds = %235, %187
  br label %237

237:                                              ; preds = %236, %186
  br label %238

238:                                              ; preds = %237, %169
  br label %239

239:                                              ; preds = %238, %163
  br label %240

240:                                              ; preds = %239, %152
  %241 = load ptr, ptr %41, align 8, !tbaa !5
  %242 = load i64, ptr %241, align 8, !tbaa !9
  %243 = icmp eq i64 %242, 0
  br i1 %243, label %244, label %260

244:                                              ; preds = %240
  %245 = load ptr, ptr %35, align 8, !tbaa !5
  %246 = load i64, ptr %245, align 8, !tbaa !9
  %247 = icmp slt i64 %246, 1
  br i1 %247, label %257, label %248

248:                                              ; preds = %244
  %249 = load i64, ptr %63, align 8, !tbaa !9
  %250 = icmp ne i64 %249, 0
  br i1 %250, label %251, label %259

251:                                              ; preds = %248
  %252 = load ptr, ptr %35, align 8, !tbaa !5
  %253 = load i64, ptr %252, align 8, !tbaa !9
  %254 = load ptr, ptr %24, align 8, !tbaa !5
  %255 = load i64, ptr %254, align 8, !tbaa !9
  %256 = icmp slt i64 %253, %255
  br i1 %256, label %257, label %259

257:                                              ; preds = %251, %244
  %258 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -14, ptr %258, align 8, !tbaa !9
  br label %259

259:                                              ; preds = %257, %251, %248
  br label %260

260:                                              ; preds = %259, %240
  %261 = load ptr, ptr %41, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = icmp eq i64 %262, 0
  br i1 %263, label %264, label %293

264:                                              ; preds = %260
  %265 = load i64, ptr %62, align 8, !tbaa !9
  %266 = sitofp i64 %265 to float
  %267 = load ptr, ptr %37, align 8, !tbaa !5
  %268 = getelementptr inbounds float, ptr %267, i64 1
  store float %266, ptr %268, align 4, !tbaa !11
  %269 = load i64, ptr %75, align 8, !tbaa !9
  %270 = load ptr, ptr %39, align 8, !tbaa !5
  %271 = getelementptr inbounds i64, ptr %270, i64 1
  store i64 %269, ptr %271, align 8, !tbaa !9
  %272 = load ptr, ptr %38, align 8, !tbaa !5
  %273 = load i64, ptr %272, align 8, !tbaa !9
  %274 = load i64, ptr %62, align 8, !tbaa !9
  %275 = icmp slt i64 %273, %274
  br i1 %275, label %276, label %281

276:                                              ; preds = %264
  %277 = load i64, ptr %79, align 8, !tbaa !9
  %278 = icmp ne i64 %277, 0
  br i1 %278, label %281, label %279

279:                                              ; preds = %276
  %280 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -17, ptr %280, align 8, !tbaa !9
  br label %292

281:                                              ; preds = %276, %264
  %282 = load ptr, ptr %40, align 8, !tbaa !5
  %283 = load i64, ptr %282, align 8, !tbaa !9
  %284 = load i64, ptr %75, align 8, !tbaa !9
  %285 = icmp slt i64 %283, %284
  br i1 %285, label %286, label %291

286:                                              ; preds = %281
  %287 = load i64, ptr %79, align 8, !tbaa !9
  %288 = icmp ne i64 %287, 0
  br i1 %288, label %291, label %289

289:                                              ; preds = %286
  %290 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -19, ptr %290, align 8, !tbaa !9
  br label %291

291:                                              ; preds = %289, %286, %281
  br label %292

292:                                              ; preds = %291, %279
  br label %293

293:                                              ; preds = %292, %260
  %294 = load ptr, ptr %41, align 8, !tbaa !5
  %295 = load i64, ptr %294, align 8, !tbaa !9
  %296 = icmp ne i64 %295, 0
  br i1 %296, label %297, label %302

297:                                              ; preds = %293
  %298 = load ptr, ptr %41, align 8, !tbaa !5
  %299 = load i64, ptr %298, align 8, !tbaa !9
  %300 = sub nsw i64 0, %299
  store i64 %300, ptr %44, align 8, !tbaa !9
  %301 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %44)
  store i32 0, ptr %21, align 4
  store i32 1, ptr %80, align 4
  br label %754

302:                                              ; preds = %293
  %303 = load i64, ptr %79, align 8, !tbaa !9
  %304 = icmp ne i64 %303, 0
  br i1 %304, label %305, label %306

305:                                              ; preds = %302
  store i32 0, ptr %21, align 4
  store i32 1, ptr %80, align 4
  br label %754

306:                                              ; preds = %302
  br label %307

307:                                              ; preds = %306
  %308 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 0, ptr %308, align 8, !tbaa !9
  %309 = load ptr, ptr %24, align 8, !tbaa !5
  %310 = load i64, ptr %309, align 8, !tbaa !9
  %311 = icmp eq i64 %310, 0
  br i1 %311, label %312, label %313

312:                                              ; preds = %307
  store i32 0, ptr %21, align 4
  store i32 1, ptr %80, align 4
  br label %754

313:                                              ; preds = %307
  %314 = load ptr, ptr %24, align 8, !tbaa !5
  %315 = load i64, ptr %314, align 8, !tbaa !9
  %316 = icmp eq i64 %315, 1
  br i1 %316, label %317, label %361

317:                                              ; preds = %313
  %318 = load i64, ptr %64, align 8, !tbaa !9
  %319 = icmp ne i64 %318, 0
  br i1 %319, label %323, label %320

320:                                              ; preds = %317
  %321 = load i64, ptr %65, align 8, !tbaa !9
  %322 = icmp ne i64 %321, 0
  br i1 %322, label %323, label %330

323:                                              ; preds = %320, %317
  %324 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %324, align 8, !tbaa !9
  %325 = load ptr, ptr %25, align 8, !tbaa !5
  %326 = getelementptr inbounds float, ptr %325, i64 1
  %327 = load float, ptr %326, align 4, !tbaa !11
  %328 = load ptr, ptr %33, align 8, !tbaa !5
  %329 = getelementptr inbounds float, ptr %328, i64 1
  store float %327, ptr %329, align 4, !tbaa !11
  br label %352

330:                                              ; preds = %320
  %331 = load ptr, ptr %27, align 8, !tbaa !5
  %332 = load float, ptr %331, align 4, !tbaa !11
  %333 = load ptr, ptr %25, align 8, !tbaa !5
  %334 = getelementptr inbounds float, ptr %333, i64 1
  %335 = load float, ptr %334, align 4, !tbaa !11
  %336 = fcmp olt float %332, %335
  br i1 %336, label %337, label %351

337:                                              ; preds = %330
  %338 = load ptr, ptr %28, align 8, !tbaa !5
  %339 = load float, ptr %338, align 4, !tbaa !11
  %340 = load ptr, ptr %25, align 8, !tbaa !5
  %341 = getelementptr inbounds float, ptr %340, i64 1
  %342 = load float, ptr %341, align 4, !tbaa !11
  %343 = fcmp oge float %339, %342
  br i1 %343, label %344, label %351

344:                                              ; preds = %337
  %345 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %345, align 8, !tbaa !9
  %346 = load ptr, ptr %25, align 8, !tbaa !5
  %347 = getelementptr inbounds float, ptr %346, i64 1
  %348 = load float, ptr %347, align 4, !tbaa !11
  %349 = load ptr, ptr %33, align 8, !tbaa !5
  %350 = getelementptr inbounds float, ptr %349, i64 1
  store float %348, ptr %350, align 4, !tbaa !11
  br label %351

351:                                              ; preds = %344, %337, %330
  br label %352

352:                                              ; preds = %351, %323
  %353 = load i64, ptr %63, align 8, !tbaa !9
  %354 = icmp ne i64 %353, 0
  br i1 %354, label %355, label %360

355:                                              ; preds = %352
  %356 = load ptr, ptr %34, align 8, !tbaa !5
  %357 = load i64, ptr %42, align 8, !tbaa !9
  %358 = add nsw i64 %357, 1
  %359 = getelementptr inbounds float, ptr %356, i64 %358
  store float 1.000000e+00, ptr %359, align 4, !tbaa !11
  br label %360

360:                                              ; preds = %355, %352
  store i32 0, ptr %21, align 4
  store i32 1, ptr %80, align 4
  br label %754

361:                                              ; preds = %313
  %362 = call double @slamch_(ptr noundef @.str.5)
  %363 = fptrunc double %362 to float
  store float %363, ptr %71, align 4, !tbaa !11
  %364 = call double @slamch_(ptr noundef @.str.6)
  %365 = fptrunc double %364 to float
  store float %365, ptr %51, align 4, !tbaa !11
  %366 = load float, ptr %71, align 4, !tbaa !11
  %367 = load float, ptr %51, align 4, !tbaa !11
  %368 = fdiv float %366, %367
  store float %368, ptr %78, align 4, !tbaa !11
  %369 = load float, ptr %78, align 4, !tbaa !11
  %370 = fdiv float 1.000000e+00, %369
  store float %370, ptr %72, align 4, !tbaa !11
  %371 = load float, ptr %78, align 4, !tbaa !11
  %372 = fpext float %371 to double
  %373 = call double @sqrt(double noundef %372) #4
  %374 = fptrunc double %373 to float
  store float %374, ptr %56, align 4, !tbaa !11
  %375 = load float, ptr %72, align 4, !tbaa !11
  %376 = fpext float %375 to double
  %377 = call double @sqrt(double noundef %376) #4
  %378 = fptrunc double %377 to float
  store float %378, ptr %46, align 4, !tbaa !11
  %379 = load float, ptr %71, align 4, !tbaa !11
  %380 = fpext float %379 to double
  %381 = call double @sqrt(double noundef %380) #4
  %382 = call double @sqrt(double noundef %381) #4
  %383 = fdiv double 1.000000e+00, %382
  %384 = fptrunc double %383 to float
  store float %384, ptr %47, align 4, !tbaa !11
  %385 = load float, ptr %46, align 4, !tbaa !11
  %386 = load float, ptr %47, align 4, !tbaa !11
  %387 = fcmp ole float %385, %386
  br i1 %387, label %388, label %390

388:                                              ; preds = %361
  %389 = load float, ptr %46, align 4, !tbaa !11
  br label %392

390:                                              ; preds = %361
  %391 = load float, ptr %47, align 4, !tbaa !11
  br label %392

392:                                              ; preds = %390, %388
  %393 = phi float [ %389, %388 ], [ %391, %390 ]
  %394 = fpext float %393 to double
  %395 = fptrunc double %394 to float
  store float %395, ptr %57, align 4, !tbaa !11
  store i64 0, ptr %66, align 8, !tbaa !9
  %396 = load ptr, ptr %27, align 8, !tbaa !5
  %397 = load float, ptr %396, align 4, !tbaa !11
  store float %397, ptr %52, align 4, !tbaa !11
  %398 = load ptr, ptr %28, align 8, !tbaa !5
  %399 = load float, ptr %398, align 4, !tbaa !11
  store float %399, ptr %53, align 4, !tbaa !11
  %400 = load ptr, ptr %24, align 8, !tbaa !5
  %401 = load ptr, ptr %25, align 8, !tbaa !5
  %402 = getelementptr inbounds float, ptr %401, i64 1
  %403 = load ptr, ptr %26, align 8, !tbaa !5
  %404 = getelementptr inbounds float, ptr %403, i64 1
  %405 = call double @slanst_(ptr noundef @.str.7, ptr noundef %400, ptr noundef %402, ptr noundef %404)
  %406 = fptrunc double %405 to float
  store float %406, ptr %59, align 4, !tbaa !11
  %407 = load float, ptr %59, align 4, !tbaa !11
  %408 = fcmp ogt float %407, 0.000000e+00
  br i1 %408, label %409, label %417

409:                                              ; preds = %392
  %410 = load float, ptr %59, align 4, !tbaa !11
  %411 = load float, ptr %56, align 4, !tbaa !11
  %412 = fcmp olt float %410, %411
  br i1 %412, label %413, label %417

413:                                              ; preds = %409
  store i64 1, ptr %66, align 8, !tbaa !9
  %414 = load float, ptr %56, align 4, !tbaa !11
  %415 = load float, ptr %59, align 4, !tbaa !11
  %416 = fdiv float %414, %415
  store float %416, ptr %60, align 4, !tbaa !11
  br label %426

417:                                              ; preds = %409, %392
  %418 = load float, ptr %59, align 4, !tbaa !11
  %419 = load float, ptr %57, align 4, !tbaa !11
  %420 = fcmp ogt float %418, %419
  br i1 %420, label %421, label %425

421:                                              ; preds = %417
  store i64 1, ptr %66, align 8, !tbaa !9
  %422 = load float, ptr %57, align 4, !tbaa !11
  %423 = load float, ptr %59, align 4, !tbaa !11
  %424 = fdiv float %422, %423
  store float %424, ptr %60, align 4, !tbaa !11
  br label %425

425:                                              ; preds = %421, %417
  br label %426

426:                                              ; preds = %425, %413
  %427 = load i64, ptr %66, align 8, !tbaa !9
  %428 = icmp eq i64 %427, 1
  br i1 %428, label %429, label %452

429:                                              ; preds = %426
  %430 = load ptr, ptr %24, align 8, !tbaa !5
  %431 = load ptr, ptr %25, align 8, !tbaa !5
  %432 = getelementptr inbounds float, ptr %431, i64 1
  %433 = call i32 @f2c_sscal(ptr noundef %430, ptr noundef %60, ptr noundef %432, ptr noundef @c__1)
  %434 = load ptr, ptr %24, align 8, !tbaa !5
  %435 = load i64, ptr %434, align 8, !tbaa !9
  %436 = sub nsw i64 %435, 1
  store i64 %436, ptr %44, align 8, !tbaa !9
  %437 = load ptr, ptr %26, align 8, !tbaa !5
  %438 = getelementptr inbounds float, ptr %437, i64 1
  %439 = call i32 @f2c_sscal(ptr noundef %44, ptr noundef %60, ptr noundef %438, ptr noundef @c__1)
  %440 = load i64, ptr %70, align 8, !tbaa !9
  %441 = icmp ne i64 %440, 0
  br i1 %441, label %442, label %451

442:                                              ; preds = %429
  %443 = load ptr, ptr %27, align 8, !tbaa !5
  %444 = load float, ptr %443, align 4, !tbaa !11
  %445 = load float, ptr %60, align 4, !tbaa !11
  %446 = fmul float %444, %445
  store float %446, ptr %52, align 4, !tbaa !11
  %447 = load ptr, ptr %28, align 8, !tbaa !5
  %448 = load float, ptr %447, align 4, !tbaa !11
  %449 = load float, ptr %60, align 4, !tbaa !11
  %450 = fmul float %448, %449
  store float %450, ptr %53, align 4, !tbaa !11
  br label %451

451:                                              ; preds = %442, %429
  br label %452

452:                                              ; preds = %451, %426
  store i64 1, ptr %68, align 8, !tbaa !9
  %453 = load i64, ptr %68, align 8, !tbaa !9
  %454 = load ptr, ptr %24, align 8, !tbaa !5
  %455 = load i64, ptr %454, align 8, !tbaa !9
  %456 = add nsw i64 %453, %455
  store i64 %456, ptr %73, align 8, !tbaa !9
  %457 = load i64, ptr %73, align 8, !tbaa !9
  %458 = load ptr, ptr %24, align 8, !tbaa !5
  %459 = load i64, ptr %458, align 8, !tbaa !9
  %460 = add nsw i64 %457, %459
  store i64 %460, ptr %69, align 8, !tbaa !9
  %461 = load i64, ptr %73, align 8, !tbaa !9
  %462 = load ptr, ptr %24, align 8, !tbaa !5
  %463 = load i64, ptr %462, align 8, !tbaa !9
  %464 = add nsw i64 %461, %463
  store i64 %464, ptr %74, align 8, !tbaa !9
  store i64 0, ptr %58, align 8, !tbaa !9
  %465 = load i64, ptr %65, align 8, !tbaa !9
  %466 = icmp ne i64 %465, 0
  br i1 %466, label %467, label %479

467:                                              ; preds = %452
  %468 = load ptr, ptr %29, align 8, !tbaa !5
  %469 = load i64, ptr %468, align 8, !tbaa !9
  %470 = icmp eq i64 %469, 1
  br i1 %470, label %471, label %478

471:                                              ; preds = %467
  %472 = load ptr, ptr %30, align 8, !tbaa !5
  %473 = load i64, ptr %472, align 8, !tbaa !9
  %474 = load ptr, ptr %24, align 8, !tbaa !5
  %475 = load i64, ptr %474, align 8, !tbaa !9
  %476 = icmp eq i64 %473, %475
  br i1 %476, label %477, label %478

477:                                              ; preds = %471
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %478

478:                                              ; preds = %477, %471, %467
  br label %479

479:                                              ; preds = %478, %452
  %480 = load i64, ptr %64, align 8, !tbaa !9
  %481 = icmp ne i64 %480, 0
  br i1 %481, label %485, label %482

482:                                              ; preds = %479
  %483 = load i64, ptr %58, align 8, !tbaa !9
  %484 = icmp ne i64 %483, 0
  br i1 %484, label %485, label %585

485:                                              ; preds = %482, %479
  %486 = load i64, ptr %67, align 8, !tbaa !9
  %487 = icmp eq i64 %486, 1
  br i1 %487, label %488, label %585

488:                                              ; preds = %485
  %489 = load ptr, ptr %24, align 8, !tbaa !5
  %490 = load i64, ptr %489, align 8, !tbaa !9
  %491 = sub nsw i64 %490, 1
  store i64 %491, ptr %44, align 8, !tbaa !9
  %492 = load ptr, ptr %26, align 8, !tbaa !5
  %493 = getelementptr inbounds float, ptr %492, i64 1
  %494 = load ptr, ptr %37, align 8, !tbaa !5
  %495 = getelementptr inbounds float, ptr %494, i64 1
  %496 = call i32 @f2c_scopy(ptr noundef %44, ptr noundef %493, ptr noundef @c__1, ptr noundef %495, ptr noundef @c__1)
  %497 = load i64, ptr %63, align 8, !tbaa !9
  %498 = icmp ne i64 %497, 0
  br i1 %498, label %513, label %499

499:                                              ; preds = %488
  %500 = load ptr, ptr %24, align 8, !tbaa !5
  %501 = load ptr, ptr %25, align 8, !tbaa !5
  %502 = getelementptr inbounds float, ptr %501, i64 1
  %503 = load ptr, ptr %33, align 8, !tbaa !5
  %504 = getelementptr inbounds float, ptr %503, i64 1
  %505 = call i32 @f2c_scopy(ptr noundef %500, ptr noundef %502, ptr noundef @c__1, ptr noundef %504, ptr noundef @c__1)
  %506 = load ptr, ptr %24, align 8, !tbaa !5
  %507 = load ptr, ptr %33, align 8, !tbaa !5
  %508 = getelementptr inbounds float, ptr %507, i64 1
  %509 = load ptr, ptr %37, align 8, !tbaa !5
  %510 = getelementptr inbounds float, ptr %509, i64 1
  %511 = load ptr, ptr %41, align 8, !tbaa !5
  %512 = call i32 @ssterf_(ptr noundef %506, ptr noundef %508, ptr noundef %510, ptr noundef %511)
  br label %575

513:                                              ; preds = %488
  %514 = load ptr, ptr %24, align 8, !tbaa !5
  %515 = load ptr, ptr %25, align 8, !tbaa !5
  %516 = getelementptr inbounds float, ptr %515, i64 1
  %517 = load ptr, ptr %37, align 8, !tbaa !5
  %518 = load ptr, ptr %24, align 8, !tbaa !5
  %519 = load i64, ptr %518, align 8, !tbaa !9
  %520 = add nsw i64 %519, 1
  %521 = getelementptr inbounds float, ptr %517, i64 %520
  %522 = call i32 @f2c_scopy(ptr noundef %514, ptr noundef %516, ptr noundef @c__1, ptr noundef %521, ptr noundef @c__1)
  %523 = load ptr, ptr %31, align 8, !tbaa !5
  %524 = load float, ptr %523, align 4, !tbaa !11
  %525 = load ptr, ptr %24, align 8, !tbaa !5
  %526 = load i64, ptr %525, align 8, !tbaa !9
  %527 = sitofp i64 %526 to float
  %528 = fmul float %527, 2.000000e+00
  %529 = load float, ptr %51, align 4, !tbaa !11
  %530 = fmul float %528, %529
  %531 = fcmp ole float %524, %530
  br i1 %531, label %532, label %533

532:                                              ; preds = %513
  store i64 1, ptr %76, align 8, !tbaa !9
  br label %534

533:                                              ; preds = %513
  store i64 0, ptr %76, align 8, !tbaa !9
  br label %534

534:                                              ; preds = %533, %532
  %535 = load ptr, ptr %38, align 8, !tbaa !5
  %536 = load i64, ptr %535, align 8, !tbaa !9
  %537 = load ptr, ptr %24, align 8, !tbaa !5
  %538 = load i64, ptr %537, align 8, !tbaa !9
  %539 = shl i64 %538, 1
  %540 = sub nsw i64 %536, %539
  store i64 %540, ptr %44, align 8, !tbaa !9
  %541 = load ptr, ptr %22, align 8, !tbaa !5
  %542 = load ptr, ptr %24, align 8, !tbaa !5
  %543 = load ptr, ptr %37, align 8, !tbaa !5
  %544 = load ptr, ptr %24, align 8, !tbaa !5
  %545 = load i64, ptr %544, align 8, !tbaa !9
  %546 = add nsw i64 %545, 1
  %547 = getelementptr inbounds float, ptr %543, i64 %546
  %548 = load ptr, ptr %37, align 8, !tbaa !5
  %549 = getelementptr inbounds float, ptr %548, i64 1
  %550 = load ptr, ptr %27, align 8, !tbaa !5
  %551 = load ptr, ptr %28, align 8, !tbaa !5
  %552 = load ptr, ptr %29, align 8, !tbaa !5
  %553 = load ptr, ptr %30, align 8, !tbaa !5
  %554 = load ptr, ptr %32, align 8, !tbaa !5
  %555 = load ptr, ptr %33, align 8, !tbaa !5
  %556 = getelementptr inbounds float, ptr %555, i64 1
  %557 = load ptr, ptr %34, align 8, !tbaa !5
  %558 = load i64, ptr %43, align 8, !tbaa !9
  %559 = getelementptr inbounds float, ptr %557, i64 %558
  %560 = load ptr, ptr %35, align 8, !tbaa !5
  %561 = load ptr, ptr %24, align 8, !tbaa !5
  %562 = load ptr, ptr %36, align 8, !tbaa !5
  %563 = getelementptr inbounds i64, ptr %562, i64 1
  %564 = load ptr, ptr %37, align 8, !tbaa !5
  %565 = load ptr, ptr %24, align 8, !tbaa !5
  %566 = load i64, ptr %565, align 8, !tbaa !9
  %567 = shl i64 %566, 1
  %568 = add nsw i64 %567, 1
  %569 = getelementptr inbounds float, ptr %564, i64 %568
  %570 = load ptr, ptr %39, align 8, !tbaa !5
  %571 = getelementptr inbounds i64, ptr %570, i64 1
  %572 = load ptr, ptr %40, align 8, !tbaa !5
  %573 = load ptr, ptr %41, align 8, !tbaa !5
  %574 = call i32 @sstemr_(ptr noundef %541, ptr noundef @.str.3, ptr noundef %542, ptr noundef %547, ptr noundef %549, ptr noundef %550, ptr noundef %551, ptr noundef %552, ptr noundef %553, ptr noundef %554, ptr noundef %556, ptr noundef %559, ptr noundef %560, ptr noundef %561, ptr noundef %563, ptr noundef %76, ptr noundef %569, ptr noundef %44, ptr noundef %571, ptr noundef %572, ptr noundef %573)
  br label %575

575:                                              ; preds = %534, %499
  %576 = load ptr, ptr %41, align 8, !tbaa !5
  %577 = load i64, ptr %576, align 8, !tbaa !9
  %578 = icmp eq i64 %577, 0
  br i1 %578, label %579, label %583

579:                                              ; preds = %575
  %580 = load ptr, ptr %24, align 8, !tbaa !5
  %581 = load i64, ptr %580, align 8, !tbaa !9
  %582 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 %581, ptr %582, align 8, !tbaa !9
  br label %651

583:                                              ; preds = %575
  %584 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 0, ptr %584, align 8, !tbaa !9
  br label %585

585:                                              ; preds = %583, %485, %482
  %586 = load i64, ptr %63, align 8, !tbaa !9
  %587 = icmp ne i64 %586, 0
  br i1 %587, label %588, label %590

588:                                              ; preds = %585
  %589 = getelementptr inbounds [1 x i8], ptr %61, i64 0, i64 0
  store i8 66, ptr %589, align 1, !tbaa !13
  br label %592

590:                                              ; preds = %585
  %591 = getelementptr inbounds [1 x i8], ptr %61, i64 0, i64 0
  store i8 69, ptr %591, align 1, !tbaa !13
  br label %592

592:                                              ; preds = %590, %588
  %593 = load ptr, ptr %23, align 8, !tbaa !5
  %594 = getelementptr inbounds [1 x i8], ptr %61, i64 0, i64 0
  %595 = load ptr, ptr %24, align 8, !tbaa !5
  %596 = load ptr, ptr %29, align 8, !tbaa !5
  %597 = load ptr, ptr %30, align 8, !tbaa !5
  %598 = load ptr, ptr %31, align 8, !tbaa !5
  %599 = load ptr, ptr %25, align 8, !tbaa !5
  %600 = getelementptr inbounds float, ptr %599, i64 1
  %601 = load ptr, ptr %26, align 8, !tbaa !5
  %602 = getelementptr inbounds float, ptr %601, i64 1
  %603 = load ptr, ptr %32, align 8, !tbaa !5
  %604 = load ptr, ptr %33, align 8, !tbaa !5
  %605 = getelementptr inbounds float, ptr %604, i64 1
  %606 = load ptr, ptr %39, align 8, !tbaa !5
  %607 = load i64, ptr %68, align 8, !tbaa !9
  %608 = getelementptr inbounds i64, ptr %606, i64 %607
  %609 = load ptr, ptr %39, align 8, !tbaa !5
  %610 = load i64, ptr %73, align 8, !tbaa !9
  %611 = getelementptr inbounds i64, ptr %609, i64 %610
  %612 = load ptr, ptr %37, align 8, !tbaa !5
  %613 = getelementptr inbounds float, ptr %612, i64 1
  %614 = load ptr, ptr %39, align 8, !tbaa !5
  %615 = load i64, ptr %74, align 8, !tbaa !9
  %616 = getelementptr inbounds i64, ptr %614, i64 %615
  %617 = load ptr, ptr %41, align 8, !tbaa !5
  %618 = call i32 @sstebz_(ptr noundef %593, ptr noundef %594, ptr noundef %595, ptr noundef %52, ptr noundef %53, ptr noundef %596, ptr noundef %597, ptr noundef %598, ptr noundef %600, ptr noundef %602, ptr noundef %603, ptr noundef %77, ptr noundef %605, ptr noundef %608, ptr noundef %611, ptr noundef %613, ptr noundef %616, ptr noundef %617)
  %619 = load i64, ptr %63, align 8, !tbaa !9
  %620 = icmp ne i64 %619, 0
  br i1 %620, label %621, label %650

621:                                              ; preds = %592
  %622 = load ptr, ptr %24, align 8, !tbaa !5
  %623 = load ptr, ptr %25, align 8, !tbaa !5
  %624 = getelementptr inbounds float, ptr %623, i64 1
  %625 = load ptr, ptr %26, align 8, !tbaa !5
  %626 = getelementptr inbounds float, ptr %625, i64 1
  %627 = load ptr, ptr %32, align 8, !tbaa !5
  %628 = load ptr, ptr %33, align 8, !tbaa !5
  %629 = getelementptr inbounds float, ptr %628, i64 1
  %630 = load ptr, ptr %39, align 8, !tbaa !5
  %631 = load i64, ptr %68, align 8, !tbaa !9
  %632 = getelementptr inbounds i64, ptr %630, i64 %631
  %633 = load ptr, ptr %39, align 8, !tbaa !5
  %634 = load i64, ptr %73, align 8, !tbaa !9
  %635 = getelementptr inbounds i64, ptr %633, i64 %634
  %636 = load ptr, ptr %34, align 8, !tbaa !5
  %637 = load i64, ptr %43, align 8, !tbaa !9
  %638 = getelementptr inbounds float, ptr %636, i64 %637
  %639 = load ptr, ptr %35, align 8, !tbaa !5
  %640 = load ptr, ptr %37, align 8, !tbaa !5
  %641 = getelementptr inbounds float, ptr %640, i64 1
  %642 = load ptr, ptr %39, align 8, !tbaa !5
  %643 = load i64, ptr %74, align 8, !tbaa !9
  %644 = getelementptr inbounds i64, ptr %642, i64 %643
  %645 = load ptr, ptr %39, align 8, !tbaa !5
  %646 = load i64, ptr %69, align 8, !tbaa !9
  %647 = getelementptr inbounds i64, ptr %645, i64 %646
  %648 = load ptr, ptr %41, align 8, !tbaa !5
  %649 = call i32 @sstein_(ptr noundef %622, ptr noundef %624, ptr noundef %626, ptr noundef %627, ptr noundef %629, ptr noundef %632, ptr noundef %635, ptr noundef %638, ptr noundef %639, ptr noundef %641, ptr noundef %644, ptr noundef %647, ptr noundef %648)
  br label %650

650:                                              ; preds = %621, %592
  br label %651

651:                                              ; preds = %650, %579
  %652 = load i64, ptr %66, align 8, !tbaa !9
  %653 = icmp eq i64 %652, 1
  br i1 %653, label %654, label %671

654:                                              ; preds = %651
  %655 = load ptr, ptr %41, align 8, !tbaa !5
  %656 = load i64, ptr %655, align 8, !tbaa !9
  %657 = icmp eq i64 %656, 0
  br i1 %657, label %658, label %661

658:                                              ; preds = %654
  %659 = load ptr, ptr %32, align 8, !tbaa !5
  %660 = load i64, ptr %659, align 8, !tbaa !9
  store i64 %660, ptr %55, align 8, !tbaa !9
  br label %665

661:                                              ; preds = %654
  %662 = load ptr, ptr %41, align 8, !tbaa !5
  %663 = load i64, ptr %662, align 8, !tbaa !9
  %664 = sub nsw i64 %663, 1
  store i64 %664, ptr %55, align 8, !tbaa !9
  br label %665

665:                                              ; preds = %661, %658
  %666 = load float, ptr %60, align 4, !tbaa !11
  %667 = fdiv float 1.000000e+00, %666
  store float %667, ptr %46, align 4, !tbaa !11
  %668 = load ptr, ptr %33, align 8, !tbaa !5
  %669 = getelementptr inbounds float, ptr %668, i64 1
  %670 = call i32 @f2c_sscal(ptr noundef %55, ptr noundef %46, ptr noundef %669, ptr noundef @c__1)
  br label %671

671:                                              ; preds = %665, %651
  %672 = load i64, ptr %63, align 8, !tbaa !9
  %673 = icmp ne i64 %672, 0
  br i1 %673, label %674, label %746

674:                                              ; preds = %671
  %675 = load ptr, ptr %32, align 8, !tbaa !5
  %676 = load i64, ptr %675, align 8, !tbaa !9
  %677 = sub nsw i64 %676, 1
  store i64 %677, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %49, align 8, !tbaa !9
  br label %678

678:                                              ; preds = %742, %674
  %679 = load i64, ptr %49, align 8, !tbaa !9
  %680 = load i64, ptr %44, align 8, !tbaa !9
  %681 = icmp sle i64 %679, %680
  br i1 %681, label %682, label %745

682:                                              ; preds = %678
  store i64 0, ptr %48, align 8, !tbaa !9
  %683 = load ptr, ptr %33, align 8, !tbaa !5
  %684 = load i64, ptr %49, align 8, !tbaa !9
  %685 = getelementptr inbounds float, ptr %683, i64 %684
  %686 = load float, ptr %685, align 4, !tbaa !11
  store float %686, ptr %54, align 4, !tbaa !11
  %687 = load ptr, ptr %32, align 8, !tbaa !5
  %688 = load i64, ptr %687, align 8, !tbaa !9
  store i64 %688, ptr %45, align 8, !tbaa !9
  %689 = load i64, ptr %49, align 8, !tbaa !9
  %690 = add nsw i64 %689, 1
  store i64 %690, ptr %50, align 8, !tbaa !9
  br label %691

691:                                              ; preds = %709, %682
  %692 = load i64, ptr %50, align 8, !tbaa !9
  %693 = load i64, ptr %45, align 8, !tbaa !9
  %694 = icmp sle i64 %692, %693
  br i1 %694, label %695, label %712

695:                                              ; preds = %691
  %696 = load ptr, ptr %33, align 8, !tbaa !5
  %697 = load i64, ptr %50, align 8, !tbaa !9
  %698 = getelementptr inbounds float, ptr %696, i64 %697
  %699 = load float, ptr %698, align 4, !tbaa !11
  %700 = load float, ptr %54, align 4, !tbaa !11
  %701 = fcmp olt float %699, %700
  br i1 %701, label %702, label %708

702:                                              ; preds = %695
  %703 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %703, ptr %48, align 8, !tbaa !9
  %704 = load ptr, ptr %33, align 8, !tbaa !5
  %705 = load i64, ptr %50, align 8, !tbaa !9
  %706 = getelementptr inbounds float, ptr %704, i64 %705
  %707 = load float, ptr %706, align 4, !tbaa !11
  store float %707, ptr %54, align 4, !tbaa !11
  br label %708

708:                                              ; preds = %702, %695
  br label %709

709:                                              ; preds = %708
  %710 = load i64, ptr %50, align 8, !tbaa !9
  %711 = add nsw i64 %710, 1
  store i64 %711, ptr %50, align 8, !tbaa !9
  br label %691, !llvm.loop !14

712:                                              ; preds = %691
  %713 = load i64, ptr %48, align 8, !tbaa !9
  %714 = icmp ne i64 %713, 0
  br i1 %714, label %715, label %741

715:                                              ; preds = %712
  %716 = load ptr, ptr %33, align 8, !tbaa !5
  %717 = load i64, ptr %49, align 8, !tbaa !9
  %718 = getelementptr inbounds float, ptr %716, i64 %717
  %719 = load float, ptr %718, align 4, !tbaa !11
  %720 = load ptr, ptr %33, align 8, !tbaa !5
  %721 = load i64, ptr %48, align 8, !tbaa !9
  %722 = getelementptr inbounds float, ptr %720, i64 %721
  store float %719, ptr %722, align 4, !tbaa !11
  %723 = load float, ptr %54, align 4, !tbaa !11
  %724 = load ptr, ptr %33, align 8, !tbaa !5
  %725 = load i64, ptr %49, align 8, !tbaa !9
  %726 = getelementptr inbounds float, ptr %724, i64 %725
  store float %723, ptr %726, align 4, !tbaa !11
  %727 = load ptr, ptr %24, align 8, !tbaa !5
  %728 = load ptr, ptr %34, align 8, !tbaa !5
  %729 = load i64, ptr %48, align 8, !tbaa !9
  %730 = load i64, ptr %42, align 8, !tbaa !9
  %731 = mul nsw i64 %729, %730
  %732 = add nsw i64 %731, 1
  %733 = getelementptr inbounds float, ptr %728, i64 %732
  %734 = load ptr, ptr %34, align 8, !tbaa !5
  %735 = load i64, ptr %49, align 8, !tbaa !9
  %736 = load i64, ptr %42, align 8, !tbaa !9
  %737 = mul nsw i64 %735, %736
  %738 = add nsw i64 %737, 1
  %739 = getelementptr inbounds float, ptr %734, i64 %738
  %740 = call i32 @f2c_sswap(ptr noundef %727, ptr noundef %733, ptr noundef @c__1, ptr noundef %739, ptr noundef @c__1)
  br label %741

741:                                              ; preds = %715, %712
  br label %742

742:                                              ; preds = %741
  %743 = load i64, ptr %49, align 8, !tbaa !9
  %744 = add nsw i64 %743, 1
  store i64 %744, ptr %49, align 8, !tbaa !9
  br label %678, !llvm.loop !16

745:                                              ; preds = %678
  br label %746

746:                                              ; preds = %745, %671
  %747 = load i64, ptr %62, align 8, !tbaa !9
  %748 = sitofp i64 %747 to float
  %749 = load ptr, ptr %37, align 8, !tbaa !5
  %750 = getelementptr inbounds float, ptr %749, i64 1
  store float %748, ptr %750, align 4, !tbaa !11
  %751 = load i64, ptr %75, align 8, !tbaa !9
  %752 = load ptr, ptr %39, align 8, !tbaa !5
  %753 = getelementptr inbounds i64, ptr %752, i64 1
  store i64 %751, ptr %753, align 8, !tbaa !9
  store i32 0, ptr %21, align 4
  store i32 1, ptr %80, align 4
  br label %754

754:                                              ; preds = %746, %360, %312, %305, %297
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 1, 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 8, 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 8, 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 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  %755 = load i32, ptr %21, align 4
  ret i32 %755
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

declare double @slanst_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

declare i32 @sstebz_(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 i32 @sstein_(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 @f2c_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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}


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

@c__10 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8
@c__4 = external hidden global i64, align 8
@.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
@.str.5 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @sstevr_(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 nocapture noundef readonly %16, ptr noundef %17, ptr noundef %18, ptr noundef %19) local_unnamed_addr #0 {
  %21 = alloca i64, align 8
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca i64, align 8
  %26 = alloca float, align 4
  %27 = alloca [1 x i8], align 1
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #5
  %30 = getelementptr inbounds i8, ptr %11, i64 -4
  %31 = load i64, ptr %13, align 8, !tbaa !5
  %32 = xor i64 %31, -1
  %33 = getelementptr inbounds float, ptr %12, i64 %32
  %34 = tail call i64 @ilaenv_(ptr noundef nonnull @c__10, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull @c__1, ptr noundef nonnull @c__2, ptr noundef nonnull @c__3, ptr noundef nonnull @c__4) #5
  %35 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #5
  %36 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #5
  %37 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #5
  %38 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #5
  %39 = load i64, ptr %16, align 8, !tbaa !5
  %40 = icmp eq i64 %39, -1
  br i1 %40, label %44, label %41

41:                                               ; preds = %20
  %42 = load i64, ptr %18, align 8, !tbaa !5
  %43 = icmp eq i64 %42, -1
  br label %44

44:                                               ; preds = %41, %20
  %45 = phi i1 [ true, %20 ], [ %43, %41 ]
  %46 = load i64, ptr %2, align 8, !tbaa !5
  %47 = mul nsw i64 %46, 20
  %48 = icmp slt i64 %46, 1
  %49 = select i1 %48, i64 1, i64 %47
  store i64 1, ptr %21, align 8, !tbaa !5
  %50 = mul nsw i64 %46, 10
  %51 = select i1 %48, i64 1, i64 %50
  store i64 0, ptr %19, align 8, !tbaa !5
  %.not = icmp ne i64 %35, 0
  br i1 %.not, label %54, label %52

52:                                               ; preds = %44
  %53 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not289 = icmp eq i64 %53, 0
  br i1 %.not289, label %.thread313.sink.split, label %54

54:                                               ; preds = %52, %44
  %55 = icmp ne i64 %36, 0
  %56 = icmp ne i64 %37, 0
  %or.cond = select i1 %55, i1 true, i1 %56
  %57 = icmp ne i64 %38, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %57
  br i1 %or.cond3, label %58, label %.thread313.sink.split

58:                                               ; preds = %54
  %59 = load i64, ptr %2, align 8, !tbaa !5
  %60 = icmp slt i64 %59, 0
  br i1 %60, label %.thread313.sink.split, label %61

61:                                               ; preds = %58
  br i1 %56, label %62, label %67

62:                                               ; preds = %61
  %.not291 = icmp eq i64 %59, 0
  br i1 %.not291, label %76, label %63

63:                                               ; preds = %62
  %64 = load float, ptr %6, align 4, !tbaa !9
  %65 = load float, ptr %5, align 4, !tbaa !9
  %66 = fcmp ugt float %64, %65
  br i1 %66, label %76, label %.thread313.sink.split

67:                                               ; preds = %61
  br i1 %57, label %68, label %76

68:                                               ; preds = %67
  %69 = load i64, ptr %7, align 8, !tbaa !5
  %70 = icmp slt i64 %69, 1
  %spec.select = tail call i64 @llvm.umax.i64(i64 %59, i64 1)
  %71 = icmp ugt i64 %69, %spec.select
  %or.cond321 = or i1 %70, %71
  br i1 %or.cond321, label %.thread313.sink.split, label %72

72:                                               ; preds = %68
  %73 = load i64, ptr %8, align 8, !tbaa !5
  %. = tail call i64 @llvm.umin.i64(i64 %59, i64 %69)
  %74 = icmp slt i64 %73, %.
  %75 = icmp ugt i64 %73, %59
  %or.cond320 = or i1 %74, %75
  br i1 %or.cond320, label %.thread313.sink.split, label %76

76:                                               ; preds = %72, %63, %62, %67
  %.pr = load i64, ptr %19, align 8, !tbaa !5
  %77 = icmp eq i64 %.pr, 0
  br i1 %77, label %78, label %.thread313

78:                                               ; preds = %76
  %79 = load i64, ptr %13, align 8, !tbaa !5
  %80 = icmp slt i64 %79, 1
  %81 = icmp ult i64 %79, %59
  %or.cond336 = and i1 %.not, %81
  %or.cond338 = or i1 %80, %or.cond336
  br i1 %or.cond338, label %.thread313.sink.split, label %.thread

.thread:                                          ; preds = %78
  %82 = sitofp i64 %49 to float
  store float %82, ptr %15, align 4, !tbaa !9
  store i64 %51, ptr %17, align 8, !tbaa !5
  %83 = load i64, ptr %16, align 8, !tbaa !5
  %84 = icmp sge i64 %83, %49
  %or.cond5 = select i1 %84, i1 true, i1 %45
  br i1 %or.cond5, label %85, label %.thread313.sink.split

85:                                               ; preds = %.thread
  %86 = load i64, ptr %18, align 8, !tbaa !5
  %87 = icmp sge i64 %86, %51
  %or.cond7 = select i1 %87, i1 true, i1 %45
  br i1 %or.cond7, label %.thread309, label %.thread313.sink.split

.thread309:                                       ; preds = %85
  %.pr311.pr = load i64, ptr %19, align 8, !tbaa !5
  %.not292 = icmp eq i64 %.pr311.pr, 0
  br i1 %.not292, label %91, label %.thread313

.thread313.sink.split:                            ; preds = %85, %.thread, %78, %72, %68, %63, %58, %54, %52
  %.sink = phi i64 [ -1, %52 ], [ -2, %54 ], [ -3, %58 ], [ -7, %63 ], [ -8, %68 ], [ -9, %72 ], [ -14, %78 ], [ -17, %.thread ], [ -19, %85 ]
  store i64 %.sink, ptr %19, align 8, !tbaa !5
  br label %.thread313

.thread313:                                       ; preds = %.thread313.sink.split, %76, %.thread309
  %88 = phi i64 [ %.pr311.pr, %.thread309 ], [ %.pr, %76 ], [ %.sink, %.thread313.sink.split ]
  %89 = sub nsw i64 0, %88
  store i64 %89, ptr %21, align 8, !tbaa !5
  %90 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %21) #5
  br label %217

91:                                               ; preds = %.thread309
  br i1 %45, label %217, label %92

92:                                               ; preds = %91
  store i64 0, ptr %10, align 8, !tbaa !5
  %93 = load i64, ptr %2, align 8, !tbaa !5
  switch i64 %93, label %107 [
    i64 0, label %217
    i64 1, label %94
  ]

94:                                               ; preds = %92
  %or.cond9 = select i1 %55, i1 true, i1 %57
  br i1 %or.cond9, label %95, label %97

95:                                               ; preds = %94
  store i64 1, ptr %10, align 8, !tbaa !5
  %96 = load float, ptr %3, align 4, !tbaa !9
  br label %.sink.split

97:                                               ; preds = %94
  %98 = load float, ptr %5, align 4, !tbaa !9
  %99 = load float, ptr %3, align 4, !tbaa !9
  %100 = fcmp olt float %98, %99
  br i1 %100, label %101, label %105

101:                                              ; preds = %97
  %102 = load float, ptr %6, align 4, !tbaa !9
  %103 = fcmp ult float %102, %99
  br i1 %103, label %105, label %104

104:                                              ; preds = %101
  store i64 1, ptr %10, align 8, !tbaa !5
  br label %.sink.split

.sink.split:                                      ; preds = %95, %104
  %.sink337 = phi float [ %99, %104 ], [ %96, %95 ]
  store float %.sink337, ptr %11, align 4, !tbaa !9
  br label %105

105:                                              ; preds = %.sink.split, %97, %101
  br i1 %.not, label %106, label %217

106:                                              ; preds = %105
  store float 1.000000e+00, ptr %12, align 4, !tbaa !9
  br label %217

107:                                              ; preds = %92
  %108 = tail call double @slamch_(ptr noundef nonnull @.str.5) #5
  %109 = fptrunc double %108 to float
  %110 = tail call double @slamch_(ptr noundef nonnull @.str.6) #5
  %111 = fptrunc double %110 to float
  %112 = fdiv float %109, %111
  %113 = fdiv float 1.000000e+00, %112
  %sqrtf = tail call float @sqrtf(float noundef %112) #3
  %sqrtf293 = tail call float @sqrtf(float noundef %113) #3
  store float %sqrtf293, ptr %22, align 4, !tbaa !9
  %114 = fpext float %109 to double
  %115 = tail call double @sqrt(double noundef %114) #5
  %116 = tail call double @sqrt(double noundef %115) #5
  %117 = load float, ptr %5, align 4, !tbaa !9
  store float %117, ptr %23, align 4, !tbaa !9
  %118 = load float, ptr %6, align 4, !tbaa !9
  store float %118, ptr %24, align 4, !tbaa !9
  %119 = tail call double @slanst_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4) #5
  %120 = fptrunc double %119 to float
  %121 = fcmp ogt float %120, 0.000000e+00
  %122 = fcmp ogt float %sqrtf, %120
  %or.cond302 = select i1 %121, i1 %122, i1 false
  br i1 %or.cond302, label %129, label %123

123:                                              ; preds = %107
  %124 = fdiv double 1.000000e+00, %116
  %125 = fptrunc double %124 to float
  %126 = fcmp ole float %sqrtf293, %125
  %127 = select i1 %126, float %sqrtf293, float %125
  %128 = fcmp olt float %127, %120
  br i1 %128, label %129, label %140

129:                                              ; preds = %123, %107
  %.pn = phi float [ %sqrtf, %107 ], [ %127, %123 ]
  %storemerge = fdiv float %.pn, %120
  store float %storemerge, ptr %26, align 4, !tbaa !9
  %130 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %3, ptr noundef nonnull @c__1) #5
  %131 = load i64, ptr %2, align 8, !tbaa !5
  %132 = add nsw i64 %131, -1
  store i64 %132, ptr %21, align 8, !tbaa !5
  %133 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %26, ptr noundef %4, ptr noundef nonnull @c__1) #5
  %.not294 = icmp eq i64 %37, 0
  br i1 %.not294, label %140, label %134

134:                                              ; preds = %129
  %135 = load float, ptr %5, align 4, !tbaa !9
  %136 = load float, ptr %26, align 4, !tbaa !9
  %137 = fmul float %135, %136
  store float %137, ptr %23, align 4, !tbaa !9
  %138 = load float, ptr %6, align 4, !tbaa !9
  %139 = fmul float %136, %138
  store float %139, ptr %24, align 4, !tbaa !9
  br label %140

140:                                              ; preds = %123, %129, %134
  %141 = phi i1 [ true, %129 ], [ true, %134 ], [ false, %123 ]
  %142 = load i64, ptr %2, align 8, !tbaa !5
  %.not295 = icmp eq i64 %38, 0
  br i1 %.not295, label %149, label %143

143:                                              ; preds = %140
  %144 = load i64, ptr %7, align 8, !tbaa !5
  %145 = icmp eq i64 %144, 1
  br i1 %145, label %146, label %149

146:                                              ; preds = %143
  %147 = load i64, ptr %8, align 8, !tbaa !5
  %148 = icmp eq i64 %147, %142
  br label %149

149:                                              ; preds = %146, %143, %140
  %150 = phi i1 [ false, %143 ], [ false, %140 ], [ %148, %146 ]
  %or.cond11 = or i1 %55, %150
  %151 = icmp eq i64 %34, 1
  %or.cond13 = select i1 %or.cond11, i1 %151, i1 false
  br i1 %or.cond13, label %152, label %180

152:                                              ; preds = %149
  %153 = add nsw i64 %142, -1
  store i64 %153, ptr %21, align 8, !tbaa !5
  %154 = call i32 @f2c_scopy(ptr noundef nonnull %21, ptr noundef %4, ptr noundef nonnull @c__1, ptr noundef nonnull %15, ptr noundef nonnull @c__1) #5
  br i1 %.not, label %158, label %155

155:                                              ; preds = %152
  %156 = call i32 @f2c_scopy(ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull @c__1) #5
  %157 = call i32 @ssterf_(ptr noundef nonnull %2, ptr noundef %11, ptr noundef nonnull %15, ptr noundef nonnull %19) #5
  br label %174

158:                                              ; preds = %152
  %159 = load i64, ptr %2, align 8, !tbaa !5
  %160 = getelementptr float, ptr %15, i64 %159
  %161 = call i32 @f2c_scopy(ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull @c__1, ptr noundef %160, ptr noundef nonnull @c__1) #5
  %162 = load float, ptr %9, align 4, !tbaa !9
  %163 = load i64, ptr %2, align 8, !tbaa !5
  %164 = sitofp i64 %163 to float
  %165 = fmul float %164, 2.000000e+00
  %166 = fmul float %165, %111
  %167 = fcmp ole float %162, %166
  %.304 = zext i1 %167 to i64
  store i64 %.304, ptr %28, align 8, !tbaa !5
  %168 = load i64, ptr %16, align 8, !tbaa !5
  %169 = shl i64 %163, 1
  %170 = sub nsw i64 %168, %169
  store i64 %170, ptr %21, align 8, !tbaa !5
  %171 = getelementptr float, ptr %15, i64 %163
  %.idx = shl i64 %163, 3
  %172 = getelementptr i8, ptr %15, i64 %.idx
  %173 = call i32 @sstemr_(ptr noundef %0, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef %171, ptr noundef nonnull %15, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %10, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %2, ptr noundef %14, ptr noundef nonnull %28, ptr noundef %172, ptr noundef nonnull %21, ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef nonnull %19) #5
  br label %174

174:                                              ; preds = %158, %155
  %175 = load i64, ptr %19, align 8, !tbaa !5
  %176 = icmp eq i64 %175, 0
  br i1 %176, label %177, label %179

177:                                              ; preds = %174
  %178 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %178, ptr %10, align 8, !tbaa !5
  br label %186

179:                                              ; preds = %174
  store i64 0, ptr %19, align 8, !tbaa !5
  br label %180

180:                                              ; preds = %149, %179
  %.305 = select i1 %.not, i8 66, i8 69
  store i8 %.305, ptr %27, align 1, !tbaa !11
  %181 = getelementptr i64, ptr %17, i64 %142
  %.idx297 = shl i64 %142, 4
  %182 = getelementptr i8, ptr %17, i64 %.idx297
  %183 = call i32 @sstebz_(ptr noundef %1, ptr noundef nonnull %27, ptr noundef nonnull %2, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %10, ptr noundef nonnull %29, ptr noundef %11, ptr noundef nonnull %17, ptr noundef %181, ptr noundef nonnull %15, ptr noundef %182, ptr noundef nonnull %19) #5
  br i1 %.not, label %184, label %186

184:                                              ; preds = %180
  %185 = call i32 @sstein_(ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %17, ptr noundef %181, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %15, ptr noundef %182, ptr noundef %182, ptr noundef nonnull %19) #5
  br label %186

186:                                              ; preds = %180, %184, %177
  br i1 %141, label %187, label %198

187:                                              ; preds = %186
  %188 = load i64, ptr %19, align 8, !tbaa !5
  %189 = icmp eq i64 %188, 0
  br i1 %189, label %190, label %192

190:                                              ; preds = %187
  %191 = load i64, ptr %10, align 8, !tbaa !5
  br label %194

192:                                              ; preds = %187
  %193 = add nsw i64 %188, -1
  br label %194

194:                                              ; preds = %192, %190
  %storemerge298 = phi i64 [ %193, %192 ], [ %191, %190 ]
  store i64 %storemerge298, ptr %25, align 8, !tbaa !5
  %195 = load float, ptr %26, align 4, !tbaa !9
  %196 = fdiv float 1.000000e+00, %195
  store float %196, ptr %22, align 4, !tbaa !9
  %197 = call i32 @f2c_sscal(ptr noundef nonnull %25, ptr noundef nonnull %22, ptr noundef %11, ptr noundef nonnull @c__1) #5
  br label %198

198:                                              ; preds = %194, %186
  br i1 %.not, label %199, label %.loopexit

199:                                              ; preds = %198
  %200 = load i64, ptr %10, align 8, !tbaa !5
  %201 = add nsw i64 %200, -1
  store i64 %201, ptr %21, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %33, i64 4
  %.not299329 = icmp slt i64 %200, 2
  br i1 %.not299329, label %.loopexit, label %.lr.ph332

.lr.ph332:                                        ; preds = %199, %._crit_edge.thread
  %202 = phi i64 [ %216, %._crit_edge.thread ], [ %201, %199 ]
  %.0271330 = phi i64 [ %206, %._crit_edge.thread ], [ 1, %199 ]
  %203 = getelementptr inbounds float, ptr %30, i64 %.0271330
  %204 = load float, ptr %203, align 4, !tbaa !9
  %205 = load i64, ptr %10, align 8, !tbaa !5
  %206 = add nuw nsw i64 %.0271330, 1
  %.not300322.not = icmp slt i64 %.0271330, %205
  br i1 %.not300322.not, label %.lr.ph, label %._crit_edge.thread

.lr.ph:                                           ; preds = %.lr.ph332, %.lr.ph
  %.0270325 = phi i64 [ %.1, %.lr.ph ], [ 0, %.lr.ph332 ]
  %.0273324 = phi i64 [ %210, %.lr.ph ], [ %206, %.lr.ph332 ]
  %.0274323 = phi float [ %.1275, %.lr.ph ], [ %204, %.lr.ph332 ]
  %207 = getelementptr inbounds float, ptr %30, i64 %.0273324
  %208 = load float, ptr %207, align 4, !tbaa !9
  %209 = fcmp olt float %208, %.0274323
  %.1275 = select i1 %209, float %208, float %.0274323
  %.1 = select i1 %209, i64 %.0273324, i64 %.0270325
  %210 = add nuw nsw i64 %.0273324, 1
  %.not300.not = icmp slt i64 %.0273324, %205
  br i1 %.not300.not, label %.lr.ph, label %._crit_edge, !llvm.loop !12

._crit_edge:                                      ; preds = %.lr.ph
  %.not301 = icmp eq i64 %.1, 0
  br i1 %.not301, label %._crit_edge.thread, label %211

211:                                              ; preds = %._crit_edge
  %212 = getelementptr inbounds float, ptr %30, i64 %.1
  store float %204, ptr %212, align 4, !tbaa !9
  store float %.1275, ptr %203, align 4, !tbaa !9
  %213 = mul nsw i64 %.1, %31
  %gep = getelementptr float, ptr %invariant.gep, i64 %213
  %214 = mul nsw i64 %.0271330, %31
  %gep328 = getelementptr float, ptr %invariant.gep, i64 %214
  %215 = call i32 @f2c_sswap(ptr noundef nonnull %2, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep328, ptr noundef nonnull @c__1) #5
  %.pre = load i64, ptr %21, align 8, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph332, %._crit_edge, %211
  %216 = phi i64 [ %202, %._crit_edge ], [ %.pre, %211 ], [ %202, %.lr.ph332 ]
  %.not299.not = icmp slt i64 %.0271330, %216
  br i1 %.not299.not, label %.lr.ph332, label %.loopexit, !llvm.loop !14

.loopexit:                                        ; preds = %._crit_edge.thread, %199, %198
  store float %82, ptr %15, align 4, !tbaa !9
  store i64 %51, ptr %17, align 8, !tbaa !5
  br label %217

217:                                              ; preds = %105, %106, %92, %91, %.loopexit, %.thread313
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr nonnull %21) #5
  ret i32 0
}

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

declare double @slanst_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

declare i32 @sstebz_(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 i32 @sstein_(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 @f2c_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

declare float @sqrtf(float) local_unnamed_addr

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

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


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