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

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8

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

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

112:                                              ; preds = %108
  %113 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -1, ptr %113, align 8, !tbaa !9
  br label %211

114:                                              ; preds = %108, %18
  %115 = load i64, ptr %64, align 8, !tbaa !9
  %116 = icmp ne i64 %115, 0
  br i1 %116, label %125, label %117

117:                                              ; preds = %114
  %118 = load i64, ptr %68, align 8, !tbaa !9
  %119 = icmp ne i64 %118, 0
  br i1 %119, label %125, label %120

120:                                              ; preds = %117
  %121 = load i64, ptr %65, align 8, !tbaa !9
  %122 = icmp ne i64 %121, 0
  br i1 %122, label %125, label %123

123:                                              ; preds = %120
  %124 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -2, ptr %124, align 8, !tbaa !9
  br label %210

125:                                              ; preds = %120, %117, %114
  %126 = load ptr, ptr %22, align 8, !tbaa !5
  %127 = call i64 @lsame_(ptr noundef %126, ptr noundef @.str.4)
  %128 = icmp ne i64 %127, 0
  br i1 %128, label %135, label %129

129:                                              ; preds = %125
  %130 = load ptr, ptr %22, align 8, !tbaa !5
  %131 = call i64 @lsame_(ptr noundef %130, ptr noundef @.str.5)
  %132 = icmp ne i64 %131, 0
  br i1 %132, label %135, label %133

133:                                              ; preds = %129
  %134 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -3, ptr %134, align 8, !tbaa !9
  br label %209

135:                                              ; preds = %129, %125
  %136 = load ptr, ptr %23, align 8, !tbaa !5
  %137 = load i64, ptr %136, align 8, !tbaa !9
  %138 = icmp slt i64 %137, 0
  br i1 %138, label %139, label %141

139:                                              ; preds = %135
  %140 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -4, ptr %140, align 8, !tbaa !9
  br label %208

141:                                              ; preds = %135
  %142 = load i64, ptr %68, align 8, !tbaa !9
  %143 = icmp ne i64 %142, 0
  br i1 %143, label %144, label %157

144:                                              ; preds = %141
  %145 = load ptr, ptr %23, align 8, !tbaa !5
  %146 = load i64, ptr %145, align 8, !tbaa !9
  %147 = icmp sgt i64 %146, 0
  br i1 %147, label %148, label %156

148:                                              ; preds = %144
  %149 = load ptr, ptr %26, align 8, !tbaa !5
  %150 = load float, ptr %149, align 4, !tbaa !11
  %151 = load ptr, ptr %25, align 8, !tbaa !5
  %152 = load float, ptr %151, align 4, !tbaa !11
  %153 = fcmp ole float %150, %152
  br i1 %153, label %154, label %156

154:                                              ; preds = %148
  %155 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -7, ptr %155, align 8, !tbaa !9
  br label %156

156:                                              ; preds = %154, %148, %144
  br label %207

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

160:                                              ; preds = %157
  %161 = load ptr, ptr %27, align 8, !tbaa !5
  %162 = load i64, ptr %161, align 8, !tbaa !9
  %163 = icmp slt i64 %162, 1
  br i1 %163, label %177, label %164

164:                                              ; preds = %160
  %165 = load ptr, ptr %27, align 8, !tbaa !5
  %166 = load i64, ptr %165, align 8, !tbaa !9
  %167 = load ptr, ptr %23, align 8, !tbaa !5
  %168 = load i64, ptr %167, align 8, !tbaa !9
  %169 = icmp sge i64 1, %168
  br i1 %169, label %170, label %171

170:                                              ; preds = %164
  br label %174

171:                                              ; preds = %164
  %172 = load ptr, ptr %23, align 8, !tbaa !5
  %173 = load i64, ptr %172, align 8, !tbaa !9
  br label %174

174:                                              ; preds = %171, %170
  %175 = phi i64 [ 1, %170 ], [ %173, %171 ]
  %176 = icmp sgt i64 %166, %175
  br i1 %176, label %177, label %179

177:                                              ; preds = %174, %160
  %178 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -8, ptr %178, align 8, !tbaa !9
  br label %205

179:                                              ; preds = %174
  %180 = load ptr, ptr %28, align 8, !tbaa !5
  %181 = load i64, ptr %180, align 8, !tbaa !9
  %182 = load ptr, ptr %23, align 8, !tbaa !5
  %183 = load i64, ptr %182, align 8, !tbaa !9
  %184 = load ptr, ptr %27, align 8, !tbaa !5
  %185 = load i64, ptr %184, align 8, !tbaa !9
  %186 = icmp sle i64 %183, %185
  br i1 %186, label %187, label %190

187:                                              ; preds = %179
  %188 = load ptr, ptr %23, align 8, !tbaa !5
  %189 = load i64, ptr %188, align 8, !tbaa !9
  br label %193

190:                                              ; preds = %179
  %191 = load ptr, ptr %27, align 8, !tbaa !5
  %192 = load i64, ptr %191, align 8, !tbaa !9
  br label %193

193:                                              ; preds = %190, %187
  %194 = phi i64 [ %189, %187 ], [ %192, %190 ]
  %195 = icmp slt i64 %181, %194
  br i1 %195, label %202, label %196

196:                                              ; preds = %193
  %197 = load ptr, ptr %28, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !9
  %199 = load ptr, ptr %23, align 8, !tbaa !5
  %200 = load i64, ptr %199, align 8, !tbaa !9
  %201 = icmp sgt i64 %198, %200
  br i1 %201, label %202, label %204

202:                                              ; preds = %196, %193
  %203 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -9, ptr %203, align 8, !tbaa !9
  br label %204

204:                                              ; preds = %202, %196
  br label %205

205:                                              ; preds = %204, %177
  br label %206

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

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

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

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

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

211:                                              ; preds = %210, %112
  %212 = load ptr, ptr %37, align 8, !tbaa !5
  %213 = load i64, ptr %212, align 8, !tbaa !9
  %214 = icmp eq i64 %213, 0
  br i1 %214, label %215, label %231

215:                                              ; preds = %211
  %216 = load ptr, ptr %33, align 8, !tbaa !5
  %217 = load i64, ptr %216, align 8, !tbaa !9
  %218 = icmp slt i64 %217, 1
  br i1 %218, label %228, label %219

219:                                              ; preds = %215
  %220 = load i64, ptr %63, align 8, !tbaa !9
  %221 = icmp ne i64 %220, 0
  br i1 %221, label %222, label %230

222:                                              ; preds = %219
  %223 = load ptr, ptr %33, align 8, !tbaa !5
  %224 = load i64, ptr %223, align 8, !tbaa !9
  %225 = load ptr, ptr %23, align 8, !tbaa !5
  %226 = load i64, ptr %225, align 8, !tbaa !9
  %227 = icmp slt i64 %224, %226
  br i1 %227, label %228, label %230

228:                                              ; preds = %222, %215
  %229 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 -14, ptr %229, align 8, !tbaa !9
  br label %230

230:                                              ; preds = %228, %222, %219
  br label %231

231:                                              ; preds = %230, %211
  %232 = load ptr, ptr %37, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  %234 = icmp ne i64 %233, 0
  br i1 %234, label %235, label %240

235:                                              ; preds = %231
  %236 = load ptr, ptr %37, align 8, !tbaa !5
  %237 = load i64, ptr %236, align 8, !tbaa !9
  %238 = sub nsw i64 0, %237
  store i64 %238, ptr %40, align 8, !tbaa !9
  %239 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %40)
  store i32 0, ptr %19, align 4
  store i32 1, ptr %78, align 4
  br label %795

240:                                              ; preds = %231
  %241 = load ptr, ptr %30, align 8, !tbaa !5
  store i64 0, ptr %241, align 8, !tbaa !9
  %242 = load ptr, ptr %23, align 8, !tbaa !5
  %243 = load i64, ptr %242, align 8, !tbaa !9
  %244 = icmp eq i64 %243, 0
  br i1 %244, label %245, label %246

245:                                              ; preds = %240
  store i32 0, ptr %19, align 4
  store i32 1, ptr %78, align 4
  br label %795

246:                                              ; preds = %240
  %247 = load ptr, ptr %23, align 8, !tbaa !5
  %248 = load i64, ptr %247, align 8, !tbaa !9
  %249 = icmp eq i64 %248, 1
  br i1 %249, label %250, label %294

250:                                              ; preds = %246
  %251 = load i64, ptr %64, align 8, !tbaa !9
  %252 = icmp ne i64 %251, 0
  br i1 %252, label %256, label %253

253:                                              ; preds = %250
  %254 = load i64, ptr %65, align 8, !tbaa !9
  %255 = icmp ne i64 %254, 0
  br i1 %255, label %256, label %263

256:                                              ; preds = %253, %250
  %257 = load ptr, ptr %30, align 8, !tbaa !5
  store i64 1, ptr %257, align 8, !tbaa !9
  %258 = load ptr, ptr %24, align 8, !tbaa !5
  %259 = getelementptr inbounds float, ptr %258, i64 1
  %260 = load float, ptr %259, align 4, !tbaa !11
  %261 = load ptr, ptr %31, align 8, !tbaa !5
  %262 = getelementptr inbounds float, ptr %261, i64 1
  store float %260, ptr %262, align 4, !tbaa !11
  br label %285

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

270:                                              ; preds = %263
  %271 = load ptr, ptr %26, align 8, !tbaa !5
  %272 = load float, ptr %271, align 4, !tbaa !11
  %273 = load ptr, ptr %24, align 8, !tbaa !5
  %274 = getelementptr inbounds float, ptr %273, i64 1
  %275 = load float, ptr %274, align 4, !tbaa !11
  %276 = fcmp oge float %272, %275
  br i1 %276, label %277, label %284

277:                                              ; preds = %270
  %278 = load ptr, ptr %30, align 8, !tbaa !5
  store i64 1, ptr %278, align 8, !tbaa !9
  %279 = load ptr, ptr %24, align 8, !tbaa !5
  %280 = getelementptr inbounds float, ptr %279, i64 1
  %281 = load float, ptr %280, align 4, !tbaa !11
  %282 = load ptr, ptr %31, align 8, !tbaa !5
  %283 = getelementptr inbounds float, ptr %282, i64 1
  store float %281, ptr %283, align 4, !tbaa !11
  br label %284

284:                                              ; preds = %277, %270, %263
  br label %285

285:                                              ; preds = %284, %256
  %286 = load i64, ptr %63, align 8, !tbaa !9
  %287 = icmp ne i64 %286, 0
  br i1 %287, label %288, label %293

288:                                              ; preds = %285
  %289 = load ptr, ptr %32, align 8, !tbaa !5
  %290 = load i64, ptr %38, align 8, !tbaa !9
  %291 = add nsw i64 %290, 1
  %292 = getelementptr inbounds float, ptr %289, i64 %291
  store float 1.000000e+00, ptr %292, align 4, !tbaa !11
  br label %293

293:                                              ; preds = %288, %285
  store i32 0, ptr %19, align 4
  store i32 1, ptr %78, align 4
  br label %795

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

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

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

325:                                              ; preds = %323, %321
  %326 = phi float [ %322, %321 ], [ %324, %323 ]
  %327 = fpext float %326 to double
  %328 = fptrunc double %327 to float
  store float %328, ptr %56, align 4, !tbaa !11
  store i64 0, ptr %66, align 8, !tbaa !9
  %329 = load ptr, ptr %29, align 8, !tbaa !5
  %330 = load float, ptr %329, align 4, !tbaa !11
  store float %330, ptr %70, align 4, !tbaa !11
  %331 = load i64, ptr %68, align 8, !tbaa !9
  %332 = icmp ne i64 %331, 0
  br i1 %332, label %333, label %338

333:                                              ; preds = %325
  %334 = load ptr, ptr %25, align 8, !tbaa !5
  %335 = load float, ptr %334, align 4, !tbaa !11
  store float %335, ptr %48, align 4, !tbaa !11
  %336 = load ptr, ptr %26, align 8, !tbaa !5
  %337 = load float, ptr %336, align 4, !tbaa !11
  store float %337, ptr %49, align 4, !tbaa !11
  br label %339

338:                                              ; preds = %325
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  store float 0.000000e+00, ptr %49, align 4, !tbaa !11
  br label %339

339:                                              ; preds = %338, %333
  %340 = load ptr, ptr %22, align 8, !tbaa !5
  %341 = load ptr, ptr %23, align 8, !tbaa !5
  %342 = load ptr, ptr %24, align 8, !tbaa !5
  %343 = getelementptr inbounds float, ptr %342, i64 1
  %344 = load ptr, ptr %34, align 8, !tbaa !5
  %345 = getelementptr inbounds float, ptr %344, i64 1
  %346 = call double @slansp_(ptr noundef @.str.9, ptr noundef %340, ptr noundef %341, ptr noundef %343, ptr noundef %345)
  %347 = fptrunc double %346 to float
  store float %347, ptr %53, align 4, !tbaa !11
  %348 = load float, ptr %53, align 4, !tbaa !11
  %349 = fcmp ogt float %348, 0.000000e+00
  br i1 %349, label %350, label %358

350:                                              ; preds = %339
  %351 = load float, ptr %53, align 4, !tbaa !11
  %352 = load float, ptr %55, align 4, !tbaa !11
  %353 = fcmp olt float %351, %352
  br i1 %353, label %354, label %358

354:                                              ; preds = %350
  store i64 1, ptr %66, align 8, !tbaa !9
  %355 = load float, ptr %55, align 4, !tbaa !11
  %356 = load float, ptr %53, align 4, !tbaa !11
  %357 = fdiv float %355, %356
  store float %357, ptr %60, align 4, !tbaa !11
  br label %367

358:                                              ; preds = %350, %339
  %359 = load float, ptr %53, align 4, !tbaa !11
  %360 = load float, ptr %56, align 4, !tbaa !11
  %361 = fcmp ogt float %359, %360
  br i1 %361, label %362, label %366

362:                                              ; preds = %358
  store i64 1, ptr %66, align 8, !tbaa !9
  %363 = load float, ptr %56, align 4, !tbaa !11
  %364 = load float, ptr %53, align 4, !tbaa !11
  %365 = fdiv float %363, %364
  store float %365, ptr %60, align 4, !tbaa !11
  br label %366

366:                                              ; preds = %362, %358
  br label %367

367:                                              ; preds = %366, %354
  %368 = load i64, ptr %66, align 8, !tbaa !9
  %369 = icmp eq i64 %368, 1
  br i1 %369, label %370, label %402

370:                                              ; preds = %367
  %371 = load ptr, ptr %23, align 8, !tbaa !5
  %372 = load i64, ptr %371, align 8, !tbaa !9
  %373 = load ptr, ptr %23, align 8, !tbaa !5
  %374 = load i64, ptr %373, align 8, !tbaa !9
  %375 = add nsw i64 %374, 1
  %376 = mul nsw i64 %372, %375
  %377 = sdiv i64 %376, 2
  store i64 %377, ptr %40, align 8, !tbaa !9
  %378 = load ptr, ptr %24, align 8, !tbaa !5
  %379 = getelementptr inbounds float, ptr %378, i64 1
  %380 = call i32 @f2c_sscal(ptr noundef %40, ptr noundef %60, ptr noundef %379, ptr noundef @c__1)
  %381 = load ptr, ptr %29, align 8, !tbaa !5
  %382 = load float, ptr %381, align 4, !tbaa !11
  %383 = fcmp ogt float %382, 0.000000e+00
  br i1 %383, label %384, label %389

384:                                              ; preds = %370
  %385 = load ptr, ptr %29, align 8, !tbaa !5
  %386 = load float, ptr %385, align 4, !tbaa !11
  %387 = load float, ptr %60, align 4, !tbaa !11
  %388 = fmul float %386, %387
  store float %388, ptr %70, align 4, !tbaa !11
  br label %389

389:                                              ; preds = %384, %370
  %390 = load i64, ptr %68, align 8, !tbaa !9
  %391 = icmp ne i64 %390, 0
  br i1 %391, label %392, label %401

392:                                              ; preds = %389
  %393 = load ptr, ptr %25, align 8, !tbaa !5
  %394 = load float, ptr %393, align 4, !tbaa !11
  %395 = load float, ptr %60, align 4, !tbaa !11
  %396 = fmul float %394, %395
  store float %396, ptr %48, align 4, !tbaa !11
  %397 = load ptr, ptr %26, align 8, !tbaa !5
  %398 = load float, ptr %397, align 4, !tbaa !11
  %399 = load float, ptr %60, align 4, !tbaa !11
  %400 = fmul float %398, %399
  store float %400, ptr %49, align 4, !tbaa !11
  br label %401

401:                                              ; preds = %392, %389
  br label %402

402:                                              ; preds = %401, %367
  store i64 1, ptr %72, align 8, !tbaa !9
  %403 = load i64, ptr %72, align 8, !tbaa !9
  %404 = load ptr, ptr %23, align 8, !tbaa !5
  %405 = load i64, ptr %404, align 8, !tbaa !9
  %406 = add nsw i64 %403, %405
  store i64 %406, ptr %52, align 8, !tbaa !9
  %407 = load i64, ptr %52, align 8, !tbaa !9
  %408 = load ptr, ptr %23, align 8, !tbaa !5
  %409 = load i64, ptr %408, align 8, !tbaa !9
  %410 = add nsw i64 %407, %409
  store i64 %410, ptr %51, align 8, !tbaa !9
  %411 = load i64, ptr %51, align 8, !tbaa !9
  %412 = load ptr, ptr %23, align 8, !tbaa !5
  %413 = load i64, ptr %412, align 8, !tbaa !9
  %414 = add nsw i64 %411, %413
  store i64 %414, ptr %75, align 8, !tbaa !9
  %415 = load ptr, ptr %22, align 8, !tbaa !5
  %416 = load ptr, ptr %23, align 8, !tbaa !5
  %417 = load ptr, ptr %24, align 8, !tbaa !5
  %418 = getelementptr inbounds float, ptr %417, i64 1
  %419 = load ptr, ptr %34, align 8, !tbaa !5
  %420 = load i64, ptr %51, align 8, !tbaa !9
  %421 = getelementptr inbounds float, ptr %419, i64 %420
  %422 = load ptr, ptr %34, align 8, !tbaa !5
  %423 = load i64, ptr %52, align 8, !tbaa !9
  %424 = getelementptr inbounds float, ptr %422, i64 %423
  %425 = load ptr, ptr %34, align 8, !tbaa !5
  %426 = load i64, ptr %72, align 8, !tbaa !9
  %427 = getelementptr inbounds float, ptr %425, i64 %426
  %428 = call i32 @ssptrd_(ptr noundef %415, ptr noundef %416, ptr noundef %418, ptr noundef %421, ptr noundef %424, ptr noundef %427, ptr noundef %61)
  store i64 0, ptr %57, align 8, !tbaa !9
  %429 = load i64, ptr %65, align 8, !tbaa !9
  %430 = icmp ne i64 %429, 0
  br i1 %430, label %431, label %443

431:                                              ; preds = %402
  %432 = load ptr, ptr %27, align 8, !tbaa !5
  %433 = load i64, ptr %432, align 8, !tbaa !9
  %434 = icmp eq i64 %433, 1
  br i1 %434, label %435, label %442

435:                                              ; preds = %431
  %436 = load ptr, ptr %28, align 8, !tbaa !5
  %437 = load i64, ptr %436, align 8, !tbaa !9
  %438 = load ptr, ptr %23, align 8, !tbaa !5
  %439 = load i64, ptr %438, align 8, !tbaa !9
  %440 = icmp eq i64 %437, %439
  br i1 %440, label %441, label %442

441:                                              ; preds = %435
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %442

442:                                              ; preds = %441, %435, %431
  br label %443

443:                                              ; preds = %442, %402
  %444 = load i64, ptr %64, align 8, !tbaa !9
  %445 = icmp ne i64 %444, 0
  br i1 %445, label %449, label %446

446:                                              ; preds = %443
  %447 = load i64, ptr %57, align 8, !tbaa !9
  %448 = icmp ne i64 %447, 0
  br i1 %448, label %449, label %558

449:                                              ; preds = %446, %443
  %450 = load ptr, ptr %29, align 8, !tbaa !5
  %451 = load float, ptr %450, align 4, !tbaa !11
  %452 = fcmp ole float %451, 0.000000e+00
  br i1 %452, label %453, label %558

453:                                              ; preds = %449
  %454 = load ptr, ptr %23, align 8, !tbaa !5
  %455 = load ptr, ptr %34, align 8, !tbaa !5
  %456 = load i64, ptr %51, align 8, !tbaa !9
  %457 = getelementptr inbounds float, ptr %455, i64 %456
  %458 = load ptr, ptr %31, align 8, !tbaa !5
  %459 = getelementptr inbounds float, ptr %458, i64 1
  %460 = call i32 @f2c_scopy(ptr noundef %454, ptr noundef %457, ptr noundef @c__1, ptr noundef %459, ptr noundef @c__1)
  %461 = load i64, ptr %75, align 8, !tbaa !9
  %462 = load ptr, ptr %23, align 8, !tbaa !5
  %463 = load i64, ptr %462, align 8, !tbaa !9
  %464 = shl i64 %463, 1
  %465 = add nsw i64 %461, %464
  store i64 %465, ptr %59, align 8, !tbaa !9
  %466 = load i64, ptr %63, align 8, !tbaa !9
  %467 = icmp ne i64 %466, 0
  br i1 %467, label %487, label %468

468:                                              ; preds = %453
  %469 = load ptr, ptr %23, align 8, !tbaa !5
  %470 = load i64, ptr %469, align 8, !tbaa !9
  %471 = sub nsw i64 %470, 1
  store i64 %471, ptr %40, align 8, !tbaa !9
  %472 = load ptr, ptr %34, align 8, !tbaa !5
  %473 = load i64, ptr %52, align 8, !tbaa !9
  %474 = getelementptr inbounds float, ptr %472, i64 %473
  %475 = load ptr, ptr %34, align 8, !tbaa !5
  %476 = load i64, ptr %59, align 8, !tbaa !9
  %477 = getelementptr inbounds float, ptr %475, i64 %476
  %478 = call i32 @f2c_scopy(ptr noundef %40, ptr noundef %474, ptr noundef @c__1, ptr noundef %477, ptr noundef @c__1)
  %479 = load ptr, ptr %23, align 8, !tbaa !5
  %480 = load ptr, ptr %31, align 8, !tbaa !5
  %481 = getelementptr inbounds float, ptr %480, i64 1
  %482 = load ptr, ptr %34, align 8, !tbaa !5
  %483 = load i64, ptr %59, align 8, !tbaa !9
  %484 = getelementptr inbounds float, ptr %482, i64 %483
  %485 = load ptr, ptr %37, align 8, !tbaa !5
  %486 = call i32 @ssterf_(ptr noundef %479, ptr noundef %481, ptr noundef %484, ptr noundef %485)
  br label %548

487:                                              ; preds = %453
  %488 = load ptr, ptr %22, align 8, !tbaa !5
  %489 = load ptr, ptr %23, align 8, !tbaa !5
  %490 = load ptr, ptr %24, align 8, !tbaa !5
  %491 = getelementptr inbounds float, ptr %490, i64 1
  %492 = load ptr, ptr %34, align 8, !tbaa !5
  %493 = load i64, ptr %72, align 8, !tbaa !9
  %494 = getelementptr inbounds float, ptr %492, i64 %493
  %495 = load ptr, ptr %32, align 8, !tbaa !5
  %496 = load i64, ptr %39, align 8, !tbaa !9
  %497 = getelementptr inbounds float, ptr %495, i64 %496
  %498 = load ptr, ptr %33, align 8, !tbaa !5
  %499 = load ptr, ptr %34, align 8, !tbaa !5
  %500 = load i64, ptr %75, align 8, !tbaa !9
  %501 = getelementptr inbounds float, ptr %499, i64 %500
  %502 = call i32 @sopgtr_(ptr noundef %488, ptr noundef %489, ptr noundef %491, ptr noundef %494, ptr noundef %497, ptr noundef %498, ptr noundef %501, ptr noundef %61)
  %503 = load ptr, ptr %23, align 8, !tbaa !5
  %504 = load i64, ptr %503, align 8, !tbaa !9
  %505 = sub nsw i64 %504, 1
  store i64 %505, ptr %40, align 8, !tbaa !9
  %506 = load ptr, ptr %34, align 8, !tbaa !5
  %507 = load i64, ptr %52, align 8, !tbaa !9
  %508 = getelementptr inbounds float, ptr %506, i64 %507
  %509 = load ptr, ptr %34, align 8, !tbaa !5
  %510 = load i64, ptr %59, align 8, !tbaa !9
  %511 = getelementptr inbounds float, ptr %509, i64 %510
  %512 = call i32 @f2c_scopy(ptr noundef %40, ptr noundef %508, ptr noundef @c__1, ptr noundef %511, ptr noundef @c__1)
  %513 = load ptr, ptr %20, align 8, !tbaa !5
  %514 = load ptr, ptr %23, align 8, !tbaa !5
  %515 = load ptr, ptr %31, align 8, !tbaa !5
  %516 = getelementptr inbounds float, ptr %515, i64 1
  %517 = load ptr, ptr %34, align 8, !tbaa !5
  %518 = load i64, ptr %59, align 8, !tbaa !9
  %519 = getelementptr inbounds float, ptr %517, i64 %518
  %520 = load ptr, ptr %32, align 8, !tbaa !5
  %521 = load i64, ptr %39, align 8, !tbaa !9
  %522 = getelementptr inbounds float, ptr %520, i64 %521
  %523 = load ptr, ptr %33, align 8, !tbaa !5
  %524 = load ptr, ptr %34, align 8, !tbaa !5
  %525 = load i64, ptr %75, align 8, !tbaa !9
  %526 = getelementptr inbounds float, ptr %524, i64 %525
  %527 = load ptr, ptr %37, align 8, !tbaa !5
  %528 = call i32 @ssteqr_(ptr noundef %513, ptr noundef %514, ptr noundef %516, ptr noundef %519, ptr noundef %522, ptr noundef %523, ptr noundef %526, ptr noundef %527)
  %529 = load ptr, ptr %37, align 8, !tbaa !5
  %530 = load i64, ptr %529, align 8, !tbaa !9
  %531 = icmp eq i64 %530, 0
  br i1 %531, label %532, label %547

532:                                              ; preds = %487
  %533 = load ptr, ptr %23, align 8, !tbaa !5
  %534 = load i64, ptr %533, align 8, !tbaa !9
  store i64 %534, ptr %40, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %535

535:                                              ; preds = %543, %532
  %536 = load i64, ptr %44, align 8, !tbaa !9
  %537 = load i64, ptr %40, align 8, !tbaa !9
  %538 = icmp sle i64 %536, %537
  br i1 %538, label %539, label %546

539:                                              ; preds = %535
  %540 = load ptr, ptr %36, align 8, !tbaa !5
  %541 = load i64, ptr %44, align 8, !tbaa !9
  %542 = getelementptr inbounds i64, ptr %540, i64 %541
  store i64 0, ptr %542, align 8, !tbaa !9
  br label %543

543:                                              ; preds = %539
  %544 = load i64, ptr %44, align 8, !tbaa !9
  %545 = add nsw i64 %544, 1
  store i64 %545, ptr %44, align 8, !tbaa !9
  br label %535, !llvm.loop !13

546:                                              ; preds = %535
  br label %547

547:                                              ; preds = %546, %487
  br label %548

548:                                              ; preds = %547, %468
  %549 = load ptr, ptr %37, align 8, !tbaa !5
  %550 = load i64, ptr %549, align 8, !tbaa !9
  %551 = icmp eq i64 %550, 0
  br i1 %551, label %552, label %556

552:                                              ; preds = %548
  %553 = load ptr, ptr %23, align 8, !tbaa !5
  %554 = load i64, ptr %553, align 8, !tbaa !9
  %555 = load ptr, ptr %30, align 8, !tbaa !5
  store i64 %554, ptr %555, align 8, !tbaa !9
  br label %652

556:                                              ; preds = %548
  %557 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 0, ptr %557, align 8, !tbaa !9
  br label %558

558:                                              ; preds = %556, %449, %446
  %559 = load i64, ptr %63, align 8, !tbaa !9
  %560 = icmp ne i64 %559, 0
  br i1 %560, label %561, label %563

561:                                              ; preds = %558
  %562 = getelementptr inbounds [1 x i8], ptr %62, i64 0, i64 0
  store i8 66, ptr %562, align 1, !tbaa !15
  br label %565

563:                                              ; preds = %558
  %564 = getelementptr inbounds [1 x i8], ptr %62, i64 0, i64 0
  store i8 69, ptr %564, align 1, !tbaa !15
  br label %565

565:                                              ; preds = %563, %561
  store i64 1, ptr %67, align 8, !tbaa !9
  %566 = load i64, ptr %67, align 8, !tbaa !9
  %567 = load ptr, ptr %23, align 8, !tbaa !5
  %568 = load i64, ptr %567, align 8, !tbaa !9
  %569 = add nsw i64 %566, %568
  store i64 %569, ptr %73, align 8, !tbaa !9
  %570 = load i64, ptr %73, align 8, !tbaa !9
  %571 = load ptr, ptr %23, align 8, !tbaa !5
  %572 = load i64, ptr %571, align 8, !tbaa !9
  %573 = add nsw i64 %570, %572
  store i64 %573, ptr %74, align 8, !tbaa !9
  %574 = load ptr, ptr %21, align 8, !tbaa !5
  %575 = getelementptr inbounds [1 x i8], ptr %62, i64 0, i64 0
  %576 = load ptr, ptr %23, align 8, !tbaa !5
  %577 = load ptr, ptr %27, align 8, !tbaa !5
  %578 = load ptr, ptr %28, align 8, !tbaa !5
  %579 = load ptr, ptr %34, align 8, !tbaa !5
  %580 = load i64, ptr %51, align 8, !tbaa !9
  %581 = getelementptr inbounds float, ptr %579, i64 %580
  %582 = load ptr, ptr %34, align 8, !tbaa !5
  %583 = load i64, ptr %52, align 8, !tbaa !9
  %584 = getelementptr inbounds float, ptr %582, i64 %583
  %585 = load ptr, ptr %30, align 8, !tbaa !5
  %586 = load ptr, ptr %31, align 8, !tbaa !5
  %587 = getelementptr inbounds float, ptr %586, i64 1
  %588 = load ptr, ptr %35, align 8, !tbaa !5
  %589 = load i64, ptr %67, align 8, !tbaa !9
  %590 = getelementptr inbounds i64, ptr %588, i64 %589
  %591 = load ptr, ptr %35, align 8, !tbaa !5
  %592 = load i64, ptr %73, align 8, !tbaa !9
  %593 = getelementptr inbounds i64, ptr %591, i64 %592
  %594 = load ptr, ptr %34, align 8, !tbaa !5
  %595 = load i64, ptr %75, align 8, !tbaa !9
  %596 = getelementptr inbounds float, ptr %594, i64 %595
  %597 = load ptr, ptr %35, align 8, !tbaa !5
  %598 = load i64, ptr %74, align 8, !tbaa !9
  %599 = getelementptr inbounds i64, ptr %597, i64 %598
  %600 = load ptr, ptr %37, align 8, !tbaa !5
  %601 = call i32 @sstebz_(ptr noundef %574, ptr noundef %575, ptr noundef %576, ptr noundef %48, ptr noundef %49, ptr noundef %577, ptr noundef %578, ptr noundef %70, ptr noundef %581, ptr noundef %584, ptr noundef %585, ptr noundef %76, ptr noundef %587, ptr noundef %590, ptr noundef %593, ptr noundef %596, ptr noundef %599, ptr noundef %600)
  %602 = load i64, ptr %63, align 8, !tbaa !9
  %603 = icmp ne i64 %602, 0
  br i1 %603, label %604, label %651

604:                                              ; preds = %565
  %605 = load ptr, ptr %23, align 8, !tbaa !5
  %606 = load ptr, ptr %34, align 8, !tbaa !5
  %607 = load i64, ptr %51, align 8, !tbaa !9
  %608 = getelementptr inbounds float, ptr %606, i64 %607
  %609 = load ptr, ptr %34, align 8, !tbaa !5
  %610 = load i64, ptr %52, align 8, !tbaa !9
  %611 = getelementptr inbounds float, ptr %609, i64 %610
  %612 = load ptr, ptr %30, align 8, !tbaa !5
  %613 = load ptr, ptr %31, align 8, !tbaa !5
  %614 = getelementptr inbounds float, ptr %613, i64 1
  %615 = load ptr, ptr %35, align 8, !tbaa !5
  %616 = load i64, ptr %67, align 8, !tbaa !9
  %617 = getelementptr inbounds i64, ptr %615, i64 %616
  %618 = load ptr, ptr %35, align 8, !tbaa !5
  %619 = load i64, ptr %73, align 8, !tbaa !9
  %620 = getelementptr inbounds i64, ptr %618, i64 %619
  %621 = load ptr, ptr %32, align 8, !tbaa !5
  %622 = load i64, ptr %39, align 8, !tbaa !9
  %623 = getelementptr inbounds float, ptr %621, i64 %622
  %624 = load ptr, ptr %33, align 8, !tbaa !5
  %625 = load ptr, ptr %34, align 8, !tbaa !5
  %626 = load i64, ptr %75, align 8, !tbaa !9
  %627 = getelementptr inbounds float, ptr %625, i64 %626
  %628 = load ptr, ptr %35, align 8, !tbaa !5
  %629 = load i64, ptr %74, align 8, !tbaa !9
  %630 = getelementptr inbounds i64, ptr %628, i64 %629
  %631 = load ptr, ptr %36, align 8, !tbaa !5
  %632 = getelementptr inbounds i64, ptr %631, i64 1
  %633 = load ptr, ptr %37, align 8, !tbaa !5
  %634 = call i32 @sstein_(ptr noundef %605, ptr noundef %608, ptr noundef %611, ptr noundef %612, ptr noundef %614, ptr noundef %617, ptr noundef %620, ptr noundef %623, ptr noundef %624, ptr noundef %627, ptr noundef %630, ptr noundef %632, ptr noundef %633)
  %635 = load ptr, ptr %22, align 8, !tbaa !5
  %636 = load ptr, ptr %23, align 8, !tbaa !5
  %637 = load ptr, ptr %30, align 8, !tbaa !5
  %638 = load ptr, ptr %24, align 8, !tbaa !5
  %639 = getelementptr inbounds float, ptr %638, i64 1
  %640 = load ptr, ptr %34, align 8, !tbaa !5
  %641 = load i64, ptr %72, align 8, !tbaa !9
  %642 = getelementptr inbounds float, ptr %640, i64 %641
  %643 = load ptr, ptr %32, align 8, !tbaa !5
  %644 = load i64, ptr %39, align 8, !tbaa !9
  %645 = getelementptr inbounds float, ptr %643, i64 %644
  %646 = load ptr, ptr %33, align 8, !tbaa !5
  %647 = load ptr, ptr %34, align 8, !tbaa !5
  %648 = load i64, ptr %75, align 8, !tbaa !9
  %649 = getelementptr inbounds float, ptr %647, i64 %648
  %650 = call i32 @sopmtr_(ptr noundef @.str.4, ptr noundef %635, ptr noundef @.str.3, ptr noundef %636, ptr noundef %637, ptr noundef %639, ptr noundef %642, ptr noundef %645, ptr noundef %646, ptr noundef %649, ptr noundef %61)
  br label %651

651:                                              ; preds = %604, %565
  br label %652

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

655:                                              ; preds = %652
  %656 = load ptr, ptr %37, align 8, !tbaa !5
  %657 = load i64, ptr %656, align 8, !tbaa !9
  %658 = icmp eq i64 %657, 0
  br i1 %658, label %659, label %662

659:                                              ; preds = %655
  %660 = load ptr, ptr %30, align 8, !tbaa !5
  %661 = load i64, ptr %660, align 8, !tbaa !9
  store i64 %661, ptr %54, align 8, !tbaa !9
  br label %666

662:                                              ; preds = %655
  %663 = load ptr, ptr %37, align 8, !tbaa !5
  %664 = load i64, ptr %663, align 8, !tbaa !9
  %665 = sub nsw i64 %664, 1
  store i64 %665, ptr %54, align 8, !tbaa !9
  br label %666

666:                                              ; preds = %662, %659
  %667 = load float, ptr %60, align 4, !tbaa !11
  %668 = fdiv float 1.000000e+00, %667
  store float %668, ptr %42, align 4, !tbaa !11
  %669 = load ptr, ptr %31, align 8, !tbaa !5
  %670 = getelementptr inbounds float, ptr %669, i64 1
  %671 = call i32 @f2c_sscal(ptr noundef %54, ptr noundef %42, ptr noundef %670, ptr noundef @c__1)
  br label %672

672:                                              ; preds = %666, %652
  %673 = load i64, ptr %63, align 8, !tbaa !9
  %674 = icmp ne i64 %673, 0
  br i1 %674, label %675, label %794

675:                                              ; preds = %672
  %676 = load ptr, ptr %30, align 8, !tbaa !5
  %677 = load i64, ptr %676, align 8, !tbaa !9
  %678 = sub nsw i64 %677, 1
  store i64 %678, ptr %40, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %679

679:                                              ; preds = %790, %675
  %680 = load i64, ptr %45, align 8, !tbaa !9
  %681 = load i64, ptr %40, align 8, !tbaa !9
  %682 = icmp sle i64 %680, %681
  br i1 %682, label %683, label %793

683:                                              ; preds = %679
  store i64 0, ptr %44, align 8, !tbaa !9
  %684 = load ptr, ptr %31, align 8, !tbaa !5
  %685 = load i64, ptr %45, align 8, !tbaa !9
  %686 = getelementptr inbounds float, ptr %684, i64 %685
  %687 = load float, ptr %686, align 4, !tbaa !11
  store float %687, ptr %50, align 4, !tbaa !11
  %688 = load ptr, ptr %30, align 8, !tbaa !5
  %689 = load i64, ptr %688, align 8, !tbaa !9
  store i64 %689, ptr %41, align 8, !tbaa !9
  %690 = load i64, ptr %45, align 8, !tbaa !9
  %691 = add nsw i64 %690, 1
  store i64 %691, ptr %46, align 8, !tbaa !9
  br label %692

692:                                              ; preds = %710, %683
  %693 = load i64, ptr %46, align 8, !tbaa !9
  %694 = load i64, ptr %41, align 8, !tbaa !9
  %695 = icmp sle i64 %693, %694
  br i1 %695, label %696, label %713

696:                                              ; preds = %692
  %697 = load ptr, ptr %31, align 8, !tbaa !5
  %698 = load i64, ptr %46, align 8, !tbaa !9
  %699 = getelementptr inbounds float, ptr %697, i64 %698
  %700 = load float, ptr %699, align 4, !tbaa !11
  %701 = load float, ptr %50, align 4, !tbaa !11
  %702 = fcmp olt float %700, %701
  br i1 %702, label %703, label %709

703:                                              ; preds = %696
  %704 = load i64, ptr %46, align 8, !tbaa !9
  store i64 %704, ptr %44, align 8, !tbaa !9
  %705 = load ptr, ptr %31, align 8, !tbaa !5
  %706 = load i64, ptr %46, align 8, !tbaa !9
  %707 = getelementptr inbounds float, ptr %705, i64 %706
  %708 = load float, ptr %707, align 4, !tbaa !11
  store float %708, ptr %50, align 4, !tbaa !11
  br label %709

709:                                              ; preds = %703, %696
  br label %710

710:                                              ; preds = %709
  %711 = load i64, ptr %46, align 8, !tbaa !9
  %712 = add nsw i64 %711, 1
  store i64 %712, ptr %46, align 8, !tbaa !9
  br label %692, !llvm.loop !16

713:                                              ; preds = %692
  %714 = load i64, ptr %44, align 8, !tbaa !9
  %715 = icmp ne i64 %714, 0
  br i1 %715, label %716, label %789

716:                                              ; preds = %713
  %717 = load ptr, ptr %35, align 8, !tbaa !5
  %718 = load i64, ptr %67, align 8, !tbaa !9
  %719 = load i64, ptr %44, align 8, !tbaa !9
  %720 = add nsw i64 %718, %719
  %721 = sub nsw i64 %720, 1
  %722 = getelementptr inbounds i64, ptr %717, i64 %721
  %723 = load i64, ptr %722, align 8, !tbaa !9
  store i64 %723, ptr %58, align 8, !tbaa !9
  %724 = load ptr, ptr %31, align 8, !tbaa !5
  %725 = load i64, ptr %45, align 8, !tbaa !9
  %726 = getelementptr inbounds float, ptr %724, i64 %725
  %727 = load float, ptr %726, align 4, !tbaa !11
  %728 = load ptr, ptr %31, align 8, !tbaa !5
  %729 = load i64, ptr %44, align 8, !tbaa !9
  %730 = getelementptr inbounds float, ptr %728, i64 %729
  store float %727, ptr %730, align 4, !tbaa !11
  %731 = load ptr, ptr %35, align 8, !tbaa !5
  %732 = load i64, ptr %67, align 8, !tbaa !9
  %733 = load i64, ptr %45, align 8, !tbaa !9
  %734 = add nsw i64 %732, %733
  %735 = sub nsw i64 %734, 1
  %736 = getelementptr inbounds i64, ptr %731, i64 %735
  %737 = load i64, ptr %736, align 8, !tbaa !9
  %738 = load ptr, ptr %35, align 8, !tbaa !5
  %739 = load i64, ptr %67, align 8, !tbaa !9
  %740 = load i64, ptr %44, align 8, !tbaa !9
  %741 = add nsw i64 %739, %740
  %742 = sub nsw i64 %741, 1
  %743 = getelementptr inbounds i64, ptr %738, i64 %742
  store i64 %737, ptr %743, align 8, !tbaa !9
  %744 = load float, ptr %50, align 4, !tbaa !11
  %745 = load ptr, ptr %31, align 8, !tbaa !5
  %746 = load i64, ptr %45, align 8, !tbaa !9
  %747 = getelementptr inbounds float, ptr %745, i64 %746
  store float %744, ptr %747, align 4, !tbaa !11
  %748 = load i64, ptr %58, align 8, !tbaa !9
  %749 = load ptr, ptr %35, align 8, !tbaa !5
  %750 = load i64, ptr %67, align 8, !tbaa !9
  %751 = load i64, ptr %45, align 8, !tbaa !9
  %752 = add nsw i64 %750, %751
  %753 = sub nsw i64 %752, 1
  %754 = getelementptr inbounds i64, ptr %749, i64 %753
  store i64 %748, ptr %754, align 8, !tbaa !9
  %755 = load ptr, ptr %23, align 8, !tbaa !5
  %756 = load ptr, ptr %32, align 8, !tbaa !5
  %757 = load i64, ptr %44, align 8, !tbaa !9
  %758 = load i64, ptr %38, align 8, !tbaa !9
  %759 = mul nsw i64 %757, %758
  %760 = add nsw i64 %759, 1
  %761 = getelementptr inbounds float, ptr %756, i64 %760
  %762 = load ptr, ptr %32, align 8, !tbaa !5
  %763 = load i64, ptr %45, align 8, !tbaa !9
  %764 = load i64, ptr %38, align 8, !tbaa !9
  %765 = mul nsw i64 %763, %764
  %766 = add nsw i64 %765, 1
  %767 = getelementptr inbounds float, ptr %762, i64 %766
  %768 = call i32 @f2c_sswap(ptr noundef %755, ptr noundef %761, ptr noundef @c__1, ptr noundef %767, ptr noundef @c__1)
  %769 = load ptr, ptr %37, align 8, !tbaa !5
  %770 = load i64, ptr %769, align 8, !tbaa !9
  %771 = icmp ne i64 %770, 0
  br i1 %771, label %772, label %788

772:                                              ; preds = %716
  %773 = load ptr, ptr %36, align 8, !tbaa !5
  %774 = load i64, ptr %44, align 8, !tbaa !9
  %775 = getelementptr inbounds i64, ptr %773, i64 %774
  %776 = load i64, ptr %775, align 8, !tbaa !9
  store i64 %776, ptr %58, align 8, !tbaa !9
  %777 = load ptr, ptr %36, align 8, !tbaa !5
  %778 = load i64, ptr %45, align 8, !tbaa !9
  %779 = getelementptr inbounds i64, ptr %777, i64 %778
  %780 = load i64, ptr %779, align 8, !tbaa !9
  %781 = load ptr, ptr %36, align 8, !tbaa !5
  %782 = load i64, ptr %44, align 8, !tbaa !9
  %783 = getelementptr inbounds i64, ptr %781, i64 %782
  store i64 %780, ptr %783, align 8, !tbaa !9
  %784 = load i64, ptr %58, align 8, !tbaa !9
  %785 = load ptr, ptr %36, align 8, !tbaa !5
  %786 = load i64, ptr %45, align 8, !tbaa !9
  %787 = getelementptr inbounds i64, ptr %785, i64 %786
  store i64 %784, ptr %787, align 8, !tbaa !9
  br label %788

788:                                              ; preds = %772, %716
  br label %789

789:                                              ; preds = %788, %713
  br label %790

790:                                              ; preds = %789
  %791 = load i64, ptr %45, align 8, !tbaa !9
  %792 = add nsw i64 %791, 1
  store i64 %792, ptr %45, align 8, !tbaa !9
  br label %679, !llvm.loop !17

793:                                              ; preds = %679
  br label %794

794:                                              ; preds = %793, %672
  store i32 0, ptr %19, align 4
  store i32 1, ptr %78, align 4
  br label %795

795:                                              ; preds = %794, %293, %245, %235
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  %796 = load i32, ptr %19, align 4
  ret i32 %796
}

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8

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

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

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

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

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

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

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

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

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

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

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

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

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

70:                                               ; preds = %68
  %71 = load i64, ptr %13, align 8, !tbaa !5
  %72 = icmp slt i64 %71, 1
  %73 = icmp ult i64 %71, %51
  %or.cond377 = and i1 %.not, %73
  %or.cond380 = or i1 %72, %or.cond377
  br i1 %or.cond380, label %.thread347.sink.split, label %.thread

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

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

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

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

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

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

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

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

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

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

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

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

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

109:                                              ; preds = %91, %106
  %.sink = phi float [ %107, %106 ], [ 0.000000e+00, %91 ]
  %storemerge = phi float [ %108, %106 ], [ 0.000000e+00, %91 ]
  store float %.sink, ptr %21, align 4
  store float %storemerge, ptr %22, align 4, !tbaa !9
  %110 = tail call double @slansp_(ptr noundef nonnull @.str.9, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef %14) #6
  %111 = fptrunc double %110 to float
  %112 = fcmp ogt float %111, 0.000000e+00
  %113 = fcmp ogt float %sqrtf, %111
  %or.cond341 = select i1 %112, i1 %113, i1 false
  br i1 %or.cond341, label %116, label %114

114:                                              ; preds = %109
  %115 = fcmp olt float %104, %111
  br i1 %115, label %116, label %134

116:                                              ; preds = %114, %109
  %.pn = phi float [ %sqrtf, %109 ], [ %104, %114 ]
  %storemerge357 = fdiv float %.pn, %111
  store float %storemerge357, ptr %24, align 4, !tbaa !9
  %117 = load i64, ptr %3, align 8, !tbaa !5
  %118 = add nsw i64 %117, 1
  %119 = mul nsw i64 %118, %117
  %120 = sdiv i64 %119, 2
  store i64 %120, ptr %19, align 8, !tbaa !5
  %121 = call i32 @f2c_sscal(ptr noundef nonnull %19, ptr noundef nonnull %24, ptr noundef %4, ptr noundef nonnull @c__1) #6
  %122 = load float, ptr %9, align 4, !tbaa !9
  %123 = fcmp ogt float %122, 0.000000e+00
  br i1 %123, label %124, label %127

124:                                              ; preds = %116
  %125 = load float, ptr %24, align 4, !tbaa !9
  %126 = fmul float %122, %125
  store float %126, ptr %27, align 4, !tbaa !9
  br label %127

127:                                              ; preds = %124, %116
  br i1 %.not331, label %134, label %128

128:                                              ; preds = %127
  %129 = load float, ptr %5, align 4, !tbaa !9
  %130 = load float, ptr %24, align 4, !tbaa !9
  %131 = fmul float %129, %130
  store float %131, ptr %21, align 4, !tbaa !9
  %132 = load float, ptr %6, align 4, !tbaa !9
  %133 = fmul float %130, %132
  store float %133, ptr %22, align 4, !tbaa !9
  br label %134

134:                                              ; preds = %114, %127, %128
  %135 = phi i1 [ true, %127 ], [ true, %128 ], [ false, %114 ]
  %136 = load i64, ptr %3, align 8, !tbaa !5
  %reass.add = shl i64 %136, 1
  %137 = or disjoint i64 %reass.add, 1
  %138 = add nsw i64 %137, %136
  %139 = getelementptr float, ptr %14, i64 %reass.add
  %140 = getelementptr float, ptr %14, i64 %136
  %141 = call i32 @ssptrd_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef %139, ptr noundef %140, ptr noundef %14, ptr noundef nonnull %25) #6
  %.not332 = icmp eq i64 %39, 0
  br i1 %.not332, label %149, label %142

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

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

149:                                              ; preds = %145, %142, %134
  %150 = phi i1 [ false, %142 ], [ false, %134 ], [ %148, %145 ]
  %or.cond7 = or i1 %43, %150
  br i1 %or.cond7, label %151, label %180

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

154:                                              ; preds = %151
  %155 = call i32 @f2c_scopy(ptr noundef nonnull %3, ptr noundef %139, ptr noundef nonnull @c__1, ptr noundef %11, ptr noundef nonnull @c__1) #6
  %156 = load i64, ptr %3, align 8, !tbaa !5
  %157 = shl i64 %156, 1
  %158 = add nsw i64 %157, %138
  br i1 %.not, label %164, label %159

159:                                              ; preds = %154
  %160 = add nsw i64 %156, -1
  store i64 %160, ptr %19, align 8, !tbaa !5
  %161 = getelementptr inbounds float, ptr %33, i64 %158
  %162 = call i32 @f2c_scopy(ptr noundef nonnull %19, ptr noundef %140, ptr noundef nonnull @c__1, ptr noundef nonnull %161, ptr noundef nonnull @c__1) #6
  %163 = call i32 @ssterf_(ptr noundef nonnull %3, ptr noundef %11, ptr noundef nonnull %161, ptr noundef nonnull %17) #6
  br label %.loopexit359

164:                                              ; preds = %154
  %165 = getelementptr inbounds float, ptr %33, i64 %138
  %166 = call i32 @sopgtr_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef %14, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %165, ptr noundef nonnull %25) #6
  %167 = load i64, ptr %3, align 8, !tbaa !5
  %168 = add nsw i64 %167, -1
  store i64 %168, ptr %19, align 8, !tbaa !5
  %169 = getelementptr inbounds float, ptr %33, i64 %158
  %170 = call i32 @f2c_scopy(ptr noundef nonnull %19, ptr noundef %140, ptr noundef nonnull @c__1, ptr noundef nonnull %169, ptr noundef nonnull @c__1) #6
  %171 = call i32 @ssteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %11, ptr noundef nonnull %169, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %165, ptr noundef nonnull %17) #6
  %172 = load i64, ptr %17, align 8, !tbaa !5
  %173 = icmp eq i64 %172, 0
  br i1 %173, label %174, label %.thread353

174:                                              ; preds = %164
  %175 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %175, ptr %19, align 8, !tbaa !5
  %.not333360 = icmp slt i64 %175, 1
  br i1 %.not333360, label %.loopexit359, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %174
  %176 = shl nuw i64 %175, 3
  call void @llvm.memset.p0.i64(ptr align 8 %16, i8 0, i64 %176, i1 false), !tbaa !5
  br label %.loopexit359

.loopexit359:                                     ; preds = %.lr.ph.preheader, %174, %159
  %.pr352 = load i64, ptr %17, align 8, !tbaa !5
  %177 = icmp eq i64 %.pr352, 0
  br i1 %177, label %178, label %.thread353

178:                                              ; preds = %.loopexit359
  %179 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %179, ptr %10, align 8, !tbaa !5
  br label %189

.thread353:                                       ; preds = %164, %.loopexit359
  store i64 0, ptr %17, align 8, !tbaa !5
  br label %180

180:                                              ; preds = %149, %.thread353, %151
  %.343 = select i1 %.not, i8 66, i8 69
  store i8 %.343, ptr %26, align 1, !tbaa !11
  %181 = load i64, ptr %3, align 8, !tbaa !5
  %182 = getelementptr i64, ptr %15, i64 %181
  %183 = getelementptr inbounds float, ptr %33, i64 %138
  %.idx = shl i64 %181, 4
  %184 = getelementptr i8, ptr %15, i64 %.idx
  %185 = call i32 @sstebz_(ptr noundef %1, ptr noundef nonnull %26, ptr noundef nonnull %3, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %27, ptr noundef %139, ptr noundef %140, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef %11, ptr noundef %15, ptr noundef %182, ptr noundef nonnull %183, ptr noundef %184, ptr noundef nonnull %17) #6
  br i1 %.not, label %186, label %189

186:                                              ; preds = %180
  %187 = call i32 @sstein_(ptr noundef nonnull %3, ptr noundef %139, ptr noundef %140, ptr noundef nonnull %10, ptr noundef %11, ptr noundef %15, ptr noundef %182, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %183, ptr noundef %184, ptr noundef %16, ptr noundef nonnull %17) #6
  %188 = call i32 @sopmtr_(ptr noundef nonnull @.str.4, ptr noundef %2, ptr noundef nonnull @.str.3, ptr noundef nonnull %3, ptr noundef nonnull %10, ptr noundef %4, ptr noundef %14, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %183, ptr noundef nonnull %25) #6
  br label %189

189:                                              ; preds = %180, %186, %178
  br i1 %135, label %190, label %201

190:                                              ; preds = %189
  %191 = load i64, ptr %17, align 8, !tbaa !5
  %192 = icmp eq i64 %191, 0
  br i1 %192, label %193, label %195

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

195:                                              ; preds = %190
  %196 = add nsw i64 %191, -1
  br label %197

197:                                              ; preds = %195, %193
  %storemerge336 = phi i64 [ %196, %195 ], [ %194, %193 ]
  store i64 %storemerge336, ptr %23, align 8, !tbaa !5
  %198 = load float, ptr %24, align 4, !tbaa !9
  %199 = fdiv float 1.000000e+00, %198
  store float %199, ptr %20, align 4, !tbaa !9
  %200 = call i32 @f2c_sscal(ptr noundef nonnull %23, ptr noundef nonnull %20, ptr noundef %11, ptr noundef nonnull @c__1) #6
  br label %201

201:                                              ; preds = %197, %189
  br i1 %.not, label %202, label %.loopexit

202:                                              ; preds = %201
  %203 = load i64, ptr %10, align 8, !tbaa !5
  %204 = add nsw i64 %203, -1
  store i64 %204, ptr %19, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %32, i64 4
  %.not337370 = icmp slt i64 %203, 2
  br i1 %.not337370, label %.loopexit, label %.lr.ph373

.lr.ph373:                                        ; preds = %202, %._crit_edge.thread
  %.0304371 = phi i64 [ %208, %._crit_edge.thread ], [ 1, %202 ]
  %205 = getelementptr inbounds float, ptr %29, i64 %.0304371
  %206 = load float, ptr %205, align 4, !tbaa !9
  %207 = load i64, ptr %10, align 8, !tbaa !5
  %208 = add nuw nsw i64 %.0304371, 1
  %.not338362.not = icmp slt i64 %.0304371, %207
  br i1 %.not338362.not, label %.lr.ph366, label %._crit_edge.thread

.lr.ph366:                                        ; preds = %.lr.ph373, %.lr.ph366
  %.1365 = phi i64 [ %.2, %.lr.ph366 ], [ 0, %.lr.ph373 ]
  %.0306364 = phi i64 [ %212, %.lr.ph366 ], [ %208, %.lr.ph373 ]
  %.0307363 = phi float [ %.1308, %.lr.ph366 ], [ %206, %.lr.ph373 ]
  %209 = getelementptr inbounds float, ptr %29, i64 %.0306364
  %210 = load float, ptr %209, align 4, !tbaa !9
  %211 = fcmp olt float %210, %.0307363
  %.1308 = select i1 %211, float %210, float %.0307363
  %.2 = select i1 %211, i64 %.0306364, i64 %.1365
  %212 = add nuw nsw i64 %.0306364, 1
  %.not338.not = icmp slt i64 %.0306364, %207
  br i1 %.not338.not, label %.lr.ph366, label %._crit_edge, !llvm.loop !12

._crit_edge:                                      ; preds = %.lr.ph366
  %.not339 = icmp eq i64 %.2, 0
  br i1 %.not339, label %._crit_edge.thread, label %213

213:                                              ; preds = %._crit_edge
  %214 = getelementptr inbounds i64, ptr %34, i64 %.2
  %215 = load i64, ptr %214, align 8, !tbaa !5
  %216 = getelementptr inbounds float, ptr %29, i64 %.2
  store float %206, ptr %216, align 4, !tbaa !9
  %217 = getelementptr inbounds i64, ptr %34, i64 %.0304371
  %218 = load i64, ptr %217, align 8, !tbaa !5
  store i64 %218, ptr %214, align 8, !tbaa !5
  store float %.1308, ptr %205, align 4, !tbaa !9
  store i64 %215, ptr %217, align 8, !tbaa !5
  %219 = mul nsw i64 %.2, %30
  %gep = getelementptr float, ptr %invariant.gep, i64 %219
  %220 = mul nsw i64 %.0304371, %30
  %gep369 = getelementptr float, ptr %invariant.gep, i64 %220
  %221 = call i32 @f2c_sswap(ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep369, ptr noundef nonnull @c__1) #6
  %222 = load i64, ptr %17, align 8, !tbaa !5
  %.not340 = icmp eq i64 %222, 0
  br i1 %.not340, label %._crit_edge.thread, label %223

223:                                              ; preds = %213
  %224 = getelementptr inbounds i64, ptr %35, i64 %.2
  %225 = load i64, ptr %224, align 8, !tbaa !5
  %226 = getelementptr inbounds i64, ptr %35, i64 %.0304371
  %227 = load i64, ptr %226, align 8, !tbaa !5
  store i64 %227, ptr %224, align 8, !tbaa !5
  store i64 %225, ptr %226, align 8, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph373, %._crit_edge, %223, %213
  %228 = load i64, ptr %19, align 8, !tbaa !5
  %.not337.not = icmp slt i64 %.0304371, %228
  br i1 %.not337.not, label %.lr.ph373, label %.loopexit, !llvm.loop !14

.loopexit:                                        ; preds = %._crit_edge.thread, %202, %201, %89, %90, %.thread, %.thread347
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr nonnull %19) #6
  ret i32 0
}

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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


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