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

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

@c__10 = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__4 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

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

114:                                              ; preds = %20
  %115 = load ptr, ptr %39, align 8, !tbaa !5
  %116 = load i32, ptr %115, align 4, !tbaa !9
  %117 = icmp eq i32 %116, -1
  br label %118

118:                                              ; preds = %114, %20
  %119 = phi i1 [ true, %20 ], [ %117, %114 ]
  %120 = zext i1 %119 to i32
  store i32 %120, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %43, align 4, !tbaa !9
  %121 = load ptr, ptr %23, align 8, !tbaa !5
  %122 = load i32, ptr %121, align 4, !tbaa !9
  %123 = mul nsw i32 %122, 20
  store i32 %123, ptr %44, align 4, !tbaa !9
  %124 = load i32, ptr %43, align 4, !tbaa !9
  %125 = load i32, ptr %44, align 4, !tbaa !9
  %126 = icmp sge i32 %124, %125
  br i1 %126, label %127, label %129

127:                                              ; preds = %118
  %128 = load i32, ptr %43, align 4, !tbaa !9
  br label %131

129:                                              ; preds = %118
  %130 = load i32, ptr %44, align 4, !tbaa !9
  br label %131

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

139:                                              ; preds = %131
  %140 = load i32, ptr %43, align 4, !tbaa !9
  br label %143

141:                                              ; preds = %131
  %142 = load i32, ptr %44, align 4, !tbaa !9
  br label %143

143:                                              ; preds = %141, %139
  %144 = phi i32 [ %140, %139 ], [ %142, %141 ]
  store i32 %144, ptr %70, align 4, !tbaa !9
  %145 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 0, ptr %145, align 4, !tbaa !9
  %146 = load i32, ptr %57, align 4, !tbaa !9
  %147 = icmp ne i32 %146, 0
  br i1 %147, label %154, label %148

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

200:                                              ; preds = %194
  br label %204

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

297:                                              ; preds = %293
  %298 = load ptr, ptr %40, align 8, !tbaa !5
  %299 = load i32, ptr %298, align 4, !tbaa !9
  %300 = sub nsw i32 0, %299
  store i32 %300, ptr %43, align 4, !tbaa !9
  %301 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %43, i32 noundef 6)
  store i32 1, ptr %79, align 4
  br label %763

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

305:                                              ; preds = %302
  store i32 1, ptr %79, align 4
  br label %763

306:                                              ; preds = %302
  br label %307

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

312:                                              ; preds = %307
  store i32 1, ptr %79, align 4
  br label %763

313:                                              ; preds = %307
  %314 = load ptr, ptr %23, align 8, !tbaa !5
  %315 = load i32, ptr %314, align 4, !tbaa !9
  %316 = icmp eq i32 %315, 1
  br i1 %316, label %317, label %362

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

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

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

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

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

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

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

352:                                              ; preds = %351, %323
  %353 = load i32, ptr %57, align 4, !tbaa !9
  %354 = icmp ne i32 %353, 0
  br i1 %354, label %355, label %361

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

361:                                              ; preds = %355, %352
  store i32 1, ptr %79, align 4
  br label %763

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

387:                                              ; preds = %362
  %388 = load float, ptr %45, align 4, !tbaa !11
  br label %391

389:                                              ; preds = %362
  %390 = load float, ptr %46, align 4, !tbaa !11
  br label %391

391:                                              ; preds = %389, %387
  %392 = phi float [ %388, %387 ], [ %390, %389 ]
  store float %392, ptr %49, align 4, !tbaa !11
  store i32 0, ptr %61, align 4, !tbaa !9
  %393 = load i32, ptr %65, align 4, !tbaa !9
  %394 = icmp ne i32 %393, 0
  br i1 %394, label %395, label %400

395:                                              ; preds = %391
  %396 = load ptr, ptr %26, align 8, !tbaa !5
  %397 = load float, ptr %396, align 4, !tbaa !11
  store float %397, ptr %76, align 4, !tbaa !11
  %398 = load ptr, ptr %27, align 8, !tbaa !5
  %399 = load float, ptr %398, align 4, !tbaa !11
  store float %399, ptr %77, align 4, !tbaa !11
  br label %400

400:                                              ; preds = %395, %391
  %401 = load ptr, ptr %23, align 8, !tbaa !5
  %402 = load ptr, ptr %24, align 8, !tbaa !5
  %403 = getelementptr inbounds float, ptr %402, i64 1
  %404 = load ptr, ptr %25, align 8, !tbaa !5
  %405 = getelementptr inbounds float, ptr %404, i64 1
  %406 = call float @slanst_(ptr noundef @.str.7, ptr noundef %401, ptr noundef %403, ptr noundef %405)
  store float %406, ptr %51, align 4, !tbaa !11
  %407 = load float, ptr %51, align 4, !tbaa !11
  %408 = fcmp ogt float %407, 0.000000e+00
  br i1 %408, label %409, label %417

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

413:                                              ; preds = %409
  store i32 1, ptr %61, align 4, !tbaa !9
  %414 = load float, ptr %48, align 4, !tbaa !11
  %415 = load float, ptr %51, align 4, !tbaa !11
  %416 = fdiv float %414, %415
  store float %416, ptr %54, align 4, !tbaa !11
  br label %426

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

421:                                              ; preds = %417
  store i32 1, ptr %61, align 4, !tbaa !9
  %422 = load float, ptr %49, align 4, !tbaa !11
  %423 = load float, ptr %51, align 4, !tbaa !11
  %424 = fdiv float %422, %423
  store float %424, ptr %54, align 4, !tbaa !11
  br label %425

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

426:                                              ; preds = %425, %413
  %427 = load i32, ptr %61, align 4, !tbaa !9
  %428 = icmp eq i32 %427, 1
  br i1 %428, label %429, label %450

429:                                              ; preds = %426
  %430 = load ptr, ptr %23, align 8, !tbaa !5
  %431 = load ptr, ptr %24, align 8, !tbaa !5
  %432 = getelementptr inbounds float, ptr %431, i64 1
  call void @sscal_(ptr noundef %430, ptr noundef %54, ptr noundef %432, ptr noundef @c__1)
  %433 = load ptr, ptr %23, align 8, !tbaa !5
  %434 = load i32, ptr %433, align 4, !tbaa !9
  %435 = sub nsw i32 %434, 1
  store i32 %435, ptr %43, align 4, !tbaa !9
  %436 = load ptr, ptr %25, align 8, !tbaa !5
  %437 = getelementptr inbounds float, ptr %436, i64 1
  call void @sscal_(ptr noundef %43, ptr noundef %54, ptr noundef %437, ptr noundef @c__1)
  %438 = load i32, ptr %65, align 4, !tbaa !9
  %439 = icmp ne i32 %438, 0
  br i1 %439, label %440, label %449

440:                                              ; preds = %429
  %441 = load ptr, ptr %26, align 8, !tbaa !5
  %442 = load float, ptr %441, align 4, !tbaa !11
  %443 = load float, ptr %54, align 4, !tbaa !11
  %444 = fmul float %442, %443
  store float %444, ptr %76, align 4, !tbaa !11
  %445 = load ptr, ptr %27, align 8, !tbaa !5
  %446 = load float, ptr %445, align 4, !tbaa !11
  %447 = load float, ptr %54, align 4, !tbaa !11
  %448 = fmul float %446, %447
  store float %448, ptr %77, align 4, !tbaa !11
  br label %449

449:                                              ; preds = %440, %429
  br label %450

450:                                              ; preds = %449, %426
  store i32 1, ptr %63, align 4, !tbaa !9
  %451 = load i32, ptr %63, align 4, !tbaa !9
  %452 = load ptr, ptr %23, align 8, !tbaa !5
  %453 = load i32, ptr %452, align 4, !tbaa !9
  %454 = add nsw i32 %451, %453
  store i32 %454, ptr %68, align 4, !tbaa !9
  %455 = load i32, ptr %68, align 4, !tbaa !9
  %456 = load ptr, ptr %23, align 8, !tbaa !5
  %457 = load i32, ptr %456, align 4, !tbaa !9
  %458 = add nsw i32 %455, %457
  store i32 %458, ptr %64, align 4, !tbaa !9
  %459 = load i32, ptr %68, align 4, !tbaa !9
  %460 = load ptr, ptr %23, align 8, !tbaa !5
  %461 = load i32, ptr %460, align 4, !tbaa !9
  %462 = add nsw i32 %459, %461
  store i32 %462, ptr %69, align 4, !tbaa !9
  store i32 0, ptr %50, align 4, !tbaa !9
  %463 = load i32, ptr %60, align 4, !tbaa !9
  %464 = icmp ne i32 %463, 0
  br i1 %464, label %465, label %477

465:                                              ; preds = %450
  %466 = load ptr, ptr %28, align 8, !tbaa !5
  %467 = load i32, ptr %466, align 4, !tbaa !9
  %468 = icmp eq i32 %467, 1
  br i1 %468, label %469, label %476

469:                                              ; preds = %465
  %470 = load ptr, ptr %29, align 8, !tbaa !5
  %471 = load i32, ptr %470, align 4, !tbaa !9
  %472 = load ptr, ptr %23, align 8, !tbaa !5
  %473 = load i32, ptr %472, align 4, !tbaa !9
  %474 = icmp eq i32 %471, %473
  br i1 %474, label %475, label %476

475:                                              ; preds = %469
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %476

476:                                              ; preds = %475, %469, %465
  br label %477

477:                                              ; preds = %476, %450
  %478 = load i32, ptr %59, align 4, !tbaa !9
  %479 = icmp ne i32 %478, 0
  br i1 %479, label %483, label %480

480:                                              ; preds = %477
  %481 = load i32, ptr %50, align 4, !tbaa !9
  %482 = icmp ne i32 %481, 0
  br i1 %482, label %483, label %582

483:                                              ; preds = %480, %477
  %484 = load i32, ptr %62, align 4, !tbaa !9
  %485 = icmp eq i32 %484, 1
  br i1 %485, label %486, label %582

486:                                              ; preds = %483
  %487 = load ptr, ptr %23, align 8, !tbaa !5
  %488 = load i32, ptr %487, align 4, !tbaa !9
  %489 = sub nsw i32 %488, 1
  store i32 %489, ptr %43, align 4, !tbaa !9
  %490 = load ptr, ptr %25, align 8, !tbaa !5
  %491 = getelementptr inbounds float, ptr %490, i64 1
  %492 = load ptr, ptr %36, align 8, !tbaa !5
  %493 = getelementptr inbounds float, ptr %492, i64 1
  call void @scopy_(ptr noundef %43, ptr noundef %491, ptr noundef @c__1, ptr noundef %493, ptr noundef @c__1)
  %494 = load i32, ptr %57, align 4, !tbaa !9
  %495 = icmp ne i32 %494, 0
  br i1 %495, label %508, label %496

496:                                              ; preds = %486
  %497 = load ptr, ptr %23, align 8, !tbaa !5
  %498 = load ptr, ptr %24, align 8, !tbaa !5
  %499 = getelementptr inbounds float, ptr %498, i64 1
  %500 = load ptr, ptr %32, align 8, !tbaa !5
  %501 = getelementptr inbounds float, ptr %500, i64 1
  call void @scopy_(ptr noundef %497, ptr noundef %499, ptr noundef @c__1, ptr noundef %501, ptr noundef @c__1)
  %502 = load ptr, ptr %23, align 8, !tbaa !5
  %503 = load ptr, ptr %32, align 8, !tbaa !5
  %504 = getelementptr inbounds float, ptr %503, i64 1
  %505 = load ptr, ptr %36, align 8, !tbaa !5
  %506 = getelementptr inbounds float, ptr %505, i64 1
  %507 = load ptr, ptr %40, align 8, !tbaa !5
  call void @ssterf_(ptr noundef %502, ptr noundef %504, ptr noundef %506, ptr noundef %507)
  br label %572

508:                                              ; preds = %486
  %509 = load ptr, ptr %23, align 8, !tbaa !5
  %510 = load ptr, ptr %24, align 8, !tbaa !5
  %511 = getelementptr inbounds float, ptr %510, i64 1
  %512 = load ptr, ptr %36, align 8, !tbaa !5
  %513 = load ptr, ptr %23, align 8, !tbaa !5
  %514 = load i32, ptr %513, align 4, !tbaa !9
  %515 = add nsw i32 %514, 1
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds float, ptr %512, i64 %516
  call void @scopy_(ptr noundef %509, ptr noundef %511, ptr noundef @c__1, ptr noundef %517, ptr noundef @c__1)
  %518 = load ptr, ptr %30, align 8, !tbaa !5
  %519 = load float, ptr %518, align 4, !tbaa !11
  %520 = load ptr, ptr %23, align 8, !tbaa !5
  %521 = load i32, ptr %520, align 4, !tbaa !9
  %522 = sitofp i32 %521 to float
  %523 = fmul float %522, 2.000000e+00
  %524 = load float, ptr %75, align 4, !tbaa !11
  %525 = fmul float %523, %524
  %526 = fcmp ole float %519, %525
  br i1 %526, label %527, label %528

527:                                              ; preds = %508
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %529

528:                                              ; preds = %508
  store i32 0, ptr %71, align 4, !tbaa !9
  br label %529

529:                                              ; preds = %528, %527
  %530 = load ptr, ptr %37, align 8, !tbaa !5
  %531 = load i32, ptr %530, align 4, !tbaa !9
  %532 = load ptr, ptr %23, align 8, !tbaa !5
  %533 = load i32, ptr %532, align 4, !tbaa !9
  %534 = shl i32 %533, 1
  %535 = sub nsw i32 %531, %534
  store i32 %535, ptr %43, align 4, !tbaa !9
  %536 = load ptr, ptr %21, align 8, !tbaa !5
  %537 = load ptr, ptr %23, align 8, !tbaa !5
  %538 = load ptr, ptr %36, align 8, !tbaa !5
  %539 = load ptr, ptr %23, align 8, !tbaa !5
  %540 = load i32, ptr %539, align 4, !tbaa !9
  %541 = add nsw i32 %540, 1
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds float, ptr %538, i64 %542
  %544 = load ptr, ptr %36, align 8, !tbaa !5
  %545 = getelementptr inbounds float, ptr %544, i64 1
  %546 = load ptr, ptr %26, align 8, !tbaa !5
  %547 = load ptr, ptr %27, align 8, !tbaa !5
  %548 = load ptr, ptr %28, align 8, !tbaa !5
  %549 = load ptr, ptr %29, align 8, !tbaa !5
  %550 = load ptr, ptr %31, align 8, !tbaa !5
  %551 = load ptr, ptr %32, align 8, !tbaa !5
  %552 = getelementptr inbounds float, ptr %551, i64 1
  %553 = load ptr, ptr %33, align 8, !tbaa !5
  %554 = load i32, ptr %42, align 4, !tbaa !9
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds float, ptr %553, i64 %555
  %557 = load ptr, ptr %34, align 8, !tbaa !5
  %558 = load ptr, ptr %23, align 8, !tbaa !5
  %559 = load ptr, ptr %35, align 8, !tbaa !5
  %560 = getelementptr inbounds i32, ptr %559, i64 1
  %561 = load ptr, ptr %36, align 8, !tbaa !5
  %562 = load ptr, ptr %23, align 8, !tbaa !5
  %563 = load i32, ptr %562, align 4, !tbaa !9
  %564 = shl i32 %563, 1
  %565 = add nsw i32 %564, 1
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds float, ptr %561, i64 %566
  %568 = load ptr, ptr %38, align 8, !tbaa !5
  %569 = getelementptr inbounds i32, ptr %568, i64 1
  %570 = load ptr, ptr %39, align 8, !tbaa !5
  %571 = load ptr, ptr %40, align 8, !tbaa !5
  call void @sstemr_(ptr noundef %536, ptr noundef @.str.3, ptr noundef %537, ptr noundef %543, ptr noundef %545, ptr noundef %546, ptr noundef %547, ptr noundef %548, ptr noundef %549, ptr noundef %550, ptr noundef %552, ptr noundef %556, ptr noundef %557, ptr noundef %558, ptr noundef %560, ptr noundef %71, ptr noundef %567, ptr noundef %43, ptr noundef %569, ptr noundef %570, ptr noundef %571)
  br label %572

572:                                              ; preds = %529, %496
  %573 = load ptr, ptr %40, align 8, !tbaa !5
  %574 = load i32, ptr %573, align 4, !tbaa !9
  %575 = icmp eq i32 %574, 0
  br i1 %575, label %576, label %580

576:                                              ; preds = %572
  %577 = load ptr, ptr %23, align 8, !tbaa !5
  %578 = load i32, ptr %577, align 4, !tbaa !9
  %579 = load ptr, ptr %31, align 8, !tbaa !5
  store i32 %578, ptr %579, align 4, !tbaa !9
  br label %654

580:                                              ; preds = %572
  %581 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 0, ptr %581, align 4, !tbaa !9
  br label %582

582:                                              ; preds = %580, %483, %480
  %583 = load i32, ptr %57, align 4, !tbaa !9
  %584 = icmp ne i32 %583, 0
  br i1 %584, label %585, label %587

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

587:                                              ; preds = %582
  %588 = getelementptr inbounds [1 x i8], ptr %55, i64 0, i64 0
  store i8 69, ptr %588, align 1, !tbaa !13
  br label %589

589:                                              ; preds = %587, %585
  %590 = load ptr, ptr %22, align 8, !tbaa !5
  %591 = getelementptr inbounds [1 x i8], ptr %55, i64 0, i64 0
  %592 = load ptr, ptr %23, align 8, !tbaa !5
  %593 = load ptr, ptr %28, align 8, !tbaa !5
  %594 = load ptr, ptr %29, align 8, !tbaa !5
  %595 = load ptr, ptr %30, align 8, !tbaa !5
  %596 = load ptr, ptr %24, align 8, !tbaa !5
  %597 = getelementptr inbounds float, ptr %596, i64 1
  %598 = load ptr, ptr %25, align 8, !tbaa !5
  %599 = getelementptr inbounds float, ptr %598, i64 1
  %600 = load ptr, ptr %31, align 8, !tbaa !5
  %601 = load ptr, ptr %32, align 8, !tbaa !5
  %602 = getelementptr inbounds float, ptr %601, i64 1
  %603 = load ptr, ptr %38, align 8, !tbaa !5
  %604 = load i32, ptr %63, align 4, !tbaa !9
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds i32, ptr %603, i64 %605
  %607 = load ptr, ptr %38, align 8, !tbaa !5
  %608 = load i32, ptr %68, 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
  %612 = getelementptr inbounds float, ptr %611, i64 1
  %613 = load ptr, ptr %38, align 8, !tbaa !5
  %614 = load i32, ptr %69, align 4, !tbaa !9
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds i32, ptr %613, i64 %615
  %617 = load ptr, ptr %40, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %590, ptr noundef %591, ptr noundef %592, ptr noundef %76, ptr noundef %77, ptr noundef %593, ptr noundef %594, ptr noundef %595, ptr noundef %597, ptr noundef %599, ptr noundef %600, ptr noundef %72, ptr noundef %602, ptr noundef %606, ptr noundef %610, ptr noundef %612, ptr noundef %616, ptr noundef %617)
  %618 = load i32, ptr %57, align 4, !tbaa !9
  %619 = icmp ne i32 %618, 0
  br i1 %619, label %620, label %653

620:                                              ; preds = %589
  %621 = load ptr, ptr %23, align 8, !tbaa !5
  %622 = load ptr, ptr %24, align 8, !tbaa !5
  %623 = getelementptr inbounds float, ptr %622, i64 1
  %624 = load ptr, ptr %25, align 8, !tbaa !5
  %625 = getelementptr inbounds float, ptr %624, i64 1
  %626 = load ptr, ptr %31, align 8, !tbaa !5
  %627 = load ptr, ptr %32, align 8, !tbaa !5
  %628 = getelementptr inbounds float, ptr %627, i64 1
  %629 = load ptr, ptr %38, align 8, !tbaa !5
  %630 = load i32, ptr %63, align 4, !tbaa !9
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds i32, ptr %629, i64 %631
  %633 = load ptr, ptr %38, align 8, !tbaa !5
  %634 = load i32, ptr %68, align 4, !tbaa !9
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds i32, ptr %633, i64 %635
  %637 = load ptr, ptr %33, align 8, !tbaa !5
  %638 = load i32, ptr %42, align 4, !tbaa !9
  %639 = sext i32 %638 to i64
  %640 = getelementptr inbounds float, ptr %637, i64 %639
  %641 = load ptr, ptr %34, align 8, !tbaa !5
  %642 = load ptr, ptr %36, align 8, !tbaa !5
  %643 = getelementptr inbounds float, ptr %642, i64 1
  %644 = load ptr, ptr %38, 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 %38, align 8, !tbaa !5
  %649 = load i32, ptr %64, align 4, !tbaa !9
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds i32, ptr %648, i64 %650
  %652 = load ptr, ptr %40, align 8, !tbaa !5
  call void @sstein_(ptr noundef %621, ptr noundef %623, ptr noundef %625, ptr noundef %626, ptr noundef %628, ptr noundef %632, ptr noundef %636, ptr noundef %640, ptr noundef %641, ptr noundef %643, ptr noundef %647, ptr noundef %651, ptr noundef %652)
  br label %653

653:                                              ; preds = %620, %589
  br label %654

654:                                              ; preds = %653, %576
  %655 = load i32, ptr %61, align 4, !tbaa !9
  %656 = icmp eq i32 %655, 1
  br i1 %656, label %657, label %673

657:                                              ; preds = %654
  %658 = load ptr, ptr %40, align 8, !tbaa !5
  %659 = load i32, ptr %658, align 4, !tbaa !9
  %660 = icmp eq i32 %659, 0
  br i1 %660, label %661, label %664

661:                                              ; preds = %657
  %662 = load ptr, ptr %31, align 8, !tbaa !5
  %663 = load i32, ptr %662, align 4, !tbaa !9
  store i32 %663, ptr %47, align 4, !tbaa !9
  br label %668

664:                                              ; preds = %657
  %665 = load ptr, ptr %40, align 8, !tbaa !5
  %666 = load i32, ptr %665, align 4, !tbaa !9
  %667 = sub nsw i32 %666, 1
  store i32 %667, ptr %47, align 4, !tbaa !9
  br label %668

668:                                              ; preds = %664, %661
  %669 = load float, ptr %54, align 4, !tbaa !11
  %670 = fdiv float 1.000000e+00, %669
  store float %670, ptr %45, align 4, !tbaa !11
  %671 = load ptr, ptr %32, align 8, !tbaa !5
  %672 = getelementptr inbounds float, ptr %671, i64 1
  call void @sscal_(ptr noundef %47, ptr noundef %45, ptr noundef %672, ptr noundef @c__1)
  br label %673

673:                                              ; preds = %668, %654
  %674 = load i32, ptr %57, align 4, !tbaa !9
  %675 = icmp ne i32 %674, 0
  br i1 %675, label %676, label %755

676:                                              ; preds = %673
  %677 = load ptr, ptr %31, align 8, !tbaa !5
  %678 = load i32, ptr %677, align 4, !tbaa !9
  %679 = sub nsw i32 %678, 1
  store i32 %679, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %53, align 4, !tbaa !9
  br label %680

680:                                              ; preds = %751, %676
  %681 = load i32, ptr %53, align 4, !tbaa !9
  %682 = load i32, ptr %43, align 4, !tbaa !9
  %683 = icmp sle i32 %681, %682
  br i1 %683, label %684, label %754

684:                                              ; preds = %680
  store i32 0, ptr %52, align 4, !tbaa !9
  %685 = load ptr, ptr %32, align 8, !tbaa !5
  %686 = load i32, ptr %53, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %685, i64 %687
  %689 = load float, ptr %688, align 4, !tbaa !11
  store float %689, ptr %78, align 4, !tbaa !11
  %690 = load ptr, ptr %31, align 8, !tbaa !5
  %691 = load i32, ptr %690, align 4, !tbaa !9
  store i32 %691, ptr %44, align 4, !tbaa !9
  %692 = load i32, ptr %53, align 4, !tbaa !9
  %693 = add nsw i32 %692, 1
  store i32 %693, ptr %58, align 4, !tbaa !9
  br label %694

694:                                              ; preds = %714, %684
  %695 = load i32, ptr %58, align 4, !tbaa !9
  %696 = load i32, ptr %44, align 4, !tbaa !9
  %697 = icmp sle i32 %695, %696
  br i1 %697, label %698, label %717

698:                                              ; preds = %694
  %699 = load ptr, ptr %32, align 8, !tbaa !5
  %700 = load i32, ptr %58, align 4, !tbaa !9
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds float, ptr %699, i64 %701
  %703 = load float, ptr %702, align 4, !tbaa !11
  %704 = load float, ptr %78, align 4, !tbaa !11
  %705 = fcmp olt float %703, %704
  br i1 %705, label %706, label %713

706:                                              ; preds = %698
  %707 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %707, ptr %52, align 4, !tbaa !9
  %708 = load ptr, ptr %32, align 8, !tbaa !5
  %709 = load i32, ptr %58, align 4, !tbaa !9
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds float, ptr %708, i64 %710
  %712 = load float, ptr %711, align 4, !tbaa !11
  store float %712, ptr %78, align 4, !tbaa !11
  br label %713

713:                                              ; preds = %706, %698
  br label %714

714:                                              ; preds = %713
  %715 = load i32, ptr %58, align 4, !tbaa !9
  %716 = add nsw i32 %715, 1
  store i32 %716, ptr %58, align 4, !tbaa !9
  br label %694, !llvm.loop !14

717:                                              ; preds = %694
  %718 = load i32, ptr %52, align 4, !tbaa !9
  %719 = icmp ne i32 %718, 0
  br i1 %719, label %720, label %750

720:                                              ; preds = %717
  %721 = load ptr, ptr %32, align 8, !tbaa !5
  %722 = load i32, ptr %53, align 4, !tbaa !9
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds float, ptr %721, i64 %723
  %725 = load float, ptr %724, align 4, !tbaa !11
  %726 = load ptr, ptr %32, align 8, !tbaa !5
  %727 = load i32, ptr %52, align 4, !tbaa !9
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds float, ptr %726, i64 %728
  store float %725, ptr %729, align 4, !tbaa !11
  %730 = load float, ptr %78, align 4, !tbaa !11
  %731 = load ptr, ptr %32, align 8, !tbaa !5
  %732 = load i32, ptr %53, align 4, !tbaa !9
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds float, ptr %731, i64 %733
  store float %730, ptr %734, align 4, !tbaa !11
  %735 = load ptr, ptr %23, align 8, !tbaa !5
  %736 = load ptr, ptr %33, align 8, !tbaa !5
  %737 = load i32, ptr %52, align 4, !tbaa !9
  %738 = load i32, ptr %41, align 4, !tbaa !9
  %739 = mul nsw i32 %737, %738
  %740 = add nsw i32 %739, 1
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds float, ptr %736, i64 %741
  %743 = load ptr, ptr %33, align 8, !tbaa !5
  %744 = load i32, ptr %53, align 4, !tbaa !9
  %745 = load i32, ptr %41, align 4, !tbaa !9
  %746 = mul nsw i32 %744, %745
  %747 = add nsw i32 %746, 1
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds float, ptr %743, i64 %748
  call void @sswap_(ptr noundef %735, ptr noundef %742, ptr noundef @c__1, ptr noundef %749, ptr noundef @c__1)
  br label %750

750:                                              ; preds = %720, %717
  br label %751

751:                                              ; preds = %750
  %752 = load i32, ptr %53, align 4, !tbaa !9
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr %53, align 4, !tbaa !9
  br label %680, !llvm.loop !16

754:                                              ; preds = %680
  br label %755

755:                                              ; preds = %754, %673
  %756 = load i32, ptr %56, align 4, !tbaa !9
  %757 = sitofp i32 %756 to float
  %758 = load ptr, ptr %36, align 8, !tbaa !5
  %759 = getelementptr inbounds float, ptr %758, i64 1
  store float %757, ptr %759, align 4, !tbaa !11
  %760 = load i32, ptr %70, align 4, !tbaa !9
  %761 = load ptr, ptr %38, align 8, !tbaa !5
  %762 = getelementptr inbounds i32, ptr %761, i64 1
  store i32 %760, ptr %762, align 4, !tbaa !9
  store i32 1, ptr %79, align 4
  br label %763

763:                                              ; preds = %755, %361, %312, %305, %297
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  ret void
}

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

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

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

declare 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 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}


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

@c__10 = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__4 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

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

43:                                               ; preds = %20
  %44 = load i32, ptr %18, align 4, !tbaa !5
  %45 = icmp eq i32 %44, -1
  br label %46

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

54:                                               ; preds = %46
  %55 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not289 = icmp eq i32 %55, 0
  br i1 %.not289, label %.thread312.sink.split, label %56

56:                                               ; preds = %54, %46
  %57 = icmp ne i32 %38, 0
  %58 = icmp ne i32 %39, 0
  %or.cond = select i1 %57, i1 true, i1 %58
  %59 = icmp ne i32 %40, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %59
  br i1 %or.cond3, label %60, label %.thread312.sink.split

60:                                               ; preds = %56
  %61 = load i32, ptr %2, align 4, !tbaa !5
  %62 = icmp slt i32 %61, 0
  br i1 %62, label %.thread312.sink.split, label %63

63:                                               ; preds = %60
  br i1 %58, label %64, label %69

64:                                               ; preds = %63
  %.not291 = icmp eq i32 %61, 0
  br i1 %.not291, label %78, label %65

65:                                               ; preds = %64
  %66 = load float, ptr %6, align 4, !tbaa !9
  %67 = load float, ptr %5, align 4, !tbaa !9
  %68 = fcmp ugt float %66, %67
  br i1 %68, label %78, label %.thread312.sink.split

69:                                               ; preds = %63
  br i1 %59, label %70, label %78

70:                                               ; preds = %69
  %71 = load i32, ptr %7, align 4, !tbaa !5
  %72 = icmp slt i32 %71, 1
  %spec.select = tail call i32 @llvm.umax.i32(i32 %61, i32 1)
  %73 = icmp ugt i32 %71, %spec.select
  %or.cond320 = or i1 %72, %73
  br i1 %or.cond320, label %.thread312.sink.split, label %74

74:                                               ; preds = %70
  %75 = load i32, ptr %8, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %61, i32 %71)
  %76 = icmp slt i32 %75, %.
  %77 = icmp ugt i32 %75, %61
  %or.cond319 = or i1 %76, %77
  br i1 %or.cond319, label %.thread312.sink.split, label %78

78:                                               ; preds = %74, %65, %64, %69
  %.pr = load i32, ptr %19, align 4, !tbaa !5
  %79 = icmp eq i32 %.pr, 0
  br i1 %79, label %80, label %.thread312

80:                                               ; preds = %78
  %81 = load i32, ptr %13, align 4, !tbaa !5
  %82 = icmp slt i32 %81, 1
  %83 = icmp ult i32 %81, %61
  %or.cond341 = and i1 %.not, %83
  %or.cond343 = or i1 %82, %or.cond341
  br i1 %or.cond343, label %.thread312.sink.split, label %.thread

.thread:                                          ; preds = %80
  %84 = sitofp i32 %51 to float
  store float %84, ptr %15, align 4, !tbaa !9
  store i32 %53, ptr %17, align 4, !tbaa !5
  %85 = load i32, ptr %16, align 4, !tbaa !5
  %86 = icmp sge i32 %85, %51
  %or.cond5 = select i1 %86, i1 true, i1 %47
  br i1 %or.cond5, label %87, label %.thread312.sink.split

87:                                               ; preds = %.thread
  %88 = load i32, ptr %18, align 4, !tbaa !5
  %89 = icmp sge i32 %88, %53
  %or.cond7 = select i1 %89, i1 true, i1 %47
  br i1 %or.cond7, label %.thread308, label %.thread312.sink.split

.thread308:                                       ; preds = %87
  %.pr310.pr = load i32, ptr %19, align 4, !tbaa !5
  %.not292 = icmp eq i32 %.pr310.pr, 0
  br i1 %.not292, label %93, label %.thread312

.thread312.sink.split:                            ; preds = %87, %.thread, %80, %74, %70, %65, %60, %56, %54
  %.sink = phi i32 [ -1, %54 ], [ -2, %56 ], [ -3, %60 ], [ -7, %65 ], [ -8, %70 ], [ -9, %74 ], [ -14, %80 ], [ -17, %.thread ], [ -19, %87 ]
  store i32 %.sink, ptr %19, align 4, !tbaa !5
  br label %.thread312

.thread312:                                       ; preds = %.thread312.sink.split, %78, %.thread308
  %90 = phi i32 [ %.pr310.pr, %.thread308 ], [ %.pr, %78 ], [ %.sink, %.thread312.sink.split ]
  %91 = sub nsw i32 0, %90
  store i32 %91, ptr %21, align 4, !tbaa !5
  %92 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %21, i32 noundef 6) #5
  br label %233

93:                                               ; preds = %.thread308
  br i1 %47, label %233, label %94

94:                                               ; preds = %93
  store i32 0, ptr %10, align 4, !tbaa !5
  %95 = load i32, ptr %2, align 4, !tbaa !5
  switch i32 %95, label %109 [
    i32 0, label %233
    i32 1, label %96
  ]

96:                                               ; preds = %94
  %or.cond9 = select i1 %57, i1 true, i1 %59
  br i1 %or.cond9, label %97, label %99

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

99:                                               ; preds = %96
  %100 = load float, ptr %5, align 4, !tbaa !9
  %101 = load float, ptr %3, align 4, !tbaa !9
  %102 = fcmp olt float %100, %101
  br i1 %102, label %103, label %107

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

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

.sink.split:                                      ; preds = %97, %106
  %.sink342 = phi float [ %101, %106 ], [ %98, %97 ]
  store float %.sink342, ptr %11, align 4, !tbaa !9
  br label %107

107:                                              ; preds = %.sink.split, %99, %103
  br i1 %.not, label %108, label %233

108:                                              ; preds = %107
  store float 1.000000e+00, ptr %12, align 4, !tbaa !9
  br label %233

109:                                              ; preds = %94
  %110 = tail call float @slamch_(ptr noundef nonnull @.str.5) #5
  %111 = tail call float @slamch_(ptr noundef nonnull @.str.6) #5
  %112 = fdiv float %110, %111
  %113 = fdiv float 1.000000e+00, %112
  %sqrtf = tail call float @sqrtf(float noundef %112) #3
  %sqrtf293 = tail call float @sqrtf(float noundef %113) #3
  store float %sqrtf293, ptr %22, align 4, !tbaa !9
  %114 = fpext float %110 to double
  %115 = tail call double @sqrt(double noundef %114) #5
  %116 = tail call double @sqrt(double noundef %115) #5
  %117 = fdiv double 1.000000e+00, %116
  %118 = fptrunc double %117 to float
  %119 = fcmp ole float %sqrtf293, %118
  %120 = select i1 %119, float %sqrtf293, float %118
  %.not294 = icmp eq i32 %39, 0
  br i1 %.not294, label %124, label %121

121:                                              ; preds = %109
  %122 = load float, ptr %5, align 4, !tbaa !9
  store float %122, ptr %28, align 4, !tbaa !9
  %123 = load float, ptr %6, align 4, !tbaa !9
  store float %123, ptr %29, align 4, !tbaa !9
  br label %124

124:                                              ; preds = %121, %109
  %125 = tail call float @slanst_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4) #5
  %126 = fcmp ogt float %125, 0.000000e+00
  %127 = fcmp olt float %125, %sqrtf
  %or.cond301 = select i1 %126, i1 %127, i1 false
  br i1 %or.cond301, label %130, label %128

128:                                              ; preds = %124
  %129 = fcmp ogt float %125, %120
  br i1 %129, label %130, label %139

130:                                              ; preds = %128, %124
  %.pn = phi float [ %sqrtf, %124 ], [ %120, %128 ]
  %storemerge = fdiv float %.pn, %125
  store float %storemerge, ptr %24, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %24, ptr noundef %3, ptr noundef nonnull @c__1) #5
  %131 = load i32, ptr %2, align 4, !tbaa !5
  %132 = add nsw i32 %131, -1
  store i32 %132, ptr %21, align 4, !tbaa !5
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %24, ptr noundef %4, ptr noundef nonnull @c__1) #5
  br i1 %.not294, label %139, label %133

133:                                              ; preds = %130
  %134 = load float, ptr %5, align 4, !tbaa !9
  %135 = load float, ptr %24, align 4, !tbaa !9
  %136 = fmul float %134, %135
  store float %136, ptr %28, align 4, !tbaa !9
  %137 = load float, ptr %6, align 4, !tbaa !9
  %138 = fmul float %135, %137
  store float %138, ptr %29, align 4, !tbaa !9
  br label %139

139:                                              ; preds = %128, %130, %133
  %140 = phi i1 [ true, %130 ], [ true, %133 ], [ false, %128 ]
  %141 = load i32, ptr %2, align 4, !tbaa !5
  %142 = add nsw i32 %141, 1
  %143 = add nsw i32 %142, %141
  %.not295 = icmp eq i32 %40, 0
  br i1 %.not295, label %150, label %144

144:                                              ; preds = %139
  %145 = load i32, ptr %7, align 4, !tbaa !5
  %146 = icmp eq i32 %145, 1
  br i1 %146, label %147, label %150

147:                                              ; preds = %144
  %148 = load i32, ptr %8, align 4, !tbaa !5
  %149 = icmp eq i32 %148, %141
  br label %150

150:                                              ; preds = %147, %144, %139
  %151 = phi i1 [ false, %144 ], [ false, %139 ], [ %149, %147 ]
  %or.cond11 = or i1 %57, %151
  %152 = icmp eq i32 %36, 1
  %or.cond13 = select i1 %or.cond11, i1 %152, i1 false
  br i1 %or.cond13, label %153, label %182

153:                                              ; preds = %150
  %154 = add nsw i32 %141, -1
  store i32 %154, ptr %21, align 4, !tbaa !5
  call void @scopy_(ptr noundef nonnull %21, ptr noundef %4, ptr noundef nonnull @c__1, ptr noundef nonnull %15, ptr noundef nonnull @c__1) #5
  br i1 %.not, label %156, label %155

155:                                              ; preds = %153
  call void @scopy_(ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull @c__1) #5
  call void @ssterf_(ptr noundef nonnull %2, ptr noundef %11, ptr noundef nonnull %15, ptr noundef nonnull %19) #5
  br label %176

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

176:                                              ; preds = %156, %155
  %177 = load i32, ptr %19, align 4, !tbaa !5
  %178 = icmp eq i32 %177, 0
  br i1 %178, label %179, label %181

179:                                              ; preds = %176
  %180 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %180, ptr %10, align 4, !tbaa !5
  br label %188

181:                                              ; preds = %176
  store i32 0, ptr %19, align 4, !tbaa !5
  br label %182

182:                                              ; preds = %150, %181
  %.304 = select i1 %.not, i8 66, i8 69
  store i8 %.304, ptr %25, align 1, !tbaa !11
  %183 = sext i32 %142 to i64
  %184 = getelementptr inbounds i32, ptr %35, i64 %183
  %185 = sext i32 %143 to i64
  %186 = getelementptr inbounds i32, ptr %35, i64 %185
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %25, ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %10, ptr noundef nonnull %27, ptr noundef %11, ptr noundef nonnull %17, ptr noundef nonnull %184, ptr noundef nonnull %15, ptr noundef nonnull %186, ptr noundef nonnull %19) #5
  br i1 %.not, label %187, label %188

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

188:                                              ; preds = %182, %187, %179
  br i1 %140, label %189, label %199

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

192:                                              ; preds = %189
  %193 = load i32, ptr %10, align 4, !tbaa !5
  br label %196

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

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

199:                                              ; preds = %196, %188
  br i1 %.not, label %200, label %.loopexit

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

.lr.ph331.preheader:                              ; preds = %200
  %203 = sext i32 %31 to i64
  br label %.lr.ph331

.lr.ph331:                                        ; preds = %.lr.ph331.preheader, %._crit_edge.thread
  %indvar = phi i32 [ 0, %.lr.ph331.preheader ], [ %indvar.next, %._crit_edge.thread ]
  %204 = phi i32 [ %202, %.lr.ph331.preheader ], [ %231, %._crit_edge.thread ]
  %indvars.iv335 = phi i64 [ 1, %.lr.ph331.preheader ], [ %indvars.iv.next336, %._crit_edge.thread ]
  %indvars.iv = phi i64 [ 2, %.lr.ph331.preheader ], [ %indvars.iv.next, %._crit_edge.thread ]
  %205 = getelementptr inbounds float, ptr %30, i64 %indvars.iv335
  %206 = load float, ptr %205, align 4, !tbaa !9
  %207 = load i32, ptr %10, align 4, !tbaa !5
  %indvars.iv.next336 = add nuw nsw i64 %indvars.iv335, 1
  %208 = sext i32 %207 to i64
  %.not299321.not = icmp slt i64 %indvars.iv335, %208
  br i1 %.not299321.not, label %.lr.ph.preheader, label %._crit_edge.thread

.lr.ph.preheader:                                 ; preds = %.lr.ph331
  %209 = xor i32 %indvar, -1
  %210 = add i32 %207, %209
  %reass.sub = sub i32 %207, %indvar
  %xtraiter = and i32 %210, 1
  %211 = icmp eq i32 %reass.sub, 2
  br i1 %211, label %._crit_edge.unr-lcssa, label %.lr.ph.preheader.new

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

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %indvars.iv332 = phi i64 [ %indvars.iv, %.lr.ph.preheader.new ], [ %indvars.iv.next333.1, %.lr.ph ]
  %.0324 = phi float [ %206, %.lr.ph.preheader.new ], [ %.1.1, %.lr.ph ]
  %.0271323 = phi i32 [ 0, %.lr.ph.preheader.new ], [ %.1272.1, %.lr.ph ]
  %niter = phi i32 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %212 = getelementptr inbounds float, ptr %30, i64 %indvars.iv332
  %213 = load float, ptr %212, align 4, !tbaa !9
  %214 = fcmp olt float %213, %.0324
  %215 = trunc nuw i64 %indvars.iv332 to i32
  %.1272 = select i1 %214, i32 %215, i32 %.0271323
  %.1 = select i1 %214, float %213, float %.0324
  %216 = getelementptr float, ptr %11, i64 %indvars.iv332
  %217 = load float, ptr %216, align 4, !tbaa !9
  %218 = fcmp olt float %217, %.1
  %219 = trunc i64 %indvars.iv332 to i32
  %220 = add i32 %219, 1
  %.1272.1 = select i1 %218, i32 %220, i32 %.1272
  %.1.1 = select i1 %218, float %217, float %.1
  %indvars.iv.next333.1 = add nuw nsw i64 %indvars.iv332, 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.ph, !llvm.loop !12

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph, %.lr.ph.preheader
  %.1272.lcssa.ph = phi i32 [ poison, %.lr.ph.preheader ], [ %.1272.1, %.lr.ph ]
  %.1.lcssa.ph = phi float [ poison, %.lr.ph.preheader ], [ %.1.1, %.lr.ph ]
  %indvars.iv332.unr = phi i64 [ %indvars.iv, %.lr.ph.preheader ], [ %indvars.iv.next333.1, %.lr.ph ]
  %.0324.unr = phi float [ %206, %.lr.ph.preheader ], [ %.1.1, %.lr.ph ]
  %.0271323.unr = phi i32 [ 0, %.lr.ph.preheader ], [ %.1272.1, %.lr.ph ]
  %lcmp.mod.not = icmp eq i32 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %._crit_edge.unr-lcssa
  %221 = getelementptr inbounds float, ptr %30, i64 %indvars.iv332.unr
  %222 = load float, ptr %221, align 4, !tbaa !9
  %223 = fcmp olt float %222, %.0324.unr
  %224 = trunc nuw i64 %indvars.iv332.unr to i32
  %.1272.epil = select i1 %223, i32 %224, i32 %.0271323.unr
  %.1.epil = select i1 %223, float %222, float %.0324.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph.epil
  %.1272.lcssa = phi i32 [ %.1272.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1272.epil, %.lr.ph.epil ]
  %.1.lcssa = phi float [ %.1.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1.epil, %.lr.ph.epil ]
  %.not300 = icmp eq i32 %.1272.lcssa, 0
  br i1 %.not300, label %._crit_edge.thread, label %225

225:                                              ; preds = %._crit_edge
  %226 = sext i32 %.1272.lcssa to i64
  %227 = getelementptr inbounds float, ptr %30, i64 %226
  store float %206, ptr %227, align 4, !tbaa !9
  store float %.1.lcssa, ptr %205, align 4, !tbaa !9
  %228 = mul nsw i32 %.1272.lcssa, %31
  %229 = sext i32 %228 to i64
  %gep = getelementptr float, ptr %invariant.gep, i64 %229
  %230 = mul nsw i64 %indvars.iv335, %203
  %gep327 = getelementptr float, ptr %invariant.gep, i64 %230
  call void @sswap_(ptr noundef nonnull %2, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep327, ptr noundef nonnull @c__1) #5
  %.pre = load i32, ptr %21, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph331, %._crit_edge, %225
  %231 = phi i32 [ %204, %._crit_edge ], [ %.pre, %225 ], [ %204, %.lr.ph331 ]
  %232 = sext i32 %231 to i64
  %.not298.not = icmp slt i64 %indvars.iv335, %232
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %indvar.next = add i32 %indvar, 1
  br i1 %.not298.not, label %.lr.ph331, label %.loopexit, !llvm.loop !14

.loopexit:                                        ; preds = %._crit_edge.thread, %200, %199
  store float %84, ptr %15, align 4, !tbaa !9
  store i32 %53, ptr %17, align 4, !tbaa !5
  br label %233

233:                                              ; preds = %107, %108, %94, %93, %.loopexit, %.thread312
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  ret void
}

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

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

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

declare 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

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

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

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


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