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

; 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
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4

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

109:                                              ; preds = %18
  %110 = load ptr, ptr %19, align 8, !tbaa !5
  %111 = call i32 @lsame_(ptr noundef %110, ptr noundef @.str.3)
  %112 = icmp ne i32 %111, 0
  br i1 %112, label %115, label %113

113:                                              ; preds = %109
  %114 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -1, ptr %114, align 4, !tbaa !9
  br label %212

115:                                              ; preds = %109, %18
  %116 = load i32, ptr %59, align 4, !tbaa !9
  %117 = icmp ne i32 %116, 0
  br i1 %117, label %126, label %118

118:                                              ; preds = %115
  %119 = load i32, ptr %63, align 4, !tbaa !9
  %120 = icmp ne i32 %119, 0
  br i1 %120, label %126, label %121

121:                                              ; preds = %118
  %122 = load i32, ptr %60, align 4, !tbaa !9
  %123 = icmp ne i32 %122, 0
  br i1 %123, label %126, label %124

124:                                              ; preds = %121
  %125 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -2, ptr %125, align 4, !tbaa !9
  br label %211

126:                                              ; preds = %121, %118, %115
  %127 = load ptr, ptr %21, align 8, !tbaa !5
  %128 = call i32 @lsame_(ptr noundef %127, ptr noundef @.str.4)
  %129 = icmp ne i32 %128, 0
  br i1 %129, label %136, label %130

130:                                              ; preds = %126
  %131 = load ptr, ptr %21, align 8, !tbaa !5
  %132 = call i32 @lsame_(ptr noundef %131, ptr noundef @.str.5)
  %133 = icmp ne i32 %132, 0
  br i1 %133, label %136, label %134

134:                                              ; preds = %130
  %135 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -3, ptr %135, align 4, !tbaa !9
  br label %210

136:                                              ; preds = %130, %126
  %137 = load ptr, ptr %22, align 8, !tbaa !5
  %138 = load i32, ptr %137, align 4, !tbaa !9
  %139 = icmp slt i32 %138, 0
  br i1 %139, label %140, label %142

140:                                              ; preds = %136
  %141 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -4, ptr %141, align 4, !tbaa !9
  br label %209

142:                                              ; preds = %136
  %143 = load i32, ptr %63, align 4, !tbaa !9
  %144 = icmp ne i32 %143, 0
  br i1 %144, label %145, label %158

145:                                              ; preds = %142
  %146 = load ptr, ptr %22, align 8, !tbaa !5
  %147 = load i32, ptr %146, align 4, !tbaa !9
  %148 = icmp sgt i32 %147, 0
  br i1 %148, label %149, label %157

149:                                              ; preds = %145
  %150 = load ptr, ptr %25, align 8, !tbaa !5
  %151 = load float, ptr %150, align 4, !tbaa !11
  %152 = load ptr, ptr %24, align 8, !tbaa !5
  %153 = load float, ptr %152, align 4, !tbaa !11
  %154 = fcmp ole float %151, %153
  br i1 %154, label %155, label %157

155:                                              ; preds = %149
  %156 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -7, ptr %156, align 4, !tbaa !9
  br label %157

157:                                              ; preds = %155, %149, %145
  br label %208

158:                                              ; preds = %142
  %159 = load i32, ptr %60, align 4, !tbaa !9
  %160 = icmp ne i32 %159, 0
  br i1 %160, label %161, label %207

161:                                              ; preds = %158
  %162 = load ptr, ptr %26, align 8, !tbaa !5
  %163 = load i32, ptr %162, align 4, !tbaa !9
  %164 = icmp slt i32 %163, 1
  br i1 %164, label %178, label %165

165:                                              ; preds = %161
  %166 = load ptr, ptr %26, align 8, !tbaa !5
  %167 = load i32, ptr %166, align 4, !tbaa !9
  %168 = load ptr, ptr %22, align 8, !tbaa !5
  %169 = load i32, ptr %168, align 4, !tbaa !9
  %170 = icmp sge i32 1, %169
  br i1 %170, label %171, label %172

171:                                              ; preds = %165
  br label %175

172:                                              ; preds = %165
  %173 = load ptr, ptr %22, align 8, !tbaa !5
  %174 = load i32, ptr %173, align 4, !tbaa !9
  br label %175

175:                                              ; preds = %172, %171
  %176 = phi i32 [ 1, %171 ], [ %174, %172 ]
  %177 = icmp sgt i32 %167, %176
  br i1 %177, label %178, label %180

178:                                              ; preds = %175, %161
  %179 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -8, ptr %179, align 4, !tbaa !9
  br label %206

180:                                              ; preds = %175
  %181 = load ptr, ptr %27, align 8, !tbaa !5
  %182 = load i32, ptr %181, align 4, !tbaa !9
  %183 = load ptr, ptr %22, align 8, !tbaa !5
  %184 = load i32, ptr %183, align 4, !tbaa !9
  %185 = load ptr, ptr %26, align 8, !tbaa !5
  %186 = load i32, ptr %185, align 4, !tbaa !9
  %187 = icmp sle i32 %184, %186
  br i1 %187, label %188, label %191

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

191:                                              ; preds = %180
  %192 = load ptr, ptr %26, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  br label %194

194:                                              ; preds = %191, %188
  %195 = phi i32 [ %190, %188 ], [ %193, %191 ]
  %196 = icmp slt i32 %182, %195
  br i1 %196, label %203, label %197

197:                                              ; preds = %194
  %198 = load ptr, ptr %27, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = load ptr, ptr %22, align 8, !tbaa !5
  %201 = load i32, ptr %200, align 4, !tbaa !9
  %202 = icmp sgt i32 %199, %201
  br i1 %202, label %203, label %205

203:                                              ; preds = %197, %194
  %204 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -9, ptr %204, align 4, !tbaa !9
  br label %205

205:                                              ; preds = %203, %197
  br label %206

206:                                              ; preds = %205, %178
  br label %207

207:                                              ; preds = %206, %158
  br label %208

208:                                              ; preds = %207, %157
  br label %209

209:                                              ; preds = %208, %140
  br label %210

210:                                              ; preds = %209, %134
  br label %211

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

212:                                              ; preds = %211, %113
  %213 = load ptr, ptr %36, align 8, !tbaa !5
  %214 = load i32, ptr %213, align 4, !tbaa !9
  %215 = icmp eq i32 %214, 0
  br i1 %215, label %216, label %232

216:                                              ; preds = %212
  %217 = load ptr, ptr %32, align 8, !tbaa !5
  %218 = load i32, ptr %217, align 4, !tbaa !9
  %219 = icmp slt i32 %218, 1
  br i1 %219, label %229, label %220

220:                                              ; preds = %216
  %221 = load i32, ptr %57, align 4, !tbaa !9
  %222 = icmp ne i32 %221, 0
  br i1 %222, label %223, label %231

223:                                              ; preds = %220
  %224 = load ptr, ptr %32, align 8, !tbaa !5
  %225 = load i32, ptr %224, align 4, !tbaa !9
  %226 = load ptr, ptr %22, align 8, !tbaa !5
  %227 = load i32, ptr %226, align 4, !tbaa !9
  %228 = icmp slt i32 %225, %227
  br i1 %228, label %229, label %231

229:                                              ; preds = %223, %216
  %230 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -14, ptr %230, align 4, !tbaa !9
  br label %231

231:                                              ; preds = %229, %223, %220
  br label %232

232:                                              ; preds = %231, %212
  %233 = load ptr, ptr %36, align 8, !tbaa !5
  %234 = load i32, ptr %233, align 4, !tbaa !9
  %235 = icmp ne i32 %234, 0
  br i1 %235, label %236, label %241

236:                                              ; preds = %232
  %237 = load ptr, ptr %36, align 8, !tbaa !5
  %238 = load i32, ptr %237, align 4, !tbaa !9
  %239 = sub nsw i32 0, %238
  store i32 %239, ptr %39, align 4, !tbaa !9
  %240 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %39, i32 noundef 6)
  store i32 1, ptr %77, align 4
  br label %827

241:                                              ; preds = %232
  %242 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 0, ptr %242, align 4, !tbaa !9
  %243 = load ptr, ptr %22, align 8, !tbaa !5
  %244 = load i32, ptr %243, align 4, !tbaa !9
  %245 = icmp eq i32 %244, 0
  br i1 %245, label %246, label %247

246:                                              ; preds = %241
  store i32 1, ptr %77, align 4
  br label %827

247:                                              ; preds = %241
  %248 = load ptr, ptr %22, align 8, !tbaa !5
  %249 = load i32, ptr %248, align 4, !tbaa !9
  %250 = icmp eq i32 %249, 1
  br i1 %250, label %251, label %296

251:                                              ; preds = %247
  %252 = load i32, ptr %59, align 4, !tbaa !9
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %257, label %254

254:                                              ; preds = %251
  %255 = load i32, ptr %60, align 4, !tbaa !9
  %256 = icmp ne i32 %255, 0
  br i1 %256, label %257, label %264

257:                                              ; preds = %254, %251
  %258 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 1, ptr %258, align 4, !tbaa !9
  %259 = load ptr, ptr %23, align 8, !tbaa !5
  %260 = getelementptr inbounds float, ptr %259, i64 1
  %261 = load float, ptr %260, align 4, !tbaa !11
  %262 = load ptr, ptr %30, align 8, !tbaa !5
  %263 = getelementptr inbounds float, ptr %262, i64 1
  store float %261, ptr %263, align 4, !tbaa !11
  br label %286

264:                                              ; preds = %254
  %265 = load ptr, ptr %24, align 8, !tbaa !5
  %266 = load float, ptr %265, align 4, !tbaa !11
  %267 = load ptr, ptr %23, align 8, !tbaa !5
  %268 = getelementptr inbounds float, ptr %267, i64 1
  %269 = load float, ptr %268, align 4, !tbaa !11
  %270 = fcmp olt float %266, %269
  br i1 %270, label %271, label %285

271:                                              ; preds = %264
  %272 = load ptr, ptr %25, align 8, !tbaa !5
  %273 = load float, ptr %272, align 4, !tbaa !11
  %274 = load ptr, ptr %23, align 8, !tbaa !5
  %275 = getelementptr inbounds float, ptr %274, i64 1
  %276 = load float, ptr %275, align 4, !tbaa !11
  %277 = fcmp oge float %273, %276
  br i1 %277, label %278, label %285

278:                                              ; preds = %271
  %279 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 1, ptr %279, align 4, !tbaa !9
  %280 = load ptr, ptr %23, align 8, !tbaa !5
  %281 = getelementptr inbounds float, ptr %280, i64 1
  %282 = load float, ptr %281, align 4, !tbaa !11
  %283 = load ptr, ptr %30, align 8, !tbaa !5
  %284 = getelementptr inbounds float, ptr %283, i64 1
  store float %282, ptr %284, align 4, !tbaa !11
  br label %285

285:                                              ; preds = %278, %271, %264
  br label %286

286:                                              ; preds = %285, %257
  %287 = load i32, ptr %57, align 4, !tbaa !9
  %288 = icmp ne i32 %287, 0
  br i1 %288, label %289, label %295

289:                                              ; preds = %286
  %290 = load ptr, ptr %31, align 8, !tbaa !5
  %291 = load i32, ptr %37, align 4, !tbaa !9
  %292 = add nsw i32 %291, 1
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds float, ptr %290, i64 %293
  store float 1.000000e+00, ptr %294, align 4, !tbaa !11
  br label %295

295:                                              ; preds = %289, %286
  store i32 1, ptr %77, align 4
  br label %827

296:                                              ; preds = %247
  %297 = call float @slamch_(ptr noundef @.str.7)
  store float %297, ptr %64, align 4, !tbaa !11
  %298 = call float @slamch_(ptr noundef @.str.8)
  store float %298, ptr %73, align 4, !tbaa !11
  %299 = load float, ptr %64, align 4, !tbaa !11
  %300 = load float, ptr %73, align 4, !tbaa !11
  %301 = fdiv float %299, %300
  store float %301, ptr %72, align 4, !tbaa !11
  %302 = load float, ptr %72, align 4, !tbaa !11
  %303 = fdiv float 1.000000e+00, %302
  store float %303, ptr %66, align 4, !tbaa !11
  %304 = load float, ptr %72, align 4, !tbaa !11
  %305 = fpext float %304 to double
  %306 = call double @sqrt(double noundef %305) #4
  %307 = fptrunc double %306 to float
  store float %307, ptr %47, align 4, !tbaa !11
  %308 = load float, ptr %66, align 4, !tbaa !11
  %309 = fpext float %308 to double
  %310 = call double @sqrt(double noundef %309) #4
  %311 = fptrunc double %310 to float
  store float %311, ptr %41, align 4, !tbaa !11
  %312 = load float, ptr %64, align 4, !tbaa !11
  %313 = fpext float %312 to double
  %314 = call double @sqrt(double noundef %313) #4
  %315 = call double @sqrt(double noundef %314) #4
  %316 = fdiv double 1.000000e+00, %315
  %317 = fptrunc double %316 to float
  store float %317, ptr %42, align 4, !tbaa !11
  %318 = load float, ptr %41, align 4, !tbaa !11
  %319 = load float, ptr %42, align 4, !tbaa !11
  %320 = fcmp ole float %318, %319
  br i1 %320, label %321, label %323

321:                                              ; preds = %296
  %322 = load float, ptr %41, align 4, !tbaa !11
  br label %325

323:                                              ; preds = %296
  %324 = load float, ptr %42, align 4, !tbaa !11
  br label %325

325:                                              ; preds = %323, %321
  %326 = phi float [ %322, %321 ], [ %324, %323 ]
  store float %326, ptr %48, align 4, !tbaa !11
  store i32 0, ptr %61, align 4, !tbaa !9
  %327 = load ptr, ptr %28, align 8, !tbaa !5
  %328 = load float, ptr %327, align 4, !tbaa !11
  store float %328, ptr %65, align 4, !tbaa !11
  %329 = load i32, ptr %63, align 4, !tbaa !9
  %330 = icmp ne i32 %329, 0
  br i1 %330, label %331, label %336

331:                                              ; preds = %325
  %332 = load ptr, ptr %24, align 8, !tbaa !5
  %333 = load float, ptr %332, align 4, !tbaa !11
  store float %333, ptr %74, align 4, !tbaa !11
  %334 = load ptr, ptr %25, align 8, !tbaa !5
  %335 = load float, ptr %334, align 4, !tbaa !11
  store float %335, ptr %75, align 4, !tbaa !11
  br label %337

336:                                              ; preds = %325
  store float 0.000000e+00, ptr %74, align 4, !tbaa !11
  store float 0.000000e+00, ptr %75, align 4, !tbaa !11
  br label %337

337:                                              ; preds = %336, %331
  %338 = load ptr, ptr %21, align 8, !tbaa !5
  %339 = load ptr, ptr %22, align 8, !tbaa !5
  %340 = load ptr, ptr %23, align 8, !tbaa !5
  %341 = getelementptr inbounds float, ptr %340, i64 1
  %342 = load ptr, ptr %33, align 8, !tbaa !5
  %343 = getelementptr inbounds float, ptr %342, i64 1
  %344 = call float @slansp_(ptr noundef @.str.9, ptr noundef %338, ptr noundef %339, ptr noundef %341, ptr noundef %343)
  store float %344, ptr %45, align 4, !tbaa !11
  %345 = load float, ptr %45, align 4, !tbaa !11
  %346 = fcmp ogt float %345, 0.000000e+00
  br i1 %346, label %347, label %355

347:                                              ; preds = %337
  %348 = load float, ptr %45, align 4, !tbaa !11
  %349 = load float, ptr %47, align 4, !tbaa !11
  %350 = fcmp olt float %348, %349
  br i1 %350, label %351, label %355

351:                                              ; preds = %347
  store i32 1, ptr %61, align 4, !tbaa !9
  %352 = load float, ptr %47, align 4, !tbaa !11
  %353 = load float, ptr %45, align 4, !tbaa !11
  %354 = fdiv float %352, %353
  store float %354, ptr %54, align 4, !tbaa !11
  br label %364

355:                                              ; preds = %347, %337
  %356 = load float, ptr %45, align 4, !tbaa !11
  %357 = load float, ptr %48, align 4, !tbaa !11
  %358 = fcmp ogt float %356, %357
  br i1 %358, label %359, label %363

359:                                              ; preds = %355
  store i32 1, ptr %61, align 4, !tbaa !9
  %360 = load float, ptr %48, align 4, !tbaa !11
  %361 = load float, ptr %45, align 4, !tbaa !11
  %362 = fdiv float %360, %361
  store float %362, ptr %54, align 4, !tbaa !11
  br label %363

363:                                              ; preds = %359, %355
  br label %364

364:                                              ; preds = %363, %351
  %365 = load i32, ptr %61, align 4, !tbaa !9
  %366 = icmp eq i32 %365, 1
  br i1 %366, label %367, label %398

367:                                              ; preds = %364
  %368 = load ptr, ptr %22, align 8, !tbaa !5
  %369 = load i32, ptr %368, align 4, !tbaa !9
  %370 = load ptr, ptr %22, align 8, !tbaa !5
  %371 = load i32, ptr %370, align 4, !tbaa !9
  %372 = add nsw i32 %371, 1
  %373 = mul nsw i32 %369, %372
  %374 = sdiv i32 %373, 2
  store i32 %374, ptr %39, align 4, !tbaa !9
  %375 = load ptr, ptr %23, align 8, !tbaa !5
  %376 = getelementptr inbounds float, ptr %375, i64 1
  call void @sscal_(ptr noundef %39, ptr noundef %54, ptr noundef %376, ptr noundef @c__1)
  %377 = load ptr, ptr %28, align 8, !tbaa !5
  %378 = load float, ptr %377, align 4, !tbaa !11
  %379 = fcmp ogt float %378, 0.000000e+00
  br i1 %379, label %380, label %385

380:                                              ; preds = %367
  %381 = load ptr, ptr %28, align 8, !tbaa !5
  %382 = load float, ptr %381, align 4, !tbaa !11
  %383 = load float, ptr %54, align 4, !tbaa !11
  %384 = fmul float %382, %383
  store float %384, ptr %65, align 4, !tbaa !11
  br label %385

385:                                              ; preds = %380, %367
  %386 = load i32, ptr %63, align 4, !tbaa !9
  %387 = icmp ne i32 %386, 0
  br i1 %387, label %388, label %397

388:                                              ; preds = %385
  %389 = load ptr, ptr %24, align 8, !tbaa !5
  %390 = load float, ptr %389, align 4, !tbaa !11
  %391 = load float, ptr %54, align 4, !tbaa !11
  %392 = fmul float %390, %391
  store float %392, ptr %74, align 4, !tbaa !11
  %393 = load ptr, ptr %25, align 8, !tbaa !5
  %394 = load float, ptr %393, align 4, !tbaa !11
  %395 = load float, ptr %54, align 4, !tbaa !11
  %396 = fmul float %394, %395
  store float %396, ptr %75, align 4, !tbaa !11
  br label %397

397:                                              ; preds = %388, %385
  br label %398

398:                                              ; preds = %397, %364
  store i32 1, ptr %67, align 4, !tbaa !9
  %399 = load i32, ptr %67, align 4, !tbaa !9
  %400 = load ptr, ptr %22, align 8, !tbaa !5
  %401 = load i32, ptr %400, align 4, !tbaa !9
  %402 = add nsw i32 %399, %401
  store i32 %402, ptr %44, align 4, !tbaa !9
  %403 = load i32, ptr %44, align 4, !tbaa !9
  %404 = load ptr, ptr %22, align 8, !tbaa !5
  %405 = load i32, ptr %404, align 4, !tbaa !9
  %406 = add nsw i32 %403, %405
  store i32 %406, ptr %43, align 4, !tbaa !9
  %407 = load i32, ptr %43, align 4, !tbaa !9
  %408 = load ptr, ptr %22, align 8, !tbaa !5
  %409 = load i32, ptr %408, align 4, !tbaa !9
  %410 = add nsw i32 %407, %409
  store i32 %410, ptr %70, align 4, !tbaa !9
  %411 = load ptr, ptr %21, align 8, !tbaa !5
  %412 = load ptr, ptr %22, align 8, !tbaa !5
  %413 = load ptr, ptr %23, align 8, !tbaa !5
  %414 = getelementptr inbounds float, ptr %413, i64 1
  %415 = load ptr, ptr %33, align 8, !tbaa !5
  %416 = load i32, ptr %43, align 4, !tbaa !9
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds float, ptr %415, i64 %417
  %419 = load ptr, ptr %33, align 8, !tbaa !5
  %420 = load i32, ptr %44, align 4, !tbaa !9
  %421 = sext i32 %420 to i64
  %422 = getelementptr inbounds float, ptr %419, i64 %421
  %423 = load ptr, ptr %33, align 8, !tbaa !5
  %424 = load i32, ptr %67, align 4, !tbaa !9
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds float, ptr %423, i64 %425
  call void @ssptrd_(ptr noundef %411, ptr noundef %412, ptr noundef %414, ptr noundef %418, ptr noundef %422, ptr noundef %426, ptr noundef %55)
  store i32 0, ptr %49, align 4, !tbaa !9
  %427 = load i32, ptr %60, align 4, !tbaa !9
  %428 = icmp ne i32 %427, 0
  br i1 %428, label %429, label %441

429:                                              ; preds = %398
  %430 = load ptr, ptr %26, align 8, !tbaa !5
  %431 = load i32, ptr %430, align 4, !tbaa !9
  %432 = icmp eq i32 %431, 1
  br i1 %432, label %433, label %440

433:                                              ; preds = %429
  %434 = load ptr, ptr %27, align 8, !tbaa !5
  %435 = load i32, ptr %434, align 4, !tbaa !9
  %436 = load ptr, ptr %22, align 8, !tbaa !5
  %437 = load i32, ptr %436, align 4, !tbaa !9
  %438 = icmp eq i32 %435, %437
  br i1 %438, label %439, label %440

439:                                              ; preds = %433
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %440

440:                                              ; preds = %439, %433, %429
  br label %441

441:                                              ; preds = %440, %398
  %442 = load i32, ptr %59, align 4, !tbaa !9
  %443 = icmp ne i32 %442, 0
  br i1 %443, label %447, label %444

444:                                              ; preds = %441
  %445 = load i32, ptr %49, align 4, !tbaa !9
  %446 = icmp ne i32 %445, 0
  br i1 %446, label %447, label %563

447:                                              ; preds = %444, %441
  %448 = load ptr, ptr %28, align 8, !tbaa !5
  %449 = load float, ptr %448, align 4, !tbaa !11
  %450 = fcmp ole float %449, 0.000000e+00
  br i1 %450, label %451, label %563

451:                                              ; preds = %447
  %452 = load ptr, ptr %22, align 8, !tbaa !5
  %453 = load ptr, ptr %33, align 8, !tbaa !5
  %454 = load i32, ptr %43, align 4, !tbaa !9
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds float, ptr %453, i64 %455
  %457 = load ptr, ptr %30, align 8, !tbaa !5
  %458 = getelementptr inbounds float, ptr %457, i64 1
  call void @scopy_(ptr noundef %452, ptr noundef %456, ptr noundef @c__1, ptr noundef %458, ptr noundef @c__1)
  %459 = load i32, ptr %70, align 4, !tbaa !9
  %460 = load ptr, ptr %22, align 8, !tbaa !5
  %461 = load i32, ptr %460, align 4, !tbaa !9
  %462 = shl i32 %461, 1
  %463 = add nsw i32 %459, %462
  store i32 %463, ptr %53, align 4, !tbaa !9
  %464 = load i32, ptr %57, align 4, !tbaa !9
  %465 = icmp ne i32 %464, 0
  br i1 %465, label %486, label %466

466:                                              ; preds = %451
  %467 = load ptr, ptr %22, align 8, !tbaa !5
  %468 = load i32, ptr %467, align 4, !tbaa !9
  %469 = sub nsw i32 %468, 1
  store i32 %469, ptr %39, align 4, !tbaa !9
  %470 = load ptr, ptr %33, align 8, !tbaa !5
  %471 = load i32, ptr %44, align 4, !tbaa !9
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds float, ptr %470, i64 %472
  %474 = load ptr, ptr %33, align 8, !tbaa !5
  %475 = load i32, ptr %53, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds float, ptr %474, i64 %476
  call void @scopy_(ptr noundef %39, ptr noundef %473, ptr noundef @c__1, ptr noundef %477, ptr noundef @c__1)
  %478 = load ptr, ptr %22, align 8, !tbaa !5
  %479 = load ptr, ptr %30, align 8, !tbaa !5
  %480 = getelementptr inbounds float, ptr %479, i64 1
  %481 = load ptr, ptr %33, align 8, !tbaa !5
  %482 = load i32, ptr %53, align 4, !tbaa !9
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds float, ptr %481, i64 %483
  %485 = load ptr, ptr %36, align 8, !tbaa !5
  call void @ssterf_(ptr noundef %478, ptr noundef %480, ptr noundef %484, ptr noundef %485)
  br label %553

486:                                              ; preds = %451
  %487 = load ptr, ptr %21, align 8, !tbaa !5
  %488 = load ptr, ptr %22, align 8, !tbaa !5
  %489 = load ptr, ptr %23, align 8, !tbaa !5
  %490 = getelementptr inbounds float, ptr %489, i64 1
  %491 = load ptr, ptr %33, align 8, !tbaa !5
  %492 = load i32, ptr %67, align 4, !tbaa !9
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds float, ptr %491, i64 %493
  %495 = load ptr, ptr %31, align 8, !tbaa !5
  %496 = load i32, ptr %38, align 4, !tbaa !9
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds float, ptr %495, i64 %497
  %499 = load ptr, ptr %32, align 8, !tbaa !5
  %500 = load ptr, ptr %33, align 8, !tbaa !5
  %501 = load i32, ptr %70, align 4, !tbaa !9
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds float, ptr %500, i64 %502
  call void @sopgtr_(ptr noundef %487, ptr noundef %488, ptr noundef %490, ptr noundef %494, ptr noundef %498, ptr noundef %499, ptr noundef %503, ptr noundef %55)
  %504 = load ptr, ptr %22, align 8, !tbaa !5
  %505 = load i32, ptr %504, align 4, !tbaa !9
  %506 = sub nsw i32 %505, 1
  store i32 %506, ptr %39, align 4, !tbaa !9
  %507 = load ptr, ptr %33, align 8, !tbaa !5
  %508 = load i32, ptr %44, align 4, !tbaa !9
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds float, ptr %507, i64 %509
  %511 = load ptr, ptr %33, align 8, !tbaa !5
  %512 = load i32, ptr %53, align 4, !tbaa !9
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds float, ptr %511, i64 %513
  call void @scopy_(ptr noundef %39, ptr noundef %510, ptr noundef @c__1, ptr noundef %514, ptr noundef @c__1)
  %515 = load ptr, ptr %19, align 8, !tbaa !5
  %516 = load ptr, ptr %22, align 8, !tbaa !5
  %517 = load ptr, ptr %30, align 8, !tbaa !5
  %518 = getelementptr inbounds float, ptr %517, i64 1
  %519 = load ptr, ptr %33, align 8, !tbaa !5
  %520 = load i32, ptr %53, align 4, !tbaa !9
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds float, ptr %519, i64 %521
  %523 = load ptr, ptr %31, align 8, !tbaa !5
  %524 = load i32, ptr %38, align 4, !tbaa !9
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds float, ptr %523, i64 %525
  %527 = load ptr, ptr %32, align 8, !tbaa !5
  %528 = load ptr, ptr %33, align 8, !tbaa !5
  %529 = load i32, ptr %70, align 4, !tbaa !9
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds float, ptr %528, i64 %530
  %532 = load ptr, ptr %36, align 8, !tbaa !5
  call void @ssteqr_(ptr noundef %515, ptr noundef %516, ptr noundef %518, ptr noundef %522, ptr noundef %526, ptr noundef %527, ptr noundef %531, ptr noundef %532)
  %533 = load ptr, ptr %36, align 8, !tbaa !5
  %534 = load i32, ptr %533, align 4, !tbaa !9
  %535 = icmp eq i32 %534, 0
  br i1 %535, label %536, label %552

536:                                              ; preds = %486
  %537 = load ptr, ptr %22, align 8, !tbaa !5
  %538 = load i32, ptr %537, align 4, !tbaa !9
  store i32 %538, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %51, align 4, !tbaa !9
  br label %539

539:                                              ; preds = %548, %536
  %540 = load i32, ptr %51, align 4, !tbaa !9
  %541 = load i32, ptr %39, align 4, !tbaa !9
  %542 = icmp sle i32 %540, %541
  br i1 %542, label %543, label %551

543:                                              ; preds = %539
  %544 = load ptr, ptr %35, align 8, !tbaa !5
  %545 = load i32, ptr %51, align 4, !tbaa !9
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds i32, ptr %544, i64 %546
  store i32 0, ptr %547, align 4, !tbaa !9
  br label %548

548:                                              ; preds = %543
  %549 = load i32, ptr %51, align 4, !tbaa !9
  %550 = add nsw i32 %549, 1
  store i32 %550, ptr %51, align 4, !tbaa !9
  br label %539, !llvm.loop !13

551:                                              ; preds = %539
  br label %552

552:                                              ; preds = %551, %486
  br label %553

553:                                              ; preds = %552, %466
  %554 = load ptr, ptr %36, align 8, !tbaa !5
  %555 = load i32, ptr %554, align 4, !tbaa !9
  %556 = icmp eq i32 %555, 0
  br i1 %556, label %557, label %561

557:                                              ; preds = %553
  %558 = load ptr, ptr %22, align 8, !tbaa !5
  %559 = load i32, ptr %558, align 4, !tbaa !9
  %560 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 %559, ptr %560, align 4, !tbaa !9
  br label %670

561:                                              ; preds = %553
  %562 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 0, ptr %562, align 4, !tbaa !9
  br label %563

563:                                              ; preds = %561, %447, %444
  %564 = load i32, ptr %57, align 4, !tbaa !9
  %565 = icmp ne i32 %564, 0
  br i1 %565, label %566, label %568

566:                                              ; preds = %563
  %567 = getelementptr inbounds [1 x i8], ptr %56, i64 0, i64 0
  store i8 66, ptr %567, align 1, !tbaa !15
  br label %570

568:                                              ; preds = %563
  %569 = getelementptr inbounds [1 x i8], ptr %56, i64 0, i64 0
  store i8 69, ptr %569, align 1, !tbaa !15
  br label %570

570:                                              ; preds = %568, %566
  store i32 1, ptr %62, align 4, !tbaa !9
  %571 = load i32, ptr %62, align 4, !tbaa !9
  %572 = load ptr, ptr %22, align 8, !tbaa !5
  %573 = load i32, ptr %572, align 4, !tbaa !9
  %574 = add nsw i32 %571, %573
  store i32 %574, ptr %68, align 4, !tbaa !9
  %575 = load i32, ptr %68, align 4, !tbaa !9
  %576 = load ptr, ptr %22, align 8, !tbaa !5
  %577 = load i32, ptr %576, align 4, !tbaa !9
  %578 = add nsw i32 %575, %577
  store i32 %578, ptr %69, align 4, !tbaa !9
  %579 = load ptr, ptr %20, align 8, !tbaa !5
  %580 = getelementptr inbounds [1 x i8], ptr %56, i64 0, i64 0
  %581 = load ptr, ptr %22, align 8, !tbaa !5
  %582 = load ptr, ptr %26, align 8, !tbaa !5
  %583 = load ptr, ptr %27, align 8, !tbaa !5
  %584 = load ptr, ptr %33, align 8, !tbaa !5
  %585 = load i32, ptr %43, align 4, !tbaa !9
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds float, ptr %584, i64 %586
  %588 = load ptr, ptr %33, align 8, !tbaa !5
  %589 = load i32, ptr %44, align 4, !tbaa !9
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds float, ptr %588, i64 %590
  %592 = load ptr, ptr %29, align 8, !tbaa !5
  %593 = load ptr, ptr %30, align 8, !tbaa !5
  %594 = getelementptr inbounds float, ptr %593, i64 1
  %595 = load ptr, ptr %34, align 8, !tbaa !5
  %596 = load i32, ptr %62, align 4, !tbaa !9
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds i32, ptr %595, i64 %597
  %599 = load ptr, ptr %34, align 8, !tbaa !5
  %600 = load i32, ptr %68, align 4, !tbaa !9
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds i32, ptr %599, i64 %601
  %603 = load ptr, ptr %33, align 8, !tbaa !5
  %604 = load i32, ptr %70, align 4, !tbaa !9
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds float, ptr %603, i64 %605
  %607 = load ptr, ptr %34, align 8, !tbaa !5
  %608 = load i32, ptr %69, align 4, !tbaa !9
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds i32, ptr %607, i64 %609
  %611 = load ptr, ptr %36, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %579, ptr noundef %580, ptr noundef %581, ptr noundef %74, ptr noundef %75, ptr noundef %582, ptr noundef %583, ptr noundef %65, ptr noundef %587, ptr noundef %591, ptr noundef %592, ptr noundef %71, ptr noundef %594, ptr noundef %598, ptr noundef %602, ptr noundef %606, ptr noundef %610, ptr noundef %611)
  %612 = load i32, ptr %57, align 4, !tbaa !9
  %613 = icmp ne i32 %612, 0
  br i1 %613, label %614, label %669

614:                                              ; preds = %570
  %615 = load ptr, ptr %22, align 8, !tbaa !5
  %616 = load ptr, ptr %33, align 8, !tbaa !5
  %617 = load i32, ptr %43, align 4, !tbaa !9
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds float, ptr %616, i64 %618
  %620 = load ptr, ptr %33, align 8, !tbaa !5
  %621 = load i32, ptr %44, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds float, ptr %620, i64 %622
  %624 = load ptr, ptr %29, align 8, !tbaa !5
  %625 = load ptr, ptr %30, align 8, !tbaa !5
  %626 = getelementptr inbounds float, ptr %625, i64 1
  %627 = load ptr, ptr %34, align 8, !tbaa !5
  %628 = load i32, ptr %62, align 4, !tbaa !9
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds i32, ptr %627, i64 %629
  %631 = load ptr, ptr %34, align 8, !tbaa !5
  %632 = load i32, ptr %68, align 4, !tbaa !9
  %633 = sext i32 %632 to i64
  %634 = getelementptr inbounds i32, ptr %631, i64 %633
  %635 = load ptr, ptr %31, align 8, !tbaa !5
  %636 = load i32, ptr %38, align 4, !tbaa !9
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds float, ptr %635, i64 %637
  %639 = load ptr, ptr %32, align 8, !tbaa !5
  %640 = load ptr, ptr %33, align 8, !tbaa !5
  %641 = load i32, ptr %70, align 4, !tbaa !9
  %642 = sext i32 %641 to i64
  %643 = getelementptr inbounds float, ptr %640, i64 %642
  %644 = load ptr, ptr %34, align 8, !tbaa !5
  %645 = load i32, ptr %69, align 4, !tbaa !9
  %646 = sext i32 %645 to i64
  %647 = getelementptr inbounds i32, ptr %644, i64 %646
  %648 = load ptr, ptr %35, align 8, !tbaa !5
  %649 = getelementptr inbounds i32, ptr %648, i64 1
  %650 = load ptr, ptr %36, align 8, !tbaa !5
  call void @sstein_(ptr noundef %615, ptr noundef %619, ptr noundef %623, ptr noundef %624, ptr noundef %626, ptr noundef %630, ptr noundef %634, ptr noundef %638, ptr noundef %639, ptr noundef %643, ptr noundef %647, ptr noundef %649, ptr noundef %650)
  %651 = load ptr, ptr %21, align 8, !tbaa !5
  %652 = load ptr, ptr %22, align 8, !tbaa !5
  %653 = load ptr, ptr %29, align 8, !tbaa !5
  %654 = load ptr, ptr %23, align 8, !tbaa !5
  %655 = getelementptr inbounds float, ptr %654, i64 1
  %656 = load ptr, ptr %33, align 8, !tbaa !5
  %657 = load i32, ptr %67, align 4, !tbaa !9
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds float, ptr %656, i64 %658
  %660 = load ptr, ptr %31, align 8, !tbaa !5
  %661 = load i32, ptr %38, align 4, !tbaa !9
  %662 = sext i32 %661 to i64
  %663 = getelementptr inbounds float, ptr %660, i64 %662
  %664 = load ptr, ptr %32, align 8, !tbaa !5
  %665 = load ptr, ptr %33, align 8, !tbaa !5
  %666 = load i32, ptr %70, align 4, !tbaa !9
  %667 = sext i32 %666 to i64
  %668 = getelementptr inbounds float, ptr %665, i64 %667
  call void @sopmtr_(ptr noundef @.str.4, ptr noundef %651, ptr noundef @.str.3, ptr noundef %652, ptr noundef %653, ptr noundef %655, ptr noundef %659, ptr noundef %663, ptr noundef %664, ptr noundef %668, ptr noundef %55)
  br label %669

669:                                              ; preds = %614, %570
  br label %670

670:                                              ; preds = %669, %557
  %671 = load i32, ptr %61, align 4, !tbaa !9
  %672 = icmp eq i32 %671, 1
  br i1 %672, label %673, label %689

673:                                              ; preds = %670
  %674 = load ptr, ptr %36, align 8, !tbaa !5
  %675 = load i32, ptr %674, align 4, !tbaa !9
  %676 = icmp eq i32 %675, 0
  br i1 %676, label %677, label %680

677:                                              ; preds = %673
  %678 = load ptr, ptr %29, align 8, !tbaa !5
  %679 = load i32, ptr %678, align 4, !tbaa !9
  store i32 %679, ptr %46, align 4, !tbaa !9
  br label %684

680:                                              ; preds = %673
  %681 = load ptr, ptr %36, align 8, !tbaa !5
  %682 = load i32, ptr %681, align 4, !tbaa !9
  %683 = sub nsw i32 %682, 1
  store i32 %683, ptr %46, align 4, !tbaa !9
  br label %684

684:                                              ; preds = %680, %677
  %685 = load float, ptr %54, align 4, !tbaa !11
  %686 = fdiv float 1.000000e+00, %685
  store float %686, ptr %41, align 4, !tbaa !11
  %687 = load ptr, ptr %30, align 8, !tbaa !5
  %688 = getelementptr inbounds float, ptr %687, i64 1
  call void @sscal_(ptr noundef %46, ptr noundef %41, ptr noundef %688, ptr noundef @c__1)
  br label %689

689:                                              ; preds = %684, %670
  %690 = load i32, ptr %57, align 4, !tbaa !9
  %691 = icmp ne i32 %690, 0
  br i1 %691, label %692, label %826

692:                                              ; preds = %689
  %693 = load ptr, ptr %29, align 8, !tbaa !5
  %694 = load i32, ptr %693, align 4, !tbaa !9
  %695 = sub nsw i32 %694, 1
  store i32 %695, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !9
  br label %696

696:                                              ; preds = %822, %692
  %697 = load i32, ptr %52, align 4, !tbaa !9
  %698 = load i32, ptr %39, align 4, !tbaa !9
  %699 = icmp sle i32 %697, %698
  br i1 %699, label %700, label %825

700:                                              ; preds = %696
  store i32 0, ptr %51, align 4, !tbaa !9
  %701 = load ptr, ptr %30, align 8, !tbaa !5
  %702 = load i32, ptr %52, align 4, !tbaa !9
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds float, ptr %701, i64 %703
  %705 = load float, ptr %704, align 4, !tbaa !11
  store float %705, ptr %76, align 4, !tbaa !11
  %706 = load ptr, ptr %29, align 8, !tbaa !5
  %707 = load i32, ptr %706, align 4, !tbaa !9
  store i32 %707, ptr %40, align 4, !tbaa !9
  %708 = load i32, ptr %52, align 4, !tbaa !9
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr %58, align 4, !tbaa !9
  br label %710

710:                                              ; preds = %730, %700
  %711 = load i32, ptr %58, align 4, !tbaa !9
  %712 = load i32, ptr %40, align 4, !tbaa !9
  %713 = icmp sle i32 %711, %712
  br i1 %713, label %714, label %733

714:                                              ; preds = %710
  %715 = load ptr, ptr %30, align 8, !tbaa !5
  %716 = load i32, ptr %58, align 4, !tbaa !9
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds float, ptr %715, i64 %717
  %719 = load float, ptr %718, align 4, !tbaa !11
  %720 = load float, ptr %76, align 4, !tbaa !11
  %721 = fcmp olt float %719, %720
  br i1 %721, label %722, label %729

722:                                              ; preds = %714
  %723 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %723, ptr %51, align 4, !tbaa !9
  %724 = load ptr, ptr %30, align 8, !tbaa !5
  %725 = load i32, ptr %58, align 4, !tbaa !9
  %726 = sext i32 %725 to i64
  %727 = getelementptr inbounds float, ptr %724, i64 %726
  %728 = load float, ptr %727, align 4, !tbaa !11
  store float %728, ptr %76, align 4, !tbaa !11
  br label %729

729:                                              ; preds = %722, %714
  br label %730

730:                                              ; preds = %729
  %731 = load i32, ptr %58, align 4, !tbaa !9
  %732 = add nsw i32 %731, 1
  store i32 %732, ptr %58, align 4, !tbaa !9
  br label %710, !llvm.loop !16

733:                                              ; preds = %710
  %734 = load i32, ptr %51, align 4, !tbaa !9
  %735 = icmp ne i32 %734, 0
  br i1 %735, label %736, label %821

736:                                              ; preds = %733
  %737 = load ptr, ptr %34, align 8, !tbaa !5
  %738 = load i32, ptr %62, align 4, !tbaa !9
  %739 = load i32, ptr %51, align 4, !tbaa !9
  %740 = add nsw i32 %738, %739
  %741 = sub nsw i32 %740, 1
  %742 = sext i32 %741 to i64
  %743 = getelementptr inbounds i32, ptr %737, i64 %742
  %744 = load i32, ptr %743, align 4, !tbaa !9
  store i32 %744, ptr %50, align 4, !tbaa !9
  %745 = load ptr, ptr %30, align 8, !tbaa !5
  %746 = load i32, ptr %52, align 4, !tbaa !9
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds float, ptr %745, i64 %747
  %749 = load float, ptr %748, align 4, !tbaa !11
  %750 = load ptr, ptr %30, align 8, !tbaa !5
  %751 = load i32, ptr %51, align 4, !tbaa !9
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds float, ptr %750, i64 %752
  store float %749, ptr %753, align 4, !tbaa !11
  %754 = load ptr, ptr %34, align 8, !tbaa !5
  %755 = load i32, ptr %62, align 4, !tbaa !9
  %756 = load i32, ptr %52, align 4, !tbaa !9
  %757 = add nsw i32 %755, %756
  %758 = sub nsw i32 %757, 1
  %759 = sext i32 %758 to i64
  %760 = getelementptr inbounds i32, ptr %754, i64 %759
  %761 = load i32, ptr %760, align 4, !tbaa !9
  %762 = load ptr, ptr %34, align 8, !tbaa !5
  %763 = load i32, ptr %62, align 4, !tbaa !9
  %764 = load i32, ptr %51, align 4, !tbaa !9
  %765 = add nsw i32 %763, %764
  %766 = sub nsw i32 %765, 1
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds i32, ptr %762, i64 %767
  store i32 %761, ptr %768, align 4, !tbaa !9
  %769 = load float, ptr %76, align 4, !tbaa !11
  %770 = load ptr, ptr %30, align 8, !tbaa !5
  %771 = load i32, ptr %52, align 4, !tbaa !9
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds float, ptr %770, i64 %772
  store float %769, ptr %773, align 4, !tbaa !11
  %774 = load i32, ptr %50, align 4, !tbaa !9
  %775 = load ptr, ptr %34, align 8, !tbaa !5
  %776 = load i32, ptr %62, align 4, !tbaa !9
  %777 = load i32, ptr %52, align 4, !tbaa !9
  %778 = add nsw i32 %776, %777
  %779 = sub nsw i32 %778, 1
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds i32, ptr %775, i64 %780
  store i32 %774, ptr %781, align 4, !tbaa !9
  %782 = load ptr, ptr %22, align 8, !tbaa !5
  %783 = load ptr, ptr %31, align 8, !tbaa !5
  %784 = load i32, ptr %51, align 4, !tbaa !9
  %785 = load i32, ptr %37, align 4, !tbaa !9
  %786 = mul nsw i32 %784, %785
  %787 = add nsw i32 %786, 1
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds float, ptr %783, i64 %788
  %790 = load ptr, ptr %31, align 8, !tbaa !5
  %791 = load i32, ptr %52, align 4, !tbaa !9
  %792 = load i32, ptr %37, align 4, !tbaa !9
  %793 = mul nsw i32 %791, %792
  %794 = add nsw i32 %793, 1
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds float, ptr %790, i64 %795
  call void @sswap_(ptr noundef %782, ptr noundef %789, ptr noundef @c__1, ptr noundef %796, ptr noundef @c__1)
  %797 = load ptr, ptr %36, align 8, !tbaa !5
  %798 = load i32, ptr %797, align 4, !tbaa !9
  %799 = icmp ne i32 %798, 0
  br i1 %799, label %800, label %820

800:                                              ; preds = %736
  %801 = load ptr, ptr %35, align 8, !tbaa !5
  %802 = load i32, ptr %51, align 4, !tbaa !9
  %803 = sext i32 %802 to i64
  %804 = getelementptr inbounds i32, ptr %801, i64 %803
  %805 = load i32, ptr %804, align 4, !tbaa !9
  store i32 %805, ptr %50, align 4, !tbaa !9
  %806 = load ptr, ptr %35, align 8, !tbaa !5
  %807 = load i32, ptr %52, align 4, !tbaa !9
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds i32, ptr %806, i64 %808
  %810 = load i32, ptr %809, align 4, !tbaa !9
  %811 = load ptr, ptr %35, align 8, !tbaa !5
  %812 = load i32, ptr %51, align 4, !tbaa !9
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds i32, ptr %811, i64 %813
  store i32 %810, ptr %814, align 4, !tbaa !9
  %815 = load i32, ptr %50, align 4, !tbaa !9
  %816 = load ptr, ptr %35, align 8, !tbaa !5
  %817 = load i32, ptr %52, align 4, !tbaa !9
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds i32, ptr %816, i64 %818
  store i32 %815, ptr %819, align 4, !tbaa !9
  br label %820

820:                                              ; preds = %800, %736
  br label %821

821:                                              ; preds = %820, %733
  br label %822

822:                                              ; preds = %821
  %823 = load i32, ptr %52, align 4, !tbaa !9
  %824 = add nsw i32 %823, 1
  store i32 %824, ptr %52, align 4, !tbaa !9
  br label %696, !llvm.loop !17

825:                                              ; preds = %696
  br label %826

826:                                              ; preds = %825, %689
  store i32 1, ptr %77, align 4
  br label %827

827:                                              ; preds = %826, %295, %246, %236
  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 1, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #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 @xerbla_(ptr noundef, ptr noundef, i32 noundef) #2

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

declare void @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 void @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 void @sopmtr_(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 @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 = !{!7, !7, i64 0}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}


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

@.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
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4

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

40:                                               ; preds = %18
  %41 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #6
  %.not323 = icmp eq i32 %41, 0
  br i1 %.not323, label %.thread345.sink.split, label %42

42:                                               ; preds = %40, %18
  %43 = icmp ne i32 %37, 0
  %44 = icmp ne i32 %38, 0
  %or.cond = select i1 %43, i1 true, i1 %44
  %45 = icmp ne i32 %39, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %45
  br i1 %or.cond3, label %46, label %.thread345.sink.split

46:                                               ; preds = %42
  %47 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.4) #6
  %.not324 = icmp eq i32 %47, 0
  br i1 %.not324, label %48, label %50

48:                                               ; preds = %46
  %49 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #6
  %.not325 = icmp eq i32 %49, 0
  br i1 %.not325, label %.thread345.sink.split, label %50

50:                                               ; preds = %48, %46
  %51 = load i32, ptr %3, align 4, !tbaa !5
  %52 = icmp slt i32 %51, 0
  br i1 %52, label %.thread345.sink.split, label %53

53:                                               ; preds = %50
  br i1 %44, label %54, label %59

54:                                               ; preds = %53
  %.not327 = icmp eq i32 %51, 0
  br i1 %.not327, label %68, label %55

55:                                               ; preds = %54
  %56 = load float, ptr %6, align 4, !tbaa !9
  %57 = load float, ptr %5, align 4, !tbaa !9
  %58 = fcmp ugt float %56, %57
  br i1 %58, label %68, label %.thread345.sink.split

59:                                               ; preds = %53
  br i1 %45, label %60, label %68

60:                                               ; preds = %59
  %61 = load i32, ptr %7, align 4, !tbaa !5
  %62 = icmp slt i32 %61, 1
  %spec.select = tail call i32 @llvm.umax.i32(i32 %51, i32 1)
  %63 = icmp ugt i32 %61, %spec.select
  %or.cond356 = or i1 %62, %63
  br i1 %or.cond356, label %.thread345.sink.split, label %64

64:                                               ; preds = %60
  %65 = load i32, ptr %8, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %51, i32 %61)
  %66 = icmp slt i32 %65, %.
  %67 = icmp ugt i32 %65, %51
  %or.cond354 = or i1 %66, %67
  br i1 %or.cond354, label %.thread345.sink.split, label %68

68:                                               ; preds = %64, %59, %54, %55
  %.pr = load i32, ptr %17, align 4, !tbaa !5
  %69 = icmp eq i32 %.pr, 0
  br i1 %69, label %70, label %.thread345

70:                                               ; preds = %68
  %71 = load i32, ptr %13, align 4, !tbaa !5
  %72 = icmp slt i32 %71, 1
  %73 = icmp ult i32 %71, %51
  %or.cond382 = and i1 %.not, %73
  %or.cond385 = or i1 %72, %or.cond382
  br i1 %or.cond385, label %.thread345.sink.split, label %.thread

.thread345.sink.split:                            ; preds = %70, %64, %60, %55, %50, %48, %42, %40
  %.sink383 = phi i32 [ -1, %40 ], [ -2, %42 ], [ -3, %48 ], [ -4, %50 ], [ -7, %55 ], [ -8, %60 ], [ -9, %64 ], [ -14, %70 ]
  store i32 %.sink383, ptr %17, align 4, !tbaa !5
  br label %.thread345

.thread345:                                       ; preds = %.thread345.sink.split, %68
  %74 = phi i32 [ %.pr, %68 ], [ %.sink383, %.thread345.sink.split ]
  %75 = sub nsw i32 0, %74
  store i32 %75, ptr %19, align 4, !tbaa !5
  %76 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %19, i32 noundef 6) #6
  br label %.loopexit

.thread:                                          ; preds = %70
  store i32 0, ptr %10, align 4, !tbaa !5
  %77 = load i32, ptr %3, align 4, !tbaa !5
  switch i32 %77, label %91 [
    i32 0, label %.loopexit
    i32 1, label %78
  ]

78:                                               ; preds = %.thread
  %or.cond5 = select i1 %43, i1 true, i1 %45
  br i1 %or.cond5, label %79, label %81

79:                                               ; preds = %78
  store i32 1, ptr %10, align 4, !tbaa !5
  %80 = load float, ptr %4, align 4, !tbaa !9
  br label %.sink.split

81:                                               ; preds = %78
  %82 = load float, ptr %5, align 4, !tbaa !9
  %83 = load float, ptr %4, align 4, !tbaa !9
  %84 = fcmp olt float %82, %83
  br i1 %84, label %85, label %89

85:                                               ; preds = %81
  %86 = load float, ptr %6, align 4, !tbaa !9
  %87 = fcmp ult float %86, %83
  br i1 %87, label %89, label %88

88:                                               ; preds = %85
  store i32 1, ptr %10, align 4, !tbaa !5
  br label %.sink.split

.sink.split:                                      ; preds = %79, %88
  %.sink384 = phi float [ %83, %88 ], [ %80, %79 ]
  store float %.sink384, ptr %11, align 4, !tbaa !9
  br label %89

89:                                               ; preds = %.sink.split, %81, %85
  br i1 %.not, label %90, label %.loopexit

90:                                               ; preds = %89
  store float 1.000000e+00, ptr %12, align 4, !tbaa !9
  br label %.loopexit

91:                                               ; preds = %.thread
  %92 = tail call float @slamch_(ptr noundef nonnull @.str.7) #6
  %93 = tail call float @slamch_(ptr noundef nonnull @.str.8) #6
  %94 = fdiv float %92, %93
  %95 = fdiv float 1.000000e+00, %94
  %sqrtf = tail call float @sqrtf(float noundef %94) #3
  %sqrtf329 = tail call float @sqrtf(float noundef %95) #3
  store float %sqrtf329, ptr %20, align 4, !tbaa !9
  %96 = fpext float %92 to double
  %97 = tail call double @sqrt(double noundef %96) #6
  %98 = tail call double @sqrt(double noundef %97) #6
  %99 = fdiv double 1.000000e+00, %98
  %100 = fptrunc double %99 to float
  %101 = fcmp ole float %sqrtf329, %100
  %102 = select i1 %101, float %sqrtf329, float %100
  %103 = load float, ptr %9, align 4, !tbaa !9
  store float %103, ptr %25, align 4, !tbaa !9
  %.not330 = icmp eq i32 %38, 0
  br i1 %.not330, label %107, label %104

104:                                              ; preds = %91
  %105 = load float, ptr %5, align 4, !tbaa !9
  %106 = load float, ptr %6, align 4, !tbaa !9
  br label %107

107:                                              ; preds = %91, %104
  %.sink = phi float [ %105, %104 ], [ 0.000000e+00, %91 ]
  %storemerge = phi float [ %106, %104 ], [ 0.000000e+00, %91 ]
  store float %.sink, ptr %27, align 4
  store float %storemerge, ptr %28, align 4, !tbaa !9
  %108 = tail call float @slansp_(ptr noundef nonnull @.str.9, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef %14) #6
  %109 = fcmp ogt float %108, 0.000000e+00
  %110 = fcmp olt float %108, %sqrtf
  %or.cond339 = select i1 %109, i1 %110, i1 false
  br i1 %or.cond339, label %113, label %111

111:                                              ; preds = %107
  %112 = fcmp ogt float %108, %102
  br i1 %112, label %113, label %130

113:                                              ; preds = %111, %107
  %.pn = phi float [ %sqrtf, %107 ], [ %102, %111 ]
  %storemerge355 = fdiv float %.pn, %108
  store float %storemerge355, ptr %22, align 4, !tbaa !9
  %114 = load i32, ptr %3, align 4, !tbaa !5
  %115 = add nsw i32 %114, 1
  %116 = mul nsw i32 %115, %114
  %117 = sdiv i32 %116, 2
  store i32 %117, ptr %19, align 4, !tbaa !5
  call void @sscal_(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %4, ptr noundef nonnull @c__1) #6
  %118 = load float, ptr %9, align 4, !tbaa !9
  %119 = fcmp ogt float %118, 0.000000e+00
  br i1 %119, label %120, label %123

120:                                              ; preds = %113
  %121 = load float, ptr %22, align 4, !tbaa !9
  %122 = fmul float %118, %121
  store float %122, ptr %25, align 4, !tbaa !9
  br label %123

123:                                              ; preds = %120, %113
  br i1 %.not330, label %130, label %124

124:                                              ; preds = %123
  %125 = load float, ptr %5, align 4, !tbaa !9
  %126 = load float, ptr %22, align 4, !tbaa !9
  %127 = fmul float %125, %126
  store float %127, ptr %27, align 4, !tbaa !9
  %128 = load float, ptr %6, align 4, !tbaa !9
  %129 = fmul float %126, %128
  store float %129, ptr %28, align 4, !tbaa !9
  br label %130

130:                                              ; preds = %111, %123, %124
  %131 = phi i1 [ true, %123 ], [ true, %124 ], [ false, %111 ]
  %132 = load i32, ptr %3, align 4, !tbaa !5
  %133 = add nsw i32 %132, 1
  %134 = add nsw i32 %133, %132
  %135 = add nsw i32 %134, %132
  %136 = sext i32 %134 to i64
  %137 = getelementptr inbounds float, ptr %33, i64 %136
  %138 = sext i32 %133 to i64
  %139 = getelementptr inbounds float, ptr %33, i64 %138
  call void @ssptrd_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %137, ptr noundef nonnull %139, ptr noundef %14, ptr noundef nonnull %23) #6
  %.not331 = icmp eq i32 %39, 0
  br i1 %.not331, label %147, label %140

140:                                              ; preds = %130
  %141 = load i32, ptr %7, align 4, !tbaa !5
  %142 = icmp eq i32 %141, 1
  br i1 %142, label %143, label %147

143:                                              ; preds = %140
  %144 = load i32, ptr %8, align 4, !tbaa !5
  %145 = load i32, ptr %3, align 4, !tbaa !5
  %146 = icmp eq i32 %144, %145
  br label %147

147:                                              ; preds = %143, %140, %130
  %148 = phi i1 [ false, %140 ], [ false, %130 ], [ %146, %143 ]
  %or.cond7 = or i1 %43, %148
  br i1 %or.cond7, label %149, label %176

149:                                              ; preds = %147
  %150 = load float, ptr %9, align 4, !tbaa !9
  %151 = fcmp ugt float %150, 0.000000e+00
  br i1 %151, label %176, label %152

152:                                              ; preds = %149
  call void @scopy_(ptr noundef nonnull %3, ptr noundef nonnull %137, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull @c__1) #6
  %153 = load i32, ptr %3, align 4, !tbaa !5
  %154 = shl i32 %153, 1
  %155 = add nsw i32 %154, %135
  br i1 %.not, label %160, label %156

156:                                              ; preds = %152
  %157 = add nsw i32 %153, -1
  store i32 %157, ptr %19, align 4, !tbaa !5
  %158 = sext i32 %155 to i64
  %159 = getelementptr inbounds float, ptr %33, i64 %158
  call void @scopy_(ptr noundef nonnull %19, ptr noundef nonnull %139, ptr noundef nonnull @c__1, ptr noundef nonnull %159, ptr noundef nonnull @c__1) #6
  call void @ssterf_(ptr noundef nonnull %3, ptr noundef %11, ptr noundef nonnull %159, ptr noundef nonnull %17) #6
  br label %.loopexit357

160:                                              ; preds = %152
  %161 = sext i32 %135 to i64
  %162 = getelementptr inbounds float, ptr %33, i64 %161
  call void @sopgtr_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef %14, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %162, ptr noundef nonnull %23) #6
  %163 = load i32, ptr %3, align 4, !tbaa !5
  %164 = add nsw i32 %163, -1
  store i32 %164, ptr %19, align 4, !tbaa !5
  %165 = sext i32 %155 to i64
  %166 = getelementptr inbounds float, ptr %33, i64 %165
  call void @scopy_(ptr noundef nonnull %19, ptr noundef nonnull %139, ptr noundef nonnull @c__1, ptr noundef nonnull %166, ptr noundef nonnull @c__1) #6
  call void @ssteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %11, ptr noundef nonnull %166, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %162, ptr noundef nonnull %17) #6
  %167 = load i32, ptr %17, align 4, !tbaa !5
  %168 = icmp eq i32 %167, 0
  br i1 %168, label %169, label %.thread351

169:                                              ; preds = %160
  %170 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %170, ptr %19, align 4, !tbaa !5
  %.not332358 = icmp slt i32 %170, 1
  br i1 %.not332358, label %.loopexit357, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %169
  %171 = zext nneg i32 %170 to i64
  %172 = shl nuw nsw i64 %171, 2
  call void @llvm.memset.p0.i64(ptr align 4 %16, i8 0, i64 %172, i1 false), !tbaa !5
  br label %.loopexit357

.loopexit357:                                     ; preds = %.lr.ph.preheader, %169, %156
  %.pr350 = load i32, ptr %17, align 4, !tbaa !5
  %173 = icmp eq i32 %.pr350, 0
  br i1 %173, label %174, label %.thread351

174:                                              ; preds = %.loopexit357
  %175 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %175, ptr %10, align 4, !tbaa !5
  br label %187

.thread351:                                       ; preds = %160, %.loopexit357
  store i32 0, ptr %17, align 4, !tbaa !5
  br label %176

176:                                              ; preds = %147, %.thread351, %149
  %.341 = select i1 %.not, i8 66, i8 69
  store i8 %.341, ptr %24, align 1, !tbaa !11
  %177 = load i32, ptr %3, align 4, !tbaa !5
  %178 = add nsw i32 %177, 1
  %179 = add nsw i32 %178, %177
  %180 = sext i32 %178 to i64
  %181 = getelementptr inbounds i32, ptr %34, i64 %180
  %182 = sext i32 %135 to i64
  %183 = getelementptr inbounds float, ptr %33, i64 %182
  %184 = sext i32 %179 to i64
  %185 = getelementptr inbounds i32, ptr %34, i64 %184
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %24, ptr noundef nonnull %3, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %25, ptr noundef nonnull %137, ptr noundef nonnull %139, ptr noundef nonnull %10, ptr noundef nonnull %26, ptr noundef %11, ptr noundef %15, ptr noundef nonnull %181, ptr noundef nonnull %183, ptr noundef nonnull %185, ptr noundef nonnull %17) #6
  br i1 %.not, label %186, label %187

186:                                              ; preds = %176
  call void @sstein_(ptr noundef nonnull %3, ptr noundef nonnull %137, ptr noundef nonnull %139, ptr noundef nonnull %10, ptr noundef %11, ptr noundef %15, ptr noundef nonnull %181, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %183, ptr noundef nonnull %185, ptr noundef %16, ptr noundef nonnull %17) #6
  call void @sopmtr_(ptr noundef nonnull @.str.4, ptr noundef %2, ptr noundef nonnull @.str.3, ptr noundef nonnull %3, ptr noundef nonnull %10, ptr noundef %4, ptr noundef %14, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %183, ptr noundef nonnull %23) #6
  br label %187

187:                                              ; preds = %176, %186, %174
  br i1 %131, label %188, label %198

188:                                              ; preds = %187
  %189 = load i32, ptr %17, align 4, !tbaa !5
  %190 = icmp eq i32 %189, 0
  br i1 %190, label %191, label %193

191:                                              ; preds = %188
  %192 = load i32, ptr %10, align 4, !tbaa !5
  br label %195

193:                                              ; preds = %188
  %194 = add nsw i32 %189, -1
  br label %195

195:                                              ; preds = %193, %191
  %storemerge334 = phi i32 [ %194, %193 ], [ %192, %191 ]
  store i32 %storemerge334, ptr %21, align 4, !tbaa !5
  %196 = load float, ptr %22, align 4, !tbaa !9
  %197 = fdiv float 1.000000e+00, %196
  store float %197, ptr %20, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef %11, ptr noundef nonnull @c__1) #6
  br label %198

198:                                              ; preds = %195, %187
  br i1 %.not, label %199, label %.loopexit

199:                                              ; preds = %198
  %200 = load i32, ptr %10, align 4, !tbaa !5
  %201 = add nsw i32 %200, -1
  store i32 %201, ptr %19, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %32, i64 4
  %.not335368 = icmp slt i32 %200, 2
  br i1 %.not335368, label %.loopexit, label %.lr.ph371.preheader

.lr.ph371.preheader:                              ; preds = %199
  %202 = sext i32 %30 to i64
  br label %.lr.ph371

.lr.ph371:                                        ; preds = %.lr.ph371.preheader, %._crit_edge.thread
  %indvar = phi i32 [ 0, %.lr.ph371.preheader ], [ %indvar.next, %._crit_edge.thread ]
  %indvars.iv376 = phi i64 [ 1, %.lr.ph371.preheader ], [ %indvars.iv.next377, %._crit_edge.thread ]
  %indvars.iv = phi i64 [ 2, %.lr.ph371.preheader ], [ %indvars.iv.next, %._crit_edge.thread ]
  %203 = getelementptr inbounds float, ptr %29, i64 %indvars.iv376
  %204 = load float, ptr %203, align 4, !tbaa !9
  %205 = load i32, ptr %10, align 4, !tbaa !5
  %indvars.iv.next377 = add nuw nsw i64 %indvars.iv376, 1
  %206 = sext i32 %205 to i64
  %.not336360.not = icmp slt i64 %indvars.iv376, %206
  br i1 %.not336360.not, label %.lr.ph364.preheader, label %._crit_edge.thread

.lr.ph364.preheader:                              ; preds = %.lr.ph371
  %207 = xor i32 %indvar, -1
  %208 = add i32 %205, %207
  %reass.sub = sub i32 %205, %indvar
  %xtraiter = and i32 %208, 1
  %209 = icmp eq i32 %reass.sub, 2
  br i1 %209, label %._crit_edge.unr-lcssa, label %.lr.ph364.preheader.new

.lr.ph364.preheader.new:                          ; preds = %.lr.ph364.preheader
  %unroll_iter = and i32 %208, -2
  br label %.lr.ph364

.lr.ph364:                                        ; preds = %.lr.ph364, %.lr.ph364.preheader.new
  %indvars.iv373 = phi i64 [ %indvars.iv, %.lr.ph364.preheader.new ], [ %indvars.iv.next374.1, %.lr.ph364 ]
  %.0363 = phi float [ %204, %.lr.ph364.preheader.new ], [ %.1.1, %.lr.ph364 ]
  %.1304362 = phi i32 [ 0, %.lr.ph364.preheader.new ], [ %.2.1, %.lr.ph364 ]
  %niter = phi i32 [ 0, %.lr.ph364.preheader.new ], [ %niter.next.1, %.lr.ph364 ]
  %210 = getelementptr inbounds float, ptr %29, i64 %indvars.iv373
  %211 = load float, ptr %210, align 4, !tbaa !9
  %212 = fcmp olt float %211, %.0363
  %213 = trunc nuw i64 %indvars.iv373 to i32
  %.2 = select i1 %212, i32 %213, i32 %.1304362
  %.1 = select i1 %212, float %211, float %.0363
  %214 = getelementptr float, ptr %11, i64 %indvars.iv373
  %215 = load float, ptr %214, align 4, !tbaa !9
  %216 = fcmp olt float %215, %.1
  %217 = trunc i64 %indvars.iv373 to i32
  %218 = add i32 %217, 1
  %.2.1 = select i1 %216, i32 %218, i32 %.2
  %.1.1 = select i1 %216, float %215, float %.1
  %indvars.iv.next374.1 = add nuw nsw i64 %indvars.iv373, 2
  %niter.next.1 = add i32 %niter, 2
  %niter.ncmp.1 = icmp eq i32 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.unr-lcssa, label %.lr.ph364, !llvm.loop !12

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph364, %.lr.ph364.preheader
  %.2.lcssa.ph = phi i32 [ poison, %.lr.ph364.preheader ], [ %.2.1, %.lr.ph364 ]
  %.1.lcssa.ph = phi float [ poison, %.lr.ph364.preheader ], [ %.1.1, %.lr.ph364 ]
  %indvars.iv373.unr = phi i64 [ %indvars.iv, %.lr.ph364.preheader ], [ %indvars.iv.next374.1, %.lr.ph364 ]
  %.0363.unr = phi float [ %204, %.lr.ph364.preheader ], [ %.1.1, %.lr.ph364 ]
  %.1304362.unr = phi i32 [ 0, %.lr.ph364.preheader ], [ %.2.1, %.lr.ph364 ]
  %lcmp.mod.not = icmp eq i32 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph364.epil

.lr.ph364.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %219 = getelementptr inbounds float, ptr %29, i64 %indvars.iv373.unr
  %220 = load float, ptr %219, align 4, !tbaa !9
  %221 = fcmp olt float %220, %.0363.unr
  %222 = trunc nuw i64 %indvars.iv373.unr to i32
  %.2.epil = select i1 %221, i32 %222, i32 %.1304362.unr
  %.1.epil = select i1 %221, float %220, float %.0363.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph364.epil
  %.2.lcssa = phi i32 [ %.2.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.2.epil, %.lr.ph364.epil ]
  %.1.lcssa = phi float [ %.1.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1.epil, %.lr.ph364.epil ]
  %.not337 = icmp eq i32 %.2.lcssa, 0
  br i1 %.not337, label %._crit_edge.thread, label %223

223:                                              ; preds = %._crit_edge
  %224 = sext i32 %.2.lcssa to i64
  %225 = getelementptr inbounds i32, ptr %34, i64 %224
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = getelementptr inbounds float, ptr %29, i64 %224
  store float %204, ptr %227, align 4, !tbaa !9
  %228 = getelementptr inbounds i32, ptr %34, i64 %indvars.iv376
  %229 = load i32, ptr %228, align 4, !tbaa !5
  store i32 %229, ptr %225, align 4, !tbaa !5
  store float %.1.lcssa, ptr %203, align 4, !tbaa !9
  store i32 %226, ptr %228, align 4, !tbaa !5
  %230 = mul nsw i32 %.2.lcssa, %30
  %231 = sext i32 %230 to i64
  %gep = getelementptr float, ptr %invariant.gep, i64 %231
  %232 = mul nsw i64 %indvars.iv376, %202
  %gep367 = getelementptr float, ptr %invariant.gep, i64 %232
  call void @sswap_(ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep367, ptr noundef nonnull @c__1) #6
  %233 = load i32, ptr %17, align 4, !tbaa !5
  %.not338 = icmp eq i32 %233, 0
  br i1 %.not338, label %._crit_edge.thread, label %234

234:                                              ; preds = %223
  %235 = getelementptr inbounds i32, ptr %35, i64 %224
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = getelementptr inbounds i32, ptr %35, i64 %indvars.iv376
  %238 = load i32, ptr %237, align 4, !tbaa !5
  store i32 %238, ptr %235, align 4, !tbaa !5
  store i32 %236, ptr %237, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph371, %._crit_edge, %234, %223
  %239 = load i32, ptr %19, align 4, !tbaa !5
  %240 = sext i32 %239 to i64
  %.not335.not = icmp slt i64 %indvars.iv376, %240
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %indvar.next = add i32 %indvar, 1
  br i1 %.not335.not, label %.lr.ph371, label %.loopexit, !llvm.loop !14

.loopexit:                                        ; preds = %._crit_edge.thread, %199, %198, %89, %90, %.thread, %.thread345
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  ret void
}

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

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

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

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

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

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

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

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

declare void @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 void @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 void @sopmtr_(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 @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 i32 @llvm.umax.i32(i32, i32) #4

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

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

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

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


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