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

; 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 [7 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
@c__1 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @sstevx_(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 float, align 4
  %45 = alloca float, align 4
  %46 = alloca i32, align 4
  %47 = alloca float, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca float, align 4
  %52 = alloca [1 x i8], align 1
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca float, align 4
  %61 = alloca float, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca float, align 4
  %67 = alloca float, align 4
  %68 = alloca float, align 4
  %69 = alloca float, align 4
  %70 = alloca float, align 4
  %71 = 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 1, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #4
  %72 = load ptr, ptr %22, align 8, !tbaa !5
  %73 = getelementptr inbounds float, ptr %72, i32 -1
  store ptr %73, ptr %22, align 8, !tbaa !5
  %74 = load ptr, ptr %23, align 8, !tbaa !5
  %75 = getelementptr inbounds float, ptr %74, i32 -1
  store ptr %75, ptr %23, align 8, !tbaa !5
  %76 = load ptr, ptr %30, align 8, !tbaa !5
  %77 = getelementptr inbounds float, ptr %76, i32 -1
  store ptr %77, ptr %30, align 8, !tbaa !5
  %78 = load ptr, ptr %32, align 8, !tbaa !5
  %79 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %79, ptr %37, align 4, !tbaa !9
  %80 = load i32, ptr %37, align 4, !tbaa !9
  %81 = mul nsw i32 %80, 1
  %82 = add nsw i32 1, %81
  store i32 %82, ptr %38, align 4, !tbaa !9
  %83 = load i32, ptr %38, align 4, !tbaa !9
  %84 = load ptr, ptr %31, align 8, !tbaa !5
  %85 = sext i32 %83 to i64
  %86 = sub i64 0, %85
  %87 = getelementptr inbounds float, ptr %84, i64 %86
  store ptr %87, ptr %31, align 8, !tbaa !5
  %88 = load ptr, ptr %33, align 8, !tbaa !5
  %89 = getelementptr inbounds float, ptr %88, i32 -1
  store ptr %89, ptr %33, align 8, !tbaa !5
  %90 = load ptr, ptr %34, align 8, !tbaa !5
  %91 = getelementptr inbounds i32, ptr %90, i32 -1
  store ptr %91, ptr %34, align 8, !tbaa !5
  %92 = load ptr, ptr %35, align 8, !tbaa !5
  %93 = getelementptr inbounds i32, ptr %92, i32 -1
  store ptr %93, ptr %35, align 8, !tbaa !5
  %94 = load ptr, ptr %19, align 8, !tbaa !5
  %95 = call i32 @lsame_(ptr noundef %94, ptr noundef @.str)
  store i32 %95, ptr %53, align 4, !tbaa !9
  %96 = load ptr, ptr %20, align 8, !tbaa !5
  %97 = call i32 @lsame_(ptr noundef %96, ptr noundef @.str.1)
  store i32 %97, ptr %55, align 4, !tbaa !9
  %98 = load ptr, ptr %20, align 8, !tbaa !5
  %99 = call i32 @lsame_(ptr noundef %98, ptr noundef @.str)
  store i32 %99, ptr %59, align 4, !tbaa !9
  %100 = load ptr, ptr %20, align 8, !tbaa !5
  %101 = call i32 @lsame_(ptr noundef %100, ptr noundef @.str.2)
  store i32 %101, ptr %56, align 4, !tbaa !9
  %102 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 0, ptr %102, align 4, !tbaa !9
  %103 = load i32, ptr %53, align 4, !tbaa !9
  %104 = icmp ne i32 %103, 0
  br i1 %104, label %111, label %105

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

109:                                              ; preds = %105
  %110 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -1, ptr %110, align 4, !tbaa !9
  br label %197

111:                                              ; preds = %105, %18
  %112 = load i32, ptr %55, align 4, !tbaa !9
  %113 = icmp ne i32 %112, 0
  br i1 %113, label %122, label %114

114:                                              ; preds = %111
  %115 = load i32, ptr %59, align 4, !tbaa !9
  %116 = icmp ne i32 %115, 0
  br i1 %116, label %122, label %117

117:                                              ; preds = %114
  %118 = load i32, ptr %56, align 4, !tbaa !9
  %119 = icmp ne i32 %118, 0
  br i1 %119, label %122, label %120

120:                                              ; preds = %117
  %121 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -2, ptr %121, align 4, !tbaa !9
  br label %196

122:                                              ; preds = %117, %114, %111
  %123 = load ptr, ptr %21, align 8, !tbaa !5
  %124 = load i32, ptr %123, align 4, !tbaa !9
  %125 = icmp slt i32 %124, 0
  br i1 %125, label %126, label %128

126:                                              ; preds = %122
  %127 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -3, ptr %127, align 4, !tbaa !9
  br label %195

128:                                              ; preds = %122
  %129 = load i32, ptr %59, align 4, !tbaa !9
  %130 = icmp ne i32 %129, 0
  br i1 %130, label %131, label %144

131:                                              ; preds = %128
  %132 = load ptr, ptr %21, align 8, !tbaa !5
  %133 = load i32, ptr %132, align 4, !tbaa !9
  %134 = icmp sgt i32 %133, 0
  br i1 %134, label %135, label %143

135:                                              ; preds = %131
  %136 = load ptr, ptr %25, align 8, !tbaa !5
  %137 = load float, ptr %136, align 4, !tbaa !11
  %138 = load ptr, ptr %24, align 8, !tbaa !5
  %139 = load float, ptr %138, align 4, !tbaa !11
  %140 = fcmp ole float %137, %139
  br i1 %140, label %141, label %143

141:                                              ; preds = %135
  %142 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -7, ptr %142, align 4, !tbaa !9
  br label %143

143:                                              ; preds = %141, %135, %131
  br label %194

144:                                              ; preds = %128
  %145 = load i32, ptr %56, align 4, !tbaa !9
  %146 = icmp ne i32 %145, 0
  br i1 %146, label %147, label %193

147:                                              ; preds = %144
  %148 = load ptr, ptr %26, align 8, !tbaa !5
  %149 = load i32, ptr %148, align 4, !tbaa !9
  %150 = icmp slt i32 %149, 1
  br i1 %150, label %164, label %151

151:                                              ; preds = %147
  %152 = load ptr, ptr %26, align 8, !tbaa !5
  %153 = load i32, ptr %152, align 4, !tbaa !9
  %154 = load ptr, ptr %21, align 8, !tbaa !5
  %155 = load i32, ptr %154, align 4, !tbaa !9
  %156 = icmp sge i32 1, %155
  br i1 %156, label %157, label %158

157:                                              ; preds = %151
  br label %161

158:                                              ; preds = %151
  %159 = load ptr, ptr %21, align 8, !tbaa !5
  %160 = load i32, ptr %159, align 4, !tbaa !9
  br label %161

161:                                              ; preds = %158, %157
  %162 = phi i32 [ 1, %157 ], [ %160, %158 ]
  %163 = icmp sgt i32 %153, %162
  br i1 %163, label %164, label %166

164:                                              ; preds = %161, %147
  %165 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -8, ptr %165, align 4, !tbaa !9
  br label %192

166:                                              ; preds = %161
  %167 = load ptr, ptr %27, align 8, !tbaa !5
  %168 = load i32, ptr %167, align 4, !tbaa !9
  %169 = load ptr, ptr %21, align 8, !tbaa !5
  %170 = load i32, ptr %169, align 4, !tbaa !9
  %171 = load ptr, ptr %26, align 8, !tbaa !5
  %172 = load i32, ptr %171, align 4, !tbaa !9
  %173 = icmp sle i32 %170, %172
  br i1 %173, label %174, label %177

174:                                              ; preds = %166
  %175 = load ptr, ptr %21, align 8, !tbaa !5
  %176 = load i32, ptr %175, align 4, !tbaa !9
  br label %180

177:                                              ; preds = %166
  %178 = load ptr, ptr %26, align 8, !tbaa !5
  %179 = load i32, ptr %178, align 4, !tbaa !9
  br label %180

180:                                              ; preds = %177, %174
  %181 = phi i32 [ %176, %174 ], [ %179, %177 ]
  %182 = icmp slt i32 %168, %181
  br i1 %182, label %189, label %183

183:                                              ; preds = %180
  %184 = load ptr, ptr %27, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = load ptr, ptr %21, align 8, !tbaa !5
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = icmp sgt i32 %185, %187
  br i1 %188, label %189, label %191

189:                                              ; preds = %183, %180
  %190 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -9, ptr %190, align 4, !tbaa !9
  br label %191

191:                                              ; preds = %189, %183
  br label %192

192:                                              ; preds = %191, %164
  br label %193

193:                                              ; preds = %192, %144
  br label %194

194:                                              ; preds = %193, %143
  br label %195

195:                                              ; preds = %194, %126
  br label %196

196:                                              ; preds = %195, %120
  br label %197

197:                                              ; preds = %196, %109
  %198 = load ptr, ptr %36, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = icmp eq i32 %199, 0
  br i1 %200, label %201, label %217

201:                                              ; preds = %197
  %202 = load ptr, ptr %32, align 8, !tbaa !5
  %203 = load i32, ptr %202, align 4, !tbaa !9
  %204 = icmp slt i32 %203, 1
  br i1 %204, label %214, label %205

205:                                              ; preds = %201
  %206 = load i32, ptr %53, align 4, !tbaa !9
  %207 = icmp ne i32 %206, 0
  br i1 %207, label %208, label %216

208:                                              ; preds = %205
  %209 = load ptr, ptr %32, align 8, !tbaa !5
  %210 = load i32, ptr %209, align 4, !tbaa !9
  %211 = load ptr, ptr %21, align 8, !tbaa !5
  %212 = load i32, ptr %211, align 4, !tbaa !9
  %213 = icmp slt i32 %210, %212
  br i1 %213, label %214, label %216

214:                                              ; preds = %208, %201
  %215 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 -14, ptr %215, align 4, !tbaa !9
  br label %216

216:                                              ; preds = %214, %208, %205
  br label %217

217:                                              ; preds = %216, %197
  %218 = load ptr, ptr %36, align 8, !tbaa !5
  %219 = load i32, ptr %218, align 4, !tbaa !9
  %220 = icmp ne i32 %219, 0
  br i1 %220, label %221, label %226

221:                                              ; preds = %217
  %222 = load ptr, ptr %36, align 8, !tbaa !5
  %223 = load i32, ptr %222, align 4, !tbaa !9
  %224 = sub nsw i32 0, %223
  store i32 %224, ptr %39, align 4, !tbaa !9
  %225 = call i32 @xerbla_(ptr noundef @.str.4, ptr noundef %39, i32 noundef 6)
  store i32 1, ptr %71, align 4
  br label %705

226:                                              ; preds = %217
  %227 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 0, ptr %227, align 4, !tbaa !9
  %228 = load ptr, ptr %21, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = icmp eq i32 %229, 0
  br i1 %230, label %231, label %232

231:                                              ; preds = %226
  store i32 1, ptr %71, align 4
  br label %705

232:                                              ; preds = %226
  %233 = load ptr, ptr %21, align 8, !tbaa !5
  %234 = load i32, ptr %233, align 4, !tbaa !9
  %235 = icmp eq i32 %234, 1
  br i1 %235, label %236, label %281

236:                                              ; preds = %232
  %237 = load i32, ptr %55, align 4, !tbaa !9
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %242, label %239

239:                                              ; preds = %236
  %240 = load i32, ptr %56, align 4, !tbaa !9
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %249

242:                                              ; preds = %239, %236
  %243 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 1, ptr %243, align 4, !tbaa !9
  %244 = load ptr, ptr %22, align 8, !tbaa !5
  %245 = getelementptr inbounds float, ptr %244, i64 1
  %246 = load float, ptr %245, align 4, !tbaa !11
  %247 = load ptr, ptr %30, align 8, !tbaa !5
  %248 = getelementptr inbounds float, ptr %247, i64 1
  store float %246, ptr %248, align 4, !tbaa !11
  br label %271

249:                                              ; preds = %239
  %250 = load ptr, ptr %24, align 8, !tbaa !5
  %251 = load float, ptr %250, align 4, !tbaa !11
  %252 = load ptr, ptr %22, align 8, !tbaa !5
  %253 = getelementptr inbounds float, ptr %252, i64 1
  %254 = load float, ptr %253, align 4, !tbaa !11
  %255 = fcmp olt float %251, %254
  br i1 %255, label %256, label %270

256:                                              ; preds = %249
  %257 = load ptr, ptr %25, align 8, !tbaa !5
  %258 = load float, ptr %257, align 4, !tbaa !11
  %259 = load ptr, ptr %22, align 8, !tbaa !5
  %260 = getelementptr inbounds float, ptr %259, i64 1
  %261 = load float, ptr %260, align 4, !tbaa !11
  %262 = fcmp oge float %258, %261
  br i1 %262, label %263, label %270

263:                                              ; preds = %256
  %264 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 1, ptr %264, align 4, !tbaa !9
  %265 = load ptr, ptr %22, align 8, !tbaa !5
  %266 = getelementptr inbounds float, ptr %265, i64 1
  %267 = load float, ptr %266, align 4, !tbaa !11
  %268 = load ptr, ptr %30, align 8, !tbaa !5
  %269 = getelementptr inbounds float, ptr %268, i64 1
  store float %267, ptr %269, align 4, !tbaa !11
  br label %270

270:                                              ; preds = %263, %256, %249
  br label %271

271:                                              ; preds = %270, %242
  %272 = load i32, ptr %53, align 4, !tbaa !9
  %273 = icmp ne i32 %272, 0
  br i1 %273, label %274, label %280

274:                                              ; preds = %271
  %275 = load ptr, ptr %31, align 8, !tbaa !5
  %276 = load i32, ptr %37, align 4, !tbaa !9
  %277 = add nsw i32 %276, 1
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds float, ptr %275, i64 %278
  store float 1.000000e+00, ptr %279, align 4, !tbaa !11
  br label %280

280:                                              ; preds = %274, %271
  store i32 1, ptr %71, align 4
  br label %705

281:                                              ; preds = %232
  %282 = call float @slamch_(ptr noundef @.str.5)
  store float %282, ptr %60, align 4, !tbaa !11
  %283 = call float @slamch_(ptr noundef @.str.6)
  store float %283, ptr %67, align 4, !tbaa !11
  %284 = load float, ptr %60, align 4, !tbaa !11
  %285 = load float, ptr %67, align 4, !tbaa !11
  %286 = fdiv float %284, %285
  store float %286, ptr %66, align 4, !tbaa !11
  %287 = load float, ptr %66, align 4, !tbaa !11
  %288 = fdiv float 1.000000e+00, %287
  store float %288, ptr %61, align 4, !tbaa !11
  %289 = load float, ptr %66, align 4, !tbaa !11
  %290 = fpext float %289 to double
  %291 = call double @sqrt(double noundef %290) #4
  %292 = fptrunc double %291 to float
  store float %292, ptr %44, align 4, !tbaa !11
  %293 = load float, ptr %61, align 4, !tbaa !11
  %294 = fpext float %293 to double
  %295 = call double @sqrt(double noundef %294) #4
  %296 = fptrunc double %295 to float
  store float %296, ptr %41, align 4, !tbaa !11
  %297 = load float, ptr %60, align 4, !tbaa !11
  %298 = fpext float %297 to double
  %299 = call double @sqrt(double noundef %298) #4
  %300 = call double @sqrt(double noundef %299) #4
  %301 = fdiv double 1.000000e+00, %300
  %302 = fptrunc double %301 to float
  store float %302, ptr %42, align 4, !tbaa !11
  %303 = load float, ptr %41, align 4, !tbaa !11
  %304 = load float, ptr %42, align 4, !tbaa !11
  %305 = fcmp ole float %303, %304
  br i1 %305, label %306, label %308

306:                                              ; preds = %281
  %307 = load float, ptr %41, align 4, !tbaa !11
  br label %310

308:                                              ; preds = %281
  %309 = load float, ptr %42, align 4, !tbaa !11
  br label %310

310:                                              ; preds = %308, %306
  %311 = phi float [ %307, %306 ], [ %309, %308 ]
  store float %311, ptr %45, align 4, !tbaa !11
  store i32 0, ptr %57, align 4, !tbaa !9
  %312 = load i32, ptr %59, align 4, !tbaa !9
  %313 = icmp ne i32 %312, 0
  br i1 %313, label %314, label %319

314:                                              ; preds = %310
  %315 = load ptr, ptr %24, align 8, !tbaa !5
  %316 = load float, ptr %315, align 4, !tbaa !11
  store float %316, ptr %68, align 4, !tbaa !11
  %317 = load ptr, ptr %25, align 8, !tbaa !5
  %318 = load float, ptr %317, align 4, !tbaa !11
  store float %318, ptr %69, align 4, !tbaa !11
  br label %320

319:                                              ; preds = %310
  store float 0.000000e+00, ptr %68, align 4, !tbaa !11
  store float 0.000000e+00, ptr %69, align 4, !tbaa !11
  br label %320

320:                                              ; preds = %319, %314
  %321 = load ptr, ptr %21, align 8, !tbaa !5
  %322 = load ptr, ptr %22, align 8, !tbaa !5
  %323 = getelementptr inbounds float, ptr %322, i64 1
  %324 = load ptr, ptr %23, align 8, !tbaa !5
  %325 = getelementptr inbounds float, ptr %324, i64 1
  %326 = call float @slanst_(ptr noundef @.str.7, ptr noundef %321, ptr noundef %323, ptr noundef %325)
  store float %326, ptr %47, align 4, !tbaa !11
  %327 = load float, ptr %47, align 4, !tbaa !11
  %328 = fcmp ogt float %327, 0.000000e+00
  br i1 %328, label %329, label %337

329:                                              ; preds = %320
  %330 = load float, ptr %47, align 4, !tbaa !11
  %331 = load float, ptr %44, align 4, !tbaa !11
  %332 = fcmp olt float %330, %331
  br i1 %332, label %333, label %337

333:                                              ; preds = %329
  store i32 1, ptr %57, align 4, !tbaa !9
  %334 = load float, ptr %44, align 4, !tbaa !11
  %335 = load float, ptr %47, align 4, !tbaa !11
  %336 = fdiv float %334, %335
  store float %336, ptr %51, align 4, !tbaa !11
  br label %346

337:                                              ; preds = %329, %320
  %338 = load float, ptr %47, align 4, !tbaa !11
  %339 = load float, ptr %45, align 4, !tbaa !11
  %340 = fcmp ogt float %338, %339
  br i1 %340, label %341, label %345

341:                                              ; preds = %337
  store i32 1, ptr %57, align 4, !tbaa !9
  %342 = load float, ptr %45, align 4, !tbaa !11
  %343 = load float, ptr %47, align 4, !tbaa !11
  %344 = fdiv float %342, %343
  store float %344, ptr %51, align 4, !tbaa !11
  br label %345

345:                                              ; preds = %341, %337
  br label %346

346:                                              ; preds = %345, %333
  %347 = load i32, ptr %57, align 4, !tbaa !9
  %348 = icmp eq i32 %347, 1
  br i1 %348, label %349, label %370

349:                                              ; preds = %346
  %350 = load ptr, ptr %21, align 8, !tbaa !5
  %351 = load ptr, ptr %22, align 8, !tbaa !5
  %352 = getelementptr inbounds float, ptr %351, i64 1
  call void @sscal_(ptr noundef %350, ptr noundef %51, ptr noundef %352, ptr noundef @c__1)
  %353 = load ptr, ptr %21, align 8, !tbaa !5
  %354 = load i32, ptr %353, align 4, !tbaa !9
  %355 = sub nsw i32 %354, 1
  store i32 %355, ptr %39, align 4, !tbaa !9
  %356 = load ptr, ptr %23, align 8, !tbaa !5
  %357 = getelementptr inbounds float, ptr %356, i64 1
  call void @sscal_(ptr noundef %39, ptr noundef %51, ptr noundef %357, ptr noundef @c__1)
  %358 = load i32, ptr %59, align 4, !tbaa !9
  %359 = icmp ne i32 %358, 0
  br i1 %359, label %360, label %369

360:                                              ; preds = %349
  %361 = load ptr, ptr %24, align 8, !tbaa !5
  %362 = load float, ptr %361, align 4, !tbaa !11
  %363 = load float, ptr %51, align 4, !tbaa !11
  %364 = fmul float %362, %363
  store float %364, ptr %68, align 4, !tbaa !11
  %365 = load ptr, ptr %25, align 8, !tbaa !5
  %366 = load float, ptr %365, align 4, !tbaa !11
  %367 = load float, ptr %51, align 4, !tbaa !11
  %368 = fmul float %366, %367
  store float %368, ptr %69, align 4, !tbaa !11
  br label %369

369:                                              ; preds = %360, %349
  br label %370

370:                                              ; preds = %369, %346
  store i32 0, ptr %46, align 4, !tbaa !9
  %371 = load i32, ptr %56, align 4, !tbaa !9
  %372 = icmp ne i32 %371, 0
  br i1 %372, label %373, label %385

373:                                              ; preds = %370
  %374 = load ptr, ptr %26, align 8, !tbaa !5
  %375 = load i32, ptr %374, align 4, !tbaa !9
  %376 = icmp eq i32 %375, 1
  br i1 %376, label %377, label %384

377:                                              ; preds = %373
  %378 = load ptr, ptr %27, align 8, !tbaa !5
  %379 = load i32, ptr %378, align 4, !tbaa !9
  %380 = load ptr, ptr %21, align 8, !tbaa !5
  %381 = load i32, ptr %380, align 4, !tbaa !9
  %382 = icmp eq i32 %379, %381
  br i1 %382, label %383, label %384

383:                                              ; preds = %377
  store i32 1, ptr %46, align 4, !tbaa !9
  br label %384

384:                                              ; preds = %383, %377, %373
  br label %385

385:                                              ; preds = %384, %370
  %386 = load i32, ptr %55, align 4, !tbaa !9
  %387 = icmp ne i32 %386, 0
  br i1 %387, label %391, label %388

388:                                              ; preds = %385
  %389 = load i32, ptr %46, align 4, !tbaa !9
  %390 = icmp ne i32 %389, 0
  br i1 %390, label %391, label %466

391:                                              ; preds = %388, %385
  %392 = load ptr, ptr %28, align 8, !tbaa !5
  %393 = load float, ptr %392, align 4, !tbaa !11
  %394 = fcmp ole float %393, 0.000000e+00
  br i1 %394, label %395, label %466

395:                                              ; preds = %391
  %396 = load ptr, ptr %21, align 8, !tbaa !5
  %397 = load ptr, ptr %22, align 8, !tbaa !5
  %398 = getelementptr inbounds float, ptr %397, i64 1
  %399 = load ptr, ptr %30, align 8, !tbaa !5
  %400 = getelementptr inbounds float, ptr %399, i64 1
  call void @scopy_(ptr noundef %396, ptr noundef %398, ptr noundef @c__1, ptr noundef %400, ptr noundef @c__1)
  %401 = load ptr, ptr %21, align 8, !tbaa !5
  %402 = load i32, ptr %401, align 4, !tbaa !9
  %403 = sub nsw i32 %402, 1
  store i32 %403, ptr %39, align 4, !tbaa !9
  %404 = load ptr, ptr %23, align 8, !tbaa !5
  %405 = getelementptr inbounds float, ptr %404, i64 1
  %406 = load ptr, ptr %33, align 8, !tbaa !5
  %407 = getelementptr inbounds float, ptr %406, i64 1
  call void @scopy_(ptr noundef %39, ptr noundef %405, ptr noundef @c__1, ptr noundef %407, ptr noundef @c__1)
  %408 = load ptr, ptr %21, align 8, !tbaa !5
  %409 = load i32, ptr %408, align 4, !tbaa !9
  %410 = add nsw i32 %409, 1
  store i32 %410, ptr %64, align 4, !tbaa !9
  %411 = load i32, ptr %53, align 4, !tbaa !9
  %412 = icmp ne i32 %411, 0
  br i1 %412, label %420, label %413

413:                                              ; preds = %395
  %414 = load ptr, ptr %21, align 8, !tbaa !5
  %415 = load ptr, ptr %30, align 8, !tbaa !5
  %416 = getelementptr inbounds float, ptr %415, i64 1
  %417 = load ptr, ptr %33, align 8, !tbaa !5
  %418 = getelementptr inbounds float, ptr %417, i64 1
  %419 = load ptr, ptr %36, align 8, !tbaa !5
  call void @ssterf_(ptr noundef %414, ptr noundef %416, ptr noundef %418, ptr noundef %419)
  br label %456

420:                                              ; preds = %395
  %421 = load ptr, ptr %21, align 8, !tbaa !5
  %422 = load ptr, ptr %30, align 8, !tbaa !5
  %423 = getelementptr inbounds float, ptr %422, i64 1
  %424 = load ptr, ptr %33, align 8, !tbaa !5
  %425 = getelementptr inbounds float, ptr %424, i64 1
  %426 = load ptr, ptr %31, align 8, !tbaa !5
  %427 = load i32, ptr %38, align 4, !tbaa !9
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds float, ptr %426, i64 %428
  %430 = load ptr, ptr %32, align 8, !tbaa !5
  %431 = load ptr, ptr %33, align 8, !tbaa !5
  %432 = load i32, ptr %64, align 4, !tbaa !9
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds float, ptr %431, i64 %433
  %435 = load ptr, ptr %36, align 8, !tbaa !5
  call void @ssteqr_(ptr noundef @.str.2, ptr noundef %421, ptr noundef %423, ptr noundef %425, ptr noundef %429, ptr noundef %430, ptr noundef %434, ptr noundef %435)
  %436 = load ptr, ptr %36, align 8, !tbaa !5
  %437 = load i32, ptr %436, align 4, !tbaa !9
  %438 = icmp eq i32 %437, 0
  br i1 %438, label %439, label %455

439:                                              ; preds = %420
  %440 = load ptr, ptr %21, align 8, !tbaa !5
  %441 = load i32, ptr %440, align 4, !tbaa !9
  store i32 %441, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %442

442:                                              ; preds = %451, %439
  %443 = load i32, ptr %49, align 4, !tbaa !9
  %444 = load i32, ptr %39, align 4, !tbaa !9
  %445 = icmp sle i32 %443, %444
  br i1 %445, label %446, label %454

446:                                              ; preds = %442
  %447 = load ptr, ptr %35, align 8, !tbaa !5
  %448 = load i32, ptr %49, align 4, !tbaa !9
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds i32, ptr %447, i64 %449
  store i32 0, ptr %450, align 4, !tbaa !9
  br label %451

451:                                              ; preds = %446
  %452 = load i32, ptr %49, align 4, !tbaa !9
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr %49, align 4, !tbaa !9
  br label %442, !llvm.loop !13

454:                                              ; preds = %442
  br label %455

455:                                              ; preds = %454, %420
  br label %456

456:                                              ; preds = %455, %413
  %457 = load ptr, ptr %36, align 8, !tbaa !5
  %458 = load i32, ptr %457, align 4, !tbaa !9
  %459 = icmp eq i32 %458, 0
  br i1 %459, label %460, label %464

460:                                              ; preds = %456
  %461 = load ptr, ptr %21, align 8, !tbaa !5
  %462 = load i32, ptr %461, align 4, !tbaa !9
  %463 = load ptr, ptr %29, align 8, !tbaa !5
  store i32 %462, ptr %463, align 4, !tbaa !9
  br label %548

464:                                              ; preds = %456
  %465 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 0, ptr %465, align 4, !tbaa !9
  br label %466

466:                                              ; preds = %464, %391, %388
  %467 = load i32, ptr %53, align 4, !tbaa !9
  %468 = icmp ne i32 %467, 0
  br i1 %468, label %469, label %471

469:                                              ; preds = %466
  %470 = getelementptr inbounds [1 x i8], ptr %52, i64 0, i64 0
  store i8 66, ptr %470, align 1, !tbaa !15
  br label %473

471:                                              ; preds = %466
  %472 = getelementptr inbounds [1 x i8], ptr %52, i64 0, i64 0
  store i8 69, ptr %472, align 1, !tbaa !15
  br label %473

473:                                              ; preds = %471, %469
  store i32 1, ptr %64, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  %474 = load i32, ptr %58, align 4, !tbaa !9
  %475 = load ptr, ptr %21, align 8, !tbaa !5
  %476 = load i32, ptr %475, align 4, !tbaa !9
  %477 = add nsw i32 %474, %476
  store i32 %477, ptr %62, align 4, !tbaa !9
  %478 = load i32, ptr %62, align 4, !tbaa !9
  %479 = load ptr, ptr %21, align 8, !tbaa !5
  %480 = load i32, ptr %479, align 4, !tbaa !9
  %481 = add nsw i32 %478, %480
  store i32 %481, ptr %63, align 4, !tbaa !9
  %482 = load ptr, ptr %20, align 8, !tbaa !5
  %483 = getelementptr inbounds [1 x i8], ptr %52, i64 0, i64 0
  %484 = load ptr, ptr %21, align 8, !tbaa !5
  %485 = load ptr, ptr %26, align 8, !tbaa !5
  %486 = load ptr, ptr %27, align 8, !tbaa !5
  %487 = load ptr, ptr %28, align 8, !tbaa !5
  %488 = load ptr, ptr %22, align 8, !tbaa !5
  %489 = getelementptr inbounds float, ptr %488, i64 1
  %490 = load ptr, ptr %23, align 8, !tbaa !5
  %491 = getelementptr inbounds float, ptr %490, i64 1
  %492 = load ptr, ptr %29, align 8, !tbaa !5
  %493 = load ptr, ptr %30, align 8, !tbaa !5
  %494 = getelementptr inbounds float, ptr %493, i64 1
  %495 = load ptr, ptr %34, align 8, !tbaa !5
  %496 = load i32, ptr %58, align 4, !tbaa !9
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds i32, ptr %495, i64 %497
  %499 = load ptr, ptr %34, align 8, !tbaa !5
  %500 = load i32, ptr %62, align 4, !tbaa !9
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds i32, ptr %499, i64 %501
  %503 = load ptr, ptr %33, align 8, !tbaa !5
  %504 = load i32, ptr %64, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %503, i64 %505
  %507 = load ptr, ptr %34, align 8, !tbaa !5
  %508 = load i32, ptr %63, align 4, !tbaa !9
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds i32, ptr %507, i64 %509
  %511 = load ptr, ptr %36, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %482, ptr noundef %483, ptr noundef %484, ptr noundef %68, ptr noundef %69, ptr noundef %485, ptr noundef %486, ptr noundef %487, ptr noundef %489, ptr noundef %491, ptr noundef %492, ptr noundef %65, ptr noundef %494, ptr noundef %498, ptr noundef %502, ptr noundef %506, ptr noundef %510, ptr noundef %511)
  %512 = load i32, ptr %53, align 4, !tbaa !9
  %513 = icmp ne i32 %512, 0
  br i1 %513, label %514, label %547

514:                                              ; preds = %473
  %515 = load ptr, ptr %21, align 8, !tbaa !5
  %516 = load ptr, ptr %22, align 8, !tbaa !5
  %517 = getelementptr inbounds float, ptr %516, i64 1
  %518 = load ptr, ptr %23, align 8, !tbaa !5
  %519 = getelementptr inbounds float, ptr %518, i64 1
  %520 = load ptr, ptr %29, align 8, !tbaa !5
  %521 = load ptr, ptr %30, align 8, !tbaa !5
  %522 = getelementptr inbounds float, ptr %521, i64 1
  %523 = load ptr, ptr %34, align 8, !tbaa !5
  %524 = load i32, ptr %58, align 4, !tbaa !9
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds i32, ptr %523, i64 %525
  %527 = load ptr, ptr %34, align 8, !tbaa !5
  %528 = load i32, ptr %62, align 4, !tbaa !9
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds i32, ptr %527, i64 %529
  %531 = load ptr, ptr %31, align 8, !tbaa !5
  %532 = load i32, ptr %38, align 4, !tbaa !9
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds float, ptr %531, i64 %533
  %535 = load ptr, ptr %32, align 8, !tbaa !5
  %536 = load ptr, ptr %33, align 8, !tbaa !5
  %537 = load i32, ptr %64, align 4, !tbaa !9
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds float, ptr %536, i64 %538
  %540 = load ptr, ptr %34, align 8, !tbaa !5
  %541 = load i32, ptr %63, align 4, !tbaa !9
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds i32, ptr %540, i64 %542
  %544 = load ptr, ptr %35, align 8, !tbaa !5
  %545 = getelementptr inbounds i32, ptr %544, i64 1
  %546 = load ptr, ptr %36, align 8, !tbaa !5
  call void @sstein_(ptr noundef %515, ptr noundef %517, ptr noundef %519, ptr noundef %520, ptr noundef %522, ptr noundef %526, ptr noundef %530, ptr noundef %534, ptr noundef %535, ptr noundef %539, ptr noundef %543, ptr noundef %545, ptr noundef %546)
  br label %547

547:                                              ; preds = %514, %473
  br label %548

548:                                              ; preds = %547, %460
  %549 = load i32, ptr %57, align 4, !tbaa !9
  %550 = icmp eq i32 %549, 1
  br i1 %550, label %551, label %567

551:                                              ; preds = %548
  %552 = load ptr, ptr %36, align 8, !tbaa !5
  %553 = load i32, ptr %552, align 4, !tbaa !9
  %554 = icmp eq i32 %553, 0
  br i1 %554, label %555, label %558

555:                                              ; preds = %551
  %556 = load ptr, ptr %29, align 8, !tbaa !5
  %557 = load i32, ptr %556, align 4, !tbaa !9
  store i32 %557, ptr %43, align 4, !tbaa !9
  br label %562

558:                                              ; preds = %551
  %559 = load ptr, ptr %36, align 8, !tbaa !5
  %560 = load i32, ptr %559, align 4, !tbaa !9
  %561 = sub nsw i32 %560, 1
  store i32 %561, ptr %43, align 4, !tbaa !9
  br label %562

562:                                              ; preds = %558, %555
  %563 = load float, ptr %51, align 4, !tbaa !11
  %564 = fdiv float 1.000000e+00, %563
  store float %564, ptr %41, align 4, !tbaa !11
  %565 = load ptr, ptr %30, align 8, !tbaa !5
  %566 = getelementptr inbounds float, ptr %565, i64 1
  call void @sscal_(ptr noundef %43, ptr noundef %41, ptr noundef %566, ptr noundef @c__1)
  br label %567

567:                                              ; preds = %562, %548
  %568 = load i32, ptr %53, align 4, !tbaa !9
  %569 = icmp ne i32 %568, 0
  br i1 %569, label %570, label %704

570:                                              ; preds = %567
  %571 = load ptr, ptr %29, align 8, !tbaa !5
  %572 = load i32, ptr %571, align 4, !tbaa !9
  %573 = sub nsw i32 %572, 1
  store i32 %573, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %574

574:                                              ; preds = %700, %570
  %575 = load i32, ptr %50, align 4, !tbaa !9
  %576 = load i32, ptr %39, align 4, !tbaa !9
  %577 = icmp sle i32 %575, %576
  br i1 %577, label %578, label %703

578:                                              ; preds = %574
  store i32 0, ptr %49, align 4, !tbaa !9
  %579 = load ptr, ptr %30, align 8, !tbaa !5
  %580 = load i32, ptr %50, align 4, !tbaa !9
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds float, ptr %579, i64 %581
  %583 = load float, ptr %582, align 4, !tbaa !11
  store float %583, ptr %70, align 4, !tbaa !11
  %584 = load ptr, ptr %29, align 8, !tbaa !5
  %585 = load i32, ptr %584, align 4, !tbaa !9
  store i32 %585, ptr %40, align 4, !tbaa !9
  %586 = load i32, ptr %50, align 4, !tbaa !9
  %587 = add nsw i32 %586, 1
  store i32 %587, ptr %54, align 4, !tbaa !9
  br label %588

588:                                              ; preds = %608, %578
  %589 = load i32, ptr %54, align 4, !tbaa !9
  %590 = load i32, ptr %40, align 4, !tbaa !9
  %591 = icmp sle i32 %589, %590
  br i1 %591, label %592, label %611

592:                                              ; preds = %588
  %593 = load ptr, ptr %30, align 8, !tbaa !5
  %594 = load i32, ptr %54, align 4, !tbaa !9
  %595 = sext i32 %594 to i64
  %596 = getelementptr inbounds float, ptr %593, i64 %595
  %597 = load float, ptr %596, align 4, !tbaa !11
  %598 = load float, ptr %70, align 4, !tbaa !11
  %599 = fcmp olt float %597, %598
  br i1 %599, label %600, label %607

600:                                              ; preds = %592
  %601 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %601, ptr %49, align 4, !tbaa !9
  %602 = load ptr, ptr %30, align 8, !tbaa !5
  %603 = load i32, ptr %54, align 4, !tbaa !9
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds float, ptr %602, i64 %604
  %606 = load float, ptr %605, align 4, !tbaa !11
  store float %606, ptr %70, align 4, !tbaa !11
  br label %607

607:                                              ; preds = %600, %592
  br label %608

608:                                              ; preds = %607
  %609 = load i32, ptr %54, align 4, !tbaa !9
  %610 = add nsw i32 %609, 1
  store i32 %610, ptr %54, align 4, !tbaa !9
  br label %588, !llvm.loop !16

611:                                              ; preds = %588
  %612 = load i32, ptr %49, align 4, !tbaa !9
  %613 = icmp ne i32 %612, 0
  br i1 %613, label %614, label %699

614:                                              ; preds = %611
  %615 = load ptr, ptr %34, align 8, !tbaa !5
  %616 = load i32, ptr %58, align 4, !tbaa !9
  %617 = load i32, ptr %49, align 4, !tbaa !9
  %618 = add nsw i32 %616, %617
  %619 = sub nsw i32 %618, 1
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds i32, ptr %615, i64 %620
  %622 = load i32, ptr %621, align 4, !tbaa !9
  store i32 %622, ptr %48, align 4, !tbaa !9
  %623 = load ptr, ptr %30, align 8, !tbaa !5
  %624 = load i32, ptr %50, align 4, !tbaa !9
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds float, ptr %623, i64 %625
  %627 = load float, ptr %626, align 4, !tbaa !11
  %628 = load ptr, ptr %30, align 8, !tbaa !5
  %629 = load i32, ptr %49, align 4, !tbaa !9
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds float, ptr %628, i64 %630
  store float %627, ptr %631, align 4, !tbaa !11
  %632 = load ptr, ptr %34, align 8, !tbaa !5
  %633 = load i32, ptr %58, align 4, !tbaa !9
  %634 = load i32, ptr %50, align 4, !tbaa !9
  %635 = add nsw i32 %633, %634
  %636 = sub nsw i32 %635, 1
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds i32, ptr %632, i64 %637
  %639 = load i32, ptr %638, align 4, !tbaa !9
  %640 = load ptr, ptr %34, align 8, !tbaa !5
  %641 = load i32, ptr %58, align 4, !tbaa !9
  %642 = load i32, ptr %49, align 4, !tbaa !9
  %643 = add nsw i32 %641, %642
  %644 = sub nsw i32 %643, 1
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds i32, ptr %640, i64 %645
  store i32 %639, ptr %646, align 4, !tbaa !9
  %647 = load float, ptr %70, align 4, !tbaa !11
  %648 = load ptr, ptr %30, align 8, !tbaa !5
  %649 = load i32, ptr %50, align 4, !tbaa !9
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds float, ptr %648, i64 %650
  store float %647, ptr %651, align 4, !tbaa !11
  %652 = load i32, ptr %48, align 4, !tbaa !9
  %653 = load ptr, ptr %34, align 8, !tbaa !5
  %654 = load i32, ptr %58, align 4, !tbaa !9
  %655 = load i32, ptr %50, align 4, !tbaa !9
  %656 = add nsw i32 %654, %655
  %657 = sub nsw i32 %656, 1
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds i32, ptr %653, i64 %658
  store i32 %652, ptr %659, align 4, !tbaa !9
  %660 = load ptr, ptr %21, align 8, !tbaa !5
  %661 = load ptr, ptr %31, align 8, !tbaa !5
  %662 = load i32, ptr %49, align 4, !tbaa !9
  %663 = load i32, ptr %37, align 4, !tbaa !9
  %664 = mul nsw i32 %662, %663
  %665 = add nsw i32 %664, 1
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds float, ptr %661, i64 %666
  %668 = load ptr, ptr %31, align 8, !tbaa !5
  %669 = load i32, ptr %50, align 4, !tbaa !9
  %670 = load i32, ptr %37, align 4, !tbaa !9
  %671 = mul nsw i32 %669, %670
  %672 = add nsw i32 %671, 1
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds float, ptr %668, i64 %673
  call void @sswap_(ptr noundef %660, ptr noundef %667, ptr noundef @c__1, ptr noundef %674, ptr noundef @c__1)
  %675 = load ptr, ptr %36, align 8, !tbaa !5
  %676 = load i32, ptr %675, align 4, !tbaa !9
  %677 = icmp ne i32 %676, 0
  br i1 %677, label %678, label %698

678:                                              ; preds = %614
  %679 = load ptr, ptr %35, align 8, !tbaa !5
  %680 = load i32, ptr %49, align 4, !tbaa !9
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds i32, ptr %679, i64 %681
  %683 = load i32, ptr %682, align 4, !tbaa !9
  store i32 %683, ptr %48, align 4, !tbaa !9
  %684 = load ptr, ptr %35, align 8, !tbaa !5
  %685 = load i32, ptr %50, align 4, !tbaa !9
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds i32, ptr %684, i64 %686
  %688 = load i32, ptr %687, align 4, !tbaa !9
  %689 = load ptr, ptr %35, align 8, !tbaa !5
  %690 = load i32, ptr %49, align 4, !tbaa !9
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds i32, ptr %689, i64 %691
  store i32 %688, ptr %692, align 4, !tbaa !9
  %693 = load i32, ptr %48, align 4, !tbaa !9
  %694 = load ptr, ptr %35, align 8, !tbaa !5
  %695 = load i32, ptr %50, align 4, !tbaa !9
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds i32, ptr %694, i64 %696
  store i32 %693, ptr %697, align 4, !tbaa !9
  br label %698

698:                                              ; preds = %678, %614
  br label %699

699:                                              ; preds = %698, %611
  br label %700

700:                                              ; preds = %699
  %701 = load i32, ptr %50, align 4, !tbaa !9
  %702 = add nsw i32 %701, 1
  store i32 %702, ptr %50, align 4, !tbaa !9
  br label %574, !llvm.loop !17

703:                                              ; preds = %574
  br label %704

704:                                              ; preds = %703, %567
  store i32 1, ptr %71, align 4
  br label %705

705:                                              ; preds = %704, %280, %231, %221
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 1, 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 @slanst_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @sscal_(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 @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 @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 [7 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
@c__1 = external hidden global i32, align 4

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

38:                                               ; preds = %18
  %39 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #6
  %.not266 = icmp eq i32 %39, 0
  br i1 %.not266, label %.thread286.sink.split, label %40

40:                                               ; preds = %38, %18
  %41 = icmp ne i32 %35, 0
  %42 = icmp ne i32 %36, 0
  %or.cond = select i1 %41, i1 true, i1 %42
  %43 = icmp ne i32 %37, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %43
  br i1 %or.cond3, label %44, label %.thread286.sink.split

44:                                               ; preds = %40
  %45 = load i32, ptr %2, align 4, !tbaa !5
  %46 = icmp slt i32 %45, 0
  br i1 %46, label %.thread286.sink.split, label %47

47:                                               ; preds = %44
  br i1 %42, label %48, label %53

48:                                               ; preds = %47
  %.not268 = icmp eq i32 %45, 0
  br i1 %.not268, label %62, label %49

49:                                               ; preds = %48
  %50 = load float, ptr %6, align 4, !tbaa !9
  %51 = load float, ptr %5, align 4, !tbaa !9
  %52 = fcmp ugt float %50, %51
  br i1 %52, label %62, label %.thread286.sink.split

53:                                               ; preds = %47
  br i1 %43, label %54, label %62

54:                                               ; preds = %53
  %55 = load i32, ptr %7, align 4, !tbaa !5
  %56 = icmp slt i32 %55, 1
  %spec.select = tail call i32 @llvm.umax.i32(i32 %45, i32 1)
  %57 = icmp ugt i32 %55, %spec.select
  %or.cond297 = or i1 %56, %57
  br i1 %or.cond297, label %.thread286.sink.split, label %58

58:                                               ; preds = %54
  %59 = load i32, ptr %8, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %45, i32 %55)
  %60 = icmp slt i32 %59, %.
  %61 = icmp ugt i32 %59, %45
  %or.cond295 = or i1 %60, %61
  br i1 %or.cond295, label %.thread286.sink.split, label %62

62:                                               ; preds = %58, %49, %48, %53
  %.pr = load i32, ptr %17, align 4, !tbaa !5
  %63 = icmp eq i32 %.pr, 0
  br i1 %63, label %64, label %.thread286

64:                                               ; preds = %62
  %65 = load i32, ptr %13, align 4, !tbaa !5
  %66 = icmp slt i32 %65, 1
  %67 = icmp ult i32 %65, %45
  %or.cond323 = and i1 %.not, %67
  %or.cond326 = or i1 %66, %or.cond323
  br i1 %or.cond326, label %.thread286.sink.split, label %.thread

.thread286.sink.split:                            ; preds = %64, %58, %54, %49, %44, %40, %38
  %.sink324 = phi i32 [ -1, %38 ], [ -2, %40 ], [ -3, %44 ], [ -7, %49 ], [ -8, %54 ], [ -9, %58 ], [ -14, %64 ]
  store i32 %.sink324, ptr %17, align 4, !tbaa !5
  br label %.thread286

.thread286:                                       ; preds = %.thread286.sink.split, %62
  %68 = phi i32 [ %.pr, %62 ], [ %.sink324, %.thread286.sink.split ]
  %69 = sub nsw i32 0, %68
  store i32 %69, ptr %19, align 4, !tbaa !5
  %70 = call i32 @xerbla_(ptr noundef nonnull @.str.4, ptr noundef nonnull %19, i32 noundef 6) #6
  br label %.loopexit

.thread:                                          ; preds = %64
  store i32 0, ptr %10, align 4, !tbaa !5
  %71 = load i32, ptr %2, align 4, !tbaa !5
  switch i32 %71, label %85 [
    i32 0, label %.loopexit
    i32 1, label %72
  ]

72:                                               ; preds = %.thread
  %or.cond5 = select i1 %41, i1 true, i1 %43
  br i1 %or.cond5, label %73, label %75

73:                                               ; preds = %72
  store i32 1, ptr %10, align 4, !tbaa !5
  %74 = load float, ptr %3, align 4, !tbaa !9
  br label %.sink.split

75:                                               ; preds = %72
  %76 = load float, ptr %5, align 4, !tbaa !9
  %77 = load float, ptr %3, align 4, !tbaa !9
  %78 = fcmp olt float %76, %77
  br i1 %78, label %79, label %83

79:                                               ; preds = %75
  %80 = load float, ptr %6, align 4, !tbaa !9
  %81 = fcmp ult float %80, %77
  br i1 %81, label %83, label %82

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

.sink.split:                                      ; preds = %73, %82
  %.sink325 = phi float [ %77, %82 ], [ %74, %73 ]
  store float %.sink325, ptr %11, align 4, !tbaa !9
  br label %83

83:                                               ; preds = %.sink.split, %75, %79
  br i1 %.not, label %84, label %.loopexit

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

85:                                               ; preds = %.thread
  %86 = tail call float @slamch_(ptr noundef nonnull @.str.5) #6
  %87 = tail call float @slamch_(ptr noundef nonnull @.str.6) #6
  %88 = fdiv float %86, %87
  %89 = fdiv float 1.000000e+00, %88
  %sqrtf = tail call float @sqrtf(float noundef %88) #3
  %sqrtf270 = tail call float @sqrtf(float noundef %89) #3
  store float %sqrtf270, ptr %20, align 4, !tbaa !9
  %90 = fpext float %86 to double
  %91 = tail call double @sqrt(double noundef %90) #6
  %92 = tail call double @sqrt(double noundef %91) #6
  %93 = fdiv double 1.000000e+00, %92
  %94 = fptrunc double %93 to float
  %95 = fcmp ole float %sqrtf270, %94
  %96 = select i1 %95, float %sqrtf270, float %94
  %.not271 = icmp eq i32 %36, 0
  br i1 %.not271, label %100, label %97

97:                                               ; preds = %85
  %98 = load float, ptr %5, align 4, !tbaa !9
  %99 = load float, ptr %6, align 4, !tbaa !9
  br label %100

100:                                              ; preds = %85, %97
  %.sink = phi float [ %98, %97 ], [ 0.000000e+00, %85 ]
  %storemerge = phi float [ %99, %97 ], [ 0.000000e+00, %85 ]
  store float %.sink, ptr %25, align 4
  store float %storemerge, ptr %26, align 4, !tbaa !9
  %101 = tail call float @slanst_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4) #6
  %102 = fcmp ogt float %101, 0.000000e+00
  %103 = fcmp olt float %101, %sqrtf
  %or.cond280 = select i1 %102, i1 %103, i1 false
  br i1 %or.cond280, label %106, label %104

104:                                              ; preds = %100
  %105 = fcmp ogt float %101, %96
  br i1 %105, label %106, label %115

106:                                              ; preds = %104, %100
  %.pn = phi float [ %sqrtf, %100 ], [ %96, %104 ]
  %storemerge296 = fdiv float %.pn, %101
  store float %storemerge296, ptr %22, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef %3, ptr noundef nonnull @c__1) #6
  %107 = load i32, ptr %2, align 4, !tbaa !5
  %108 = add nsw i32 %107, -1
  store i32 %108, 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
  br i1 %.not271, label %115, label %109

109:                                              ; preds = %106
  %110 = load float, ptr %5, align 4, !tbaa !9
  %111 = load float, ptr %22, align 4, !tbaa !9
  %112 = fmul float %110, %111
  store float %112, ptr %25, align 4, !tbaa !9
  %113 = load float, ptr %6, align 4, !tbaa !9
  %114 = fmul float %111, %113
  store float %114, ptr %26, align 4, !tbaa !9
  br label %115

115:                                              ; preds = %104, %106, %109
  %116 = phi i1 [ true, %106 ], [ true, %109 ], [ false, %104 ]
  %.not272 = icmp eq i32 %37, 0
  br i1 %.not272, label %124, label %117

117:                                              ; preds = %115
  %118 = load i32, ptr %7, align 4, !tbaa !5
  %119 = icmp eq i32 %118, 1
  br i1 %119, label %120, label %124

120:                                              ; preds = %117
  %121 = load i32, ptr %8, align 4, !tbaa !5
  %122 = load i32, ptr %2, align 4, !tbaa !5
  %123 = icmp eq i32 %121, %122
  br label %124

124:                                              ; preds = %120, %117, %115
  %125 = phi i1 [ false, %117 ], [ false, %115 ], [ %123, %120 ]
  %or.cond7 = or i1 %41, %125
  br i1 %or.cond7, label %126, label %147

126:                                              ; preds = %124
  %127 = load float, ptr %9, align 4, !tbaa !9
  %128 = fcmp ugt float %127, 0.000000e+00
  br i1 %128, label %147, label %129

129:                                              ; preds = %126
  call void @scopy_(ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull @c__1) #6
  %130 = load i32, ptr %2, align 4, !tbaa !5
  %131 = add nsw i32 %130, -1
  store i32 %131, ptr %19, align 4, !tbaa !5
  call void @scopy_(ptr noundef nonnull %19, ptr noundef %4, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #6
  br i1 %.not, label %133, label %132

132:                                              ; preds = %129
  call void @ssterf_(ptr noundef nonnull %2, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %17) #6
  br label %.loopexit298

133:                                              ; preds = %129
  %134 = load i32, ptr %2, align 4, !tbaa !5
  %135 = sext i32 %134 to i64
  %136 = getelementptr float, ptr %31, i64 %135
  %137 = getelementptr i8, ptr %136, i64 4
  call void @ssteqr_(ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef %11, ptr noundef %14, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %137, ptr noundef nonnull %17) #6
  %138 = load i32, ptr %17, align 4, !tbaa !5
  %139 = icmp eq i32 %138, 0
  br i1 %139, label %140, label %.thread292

140:                                              ; preds = %133
  %141 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %141, ptr %19, align 4, !tbaa !5
  %.not273299 = icmp slt i32 %141, 1
  br i1 %.not273299, label %.loopexit298, label %.lr.ph.preheader

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

.loopexit298:                                     ; preds = %.lr.ph.preheader, %140, %132
  %.pr291 = load i32, ptr %17, align 4, !tbaa !5
  %144 = icmp eq i32 %.pr291, 0
  br i1 %144, label %145, label %.thread292

145:                                              ; preds = %.loopexit298
  %146 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %146, ptr %10, align 4, !tbaa !5
  br label %156

.thread292:                                       ; preds = %133, %.loopexit298
  store i32 0, ptr %17, align 4, !tbaa !5
  br label %147

147:                                              ; preds = %124, %.thread292, %126
  %.282 = select i1 %.not, i8 66, i8 69
  store i8 %.282, ptr %23, align 1, !tbaa !11
  %148 = load i32, ptr %2, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  %150 = add nsw i32 %149, %148
  %151 = sext i32 %149 to i64
  %152 = getelementptr inbounds i32, ptr %32, i64 %151
  %153 = sext i32 %150 to i64
  %154 = getelementptr inbounds i32, ptr %32, i64 %153
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %10, ptr noundef nonnull %24, ptr noundef %11, ptr noundef %15, ptr noundef nonnull %152, ptr noundef %14, ptr noundef nonnull %154, ptr noundef nonnull %17) #6
  br i1 %.not, label %155, label %156

155:                                              ; preds = %147
  call void @sstein_(ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %10, ptr noundef %11, ptr noundef %15, ptr noundef nonnull %152, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %154, ptr noundef %16, ptr noundef nonnull %17) #6
  br label %156

156:                                              ; preds = %147, %155, %145
  br i1 %116, label %157, label %167

157:                                              ; preds = %156
  %158 = load i32, ptr %17, align 4, !tbaa !5
  %159 = icmp eq i32 %158, 0
  br i1 %159, label %160, label %162

160:                                              ; preds = %157
  %161 = load i32, ptr %10, align 4, !tbaa !5
  br label %164

162:                                              ; preds = %157
  %163 = add nsw i32 %158, -1
  br label %164

164:                                              ; preds = %162, %160
  %storemerge275 = phi i32 [ %163, %162 ], [ %161, %160 ]
  store i32 %storemerge275, ptr %21, align 4, !tbaa !5
  %165 = load float, ptr %22, align 4, !tbaa !9
  %166 = fdiv float 1.000000e+00, %165
  store float %166, 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 %167

167:                                              ; preds = %164, %156
  br i1 %.not, label %168, label %.loopexit

168:                                              ; preds = %167
  %169 = load i32, ptr %10, align 4, !tbaa !5
  %170 = add nsw i32 %169, -1
  store i32 %170, ptr %19, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %30, i64 4
  %.not276309 = icmp slt i32 %169, 2
  br i1 %.not276309, label %.loopexit, label %.lr.ph312.preheader

.lr.ph312.preheader:                              ; preds = %168
  %171 = sext i32 %28 to i64
  br label %.lr.ph312

.lr.ph312:                                        ; preds = %.lr.ph312.preheader, %._crit_edge.thread
  %indvar = phi i32 [ 0, %.lr.ph312.preheader ], [ %indvar.next, %._crit_edge.thread ]
  %indvars.iv317 = phi i64 [ 1, %.lr.ph312.preheader ], [ %indvars.iv.next318, %._crit_edge.thread ]
  %indvars.iv = phi i64 [ 2, %.lr.ph312.preheader ], [ %indvars.iv.next, %._crit_edge.thread ]
  %172 = getelementptr inbounds float, ptr %27, i64 %indvars.iv317
  %173 = load float, ptr %172, align 4, !tbaa !9
  %174 = load i32, ptr %10, align 4, !tbaa !5
  %indvars.iv.next318 = add nuw nsw i64 %indvars.iv317, 1
  %175 = sext i32 %174 to i64
  %.not277301.not = icmp slt i64 %indvars.iv317, %175
  br i1 %.not277301.not, label %.lr.ph305.preheader, label %._crit_edge.thread

.lr.ph305.preheader:                              ; preds = %.lr.ph312
  %176 = xor i32 %indvar, -1
  %177 = add i32 %174, %176
  %reass.sub = sub i32 %174, %indvar
  %xtraiter = and i32 %177, 1
  %178 = icmp eq i32 %reass.sub, 2
  br i1 %178, label %._crit_edge.unr-lcssa, label %.lr.ph305.preheader.new

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

.lr.ph305:                                        ; preds = %.lr.ph305, %.lr.ph305.preheader.new
  %indvars.iv314 = phi i64 [ %indvars.iv, %.lr.ph305.preheader.new ], [ %indvars.iv.next315.1, %.lr.ph305 ]
  %.0304 = phi float [ %173, %.lr.ph305.preheader.new ], [ %.1.1, %.lr.ph305 ]
  %.1249303 = phi i32 [ 0, %.lr.ph305.preheader.new ], [ %.2.1, %.lr.ph305 ]
  %niter = phi i32 [ 0, %.lr.ph305.preheader.new ], [ %niter.next.1, %.lr.ph305 ]
  %179 = getelementptr inbounds float, ptr %27, i64 %indvars.iv314
  %180 = load float, ptr %179, align 4, !tbaa !9
  %181 = fcmp olt float %180, %.0304
  %182 = trunc nuw i64 %indvars.iv314 to i32
  %.2 = select i1 %181, i32 %182, i32 %.1249303
  %.1 = select i1 %181, float %180, float %.0304
  %183 = getelementptr float, ptr %11, i64 %indvars.iv314
  %184 = load float, ptr %183, align 4, !tbaa !9
  %185 = fcmp olt float %184, %.1
  %186 = trunc i64 %indvars.iv314 to i32
  %187 = add i32 %186, 1
  %.2.1 = select i1 %185, i32 %187, i32 %.2
  %.1.1 = select i1 %185, float %184, float %.1
  %indvars.iv.next315.1 = add nuw nsw i64 %indvars.iv314, 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.ph305, !llvm.loop !12

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph305, %.lr.ph305.preheader
  %.2.lcssa.ph = phi i32 [ poison, %.lr.ph305.preheader ], [ %.2.1, %.lr.ph305 ]
  %.1.lcssa.ph = phi float [ poison, %.lr.ph305.preheader ], [ %.1.1, %.lr.ph305 ]
  %indvars.iv314.unr = phi i64 [ %indvars.iv, %.lr.ph305.preheader ], [ %indvars.iv.next315.1, %.lr.ph305 ]
  %.0304.unr = phi float [ %173, %.lr.ph305.preheader ], [ %.1.1, %.lr.ph305 ]
  %.1249303.unr = phi i32 [ 0, %.lr.ph305.preheader ], [ %.2.1, %.lr.ph305 ]
  %lcmp.mod.not = icmp eq i32 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph305.epil

.lr.ph305.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %188 = getelementptr inbounds float, ptr %27, i64 %indvars.iv314.unr
  %189 = load float, ptr %188, align 4, !tbaa !9
  %190 = fcmp olt float %189, %.0304.unr
  %191 = trunc nuw i64 %indvars.iv314.unr to i32
  %.2.epil = select i1 %190, i32 %191, i32 %.1249303.unr
  %.1.epil = select i1 %190, float %189, float %.0304.unr
  br label %._crit_edge

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

192:                                              ; preds = %._crit_edge
  %193 = sext i32 %.2.lcssa to i64
  %194 = getelementptr inbounds i32, ptr %32, i64 %193
  %195 = load i32, ptr %194, align 4, !tbaa !5
  %196 = getelementptr inbounds float, ptr %27, i64 %193
  store float %173, ptr %196, align 4, !tbaa !9
  %197 = getelementptr inbounds i32, ptr %32, i64 %indvars.iv317
  %198 = load i32, ptr %197, align 4, !tbaa !5
  store i32 %198, ptr %194, align 4, !tbaa !5
  store float %.1.lcssa, ptr %172, align 4, !tbaa !9
  store i32 %195, ptr %197, align 4, !tbaa !5
  %199 = mul nsw i32 %.2.lcssa, %28
  %200 = sext i32 %199 to i64
  %gep = getelementptr float, ptr %invariant.gep, i64 %200
  %201 = mul nsw i64 %indvars.iv317, %171
  %gep308 = getelementptr float, ptr %invariant.gep, i64 %201
  call void @sswap_(ptr noundef nonnull %2, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep308, ptr noundef nonnull @c__1) #6
  %202 = load i32, ptr %17, align 4, !tbaa !5
  %.not279 = icmp eq i32 %202, 0
  br i1 %.not279, label %._crit_edge.thread, label %203

203:                                              ; preds = %192
  %204 = getelementptr inbounds i32, ptr %33, i64 %193
  %205 = load i32, ptr %204, align 4, !tbaa !5
  %206 = getelementptr inbounds i32, ptr %33, i64 %indvars.iv317
  %207 = load i32, ptr %206, align 4, !tbaa !5
  store i32 %207, ptr %204, align 4, !tbaa !5
  store i32 %205, ptr %206, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph312, %._crit_edge, %203, %192
  %208 = load i32, ptr %19, align 4, !tbaa !5
  %209 = sext i32 %208 to i64
  %.not276.not = icmp slt i64 %indvars.iv317, %209
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %indvar.next = add i32 %indvar, 1
  br i1 %.not276.not, label %.lr.ph312, label %.loopexit, !llvm.loop !14

.loopexit:                                        ; preds = %._crit_edge.thread, %168, %167, %83, %84, %.thread, %.thread286
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  ret void
}

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

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

declare i32 @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 @slanst_(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 @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 @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 @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