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

; 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"

%struct.complex = type { float, float }

@.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 [7 x i8], align 1
@c__1 = external hidden global i64, align 8
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@c__2 = external hidden global i64, align 8
@c__12 = external hidden global i64, align 8
@c__49 = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @chseqr_(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) #0 {
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca [2 x ptr], align 16
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca [2 x i64], align 16
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca %struct.complex, align 4
  %40 = alloca [2 x i8], align 1
  %41 = alloca [2401 x %struct.complex], align 16
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca [49 x %struct.complex], align 16
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca i32, align 4
  store ptr %0, ptr %15, align 8, !tbaa !5
  store ptr %1, ptr %16, align 8, !tbaa !5
  store ptr %2, ptr %17, align 8, !tbaa !5
  store ptr %3, ptr %18, align 8, !tbaa !5
  store ptr %4, ptr %19, align 8, !tbaa !5
  store ptr %5, ptr %20, align 8, !tbaa !5
  store ptr %6, ptr %21, align 8, !tbaa !5
  store ptr %7, ptr %22, align 8, !tbaa !5
  store ptr %8, ptr %23, align 8, !tbaa !5
  store ptr %9, ptr %24, align 8, !tbaa !5
  store ptr %10, ptr %25, align 8, !tbaa !5
  store ptr %11, ptr %26, align 8, !tbaa !5
  store ptr %12, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #3
  call void @llvm.lifetime.start.p0(i64 2, ptr %40) #3
  call void @llvm.lifetime.start.p0(i64 19208, ptr %41) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #3
  call void @llvm.lifetime.start.p0(i64 392, ptr %45) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #3
  %50 = load ptr, ptr %21, align 8, !tbaa !5
  %51 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %51, ptr %29, align 8, !tbaa !9
  %52 = load i64, ptr %29, align 8, !tbaa !9
  %53 = add nsw i64 1, %52
  store i64 %53, ptr %30, align 8, !tbaa !9
  %54 = load i64, ptr %30, align 8, !tbaa !9
  %55 = load ptr, ptr %20, align 8, !tbaa !5
  %56 = sub i64 0, %54
  %57 = getelementptr inbounds %struct.complex, ptr %55, i64 %56
  store ptr %57, ptr %20, align 8, !tbaa !5
  %58 = load ptr, ptr %22, align 8, !tbaa !5
  %59 = getelementptr inbounds %struct.complex, ptr %58, i32 -1
  store ptr %59, ptr %22, align 8, !tbaa !5
  %60 = load ptr, ptr %24, align 8, !tbaa !5
  %61 = load i64, ptr %60, align 8, !tbaa !9
  store i64 %61, ptr %31, align 8, !tbaa !9
  %62 = load i64, ptr %31, align 8, !tbaa !9
  %63 = add nsw i64 1, %62
  store i64 %63, ptr %32, align 8, !tbaa !9
  %64 = load i64, ptr %32, align 8, !tbaa !9
  %65 = load ptr, ptr %23, align 8, !tbaa !5
  %66 = sub i64 0, %64
  %67 = getelementptr inbounds %struct.complex, ptr %65, i64 %66
  store ptr %67, ptr %23, align 8, !tbaa !5
  %68 = load ptr, ptr %25, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.complex, ptr %68, i32 -1
  store ptr %69, ptr %25, align 8, !tbaa !5
  %70 = load ptr, ptr %15, align 8, !tbaa !5
  %71 = call i64 @lsame_(ptr noundef %70, ptr noundef @.str)
  store i64 %71, ptr %46, align 8, !tbaa !9
  %72 = load ptr, ptr %16, align 8, !tbaa !5
  %73 = call i64 @lsame_(ptr noundef %72, ptr noundef @.str.1)
  store i64 %73, ptr %44, align 8, !tbaa !9
  %74 = load i64, ptr %44, align 8, !tbaa !9
  %75 = icmp ne i64 %74, 0
  br i1 %75, label %80, label %76

76:                                               ; preds = %13
  %77 = load ptr, ptr %16, align 8, !tbaa !5
  %78 = call i64 @lsame_(ptr noundef %77, ptr noundef @.str.2)
  %79 = icmp ne i64 %78, 0
  br label %80

80:                                               ; preds = %76, %13
  %81 = phi i1 [ true, %13 ], [ %79, %76 ]
  %82 = zext i1 %81 to i32
  %83 = sext i32 %82 to i64
  store i64 %83, ptr %47, align 8, !tbaa !9
  %84 = load ptr, ptr %17, align 8, !tbaa !5
  %85 = load i64, ptr %84, align 8, !tbaa !9
  %86 = icmp sge i64 1, %85
  br i1 %86, label %87, label %88

87:                                               ; preds = %80
  br label %91

88:                                               ; preds = %80
  %89 = load ptr, ptr %17, align 8, !tbaa !5
  %90 = load i64, ptr %89, align 8, !tbaa !9
  br label %91

91:                                               ; preds = %88, %87
  %92 = phi i64 [ 1, %87 ], [ %90, %88 ]
  %93 = sitofp i64 %92 to float
  store float %93, ptr %36, align 4, !tbaa !11
  %94 = load float, ptr %36, align 4, !tbaa !11
  %95 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %94, ptr %95, align 4, !tbaa !13
  %96 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float 0.000000e+00, ptr %96, align 4, !tbaa !15
  %97 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %98 = load float, ptr %97, align 4, !tbaa !13
  %99 = load ptr, ptr %25, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.complex, ptr %99, i64 1
  %101 = getelementptr inbounds %struct.complex, ptr %100, i32 0, i32 0
  store float %98, ptr %101, align 4, !tbaa !13
  %102 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %103 = load float, ptr %102, align 4, !tbaa !15
  %104 = load ptr, ptr %25, align 8, !tbaa !5
  %105 = getelementptr inbounds %struct.complex, ptr %104, i64 1
  %106 = getelementptr inbounds %struct.complex, ptr %105, i32 0, i32 1
  store float %103, ptr %106, align 4, !tbaa !15
  %107 = load ptr, ptr %26, align 8, !tbaa !5
  %108 = load i64, ptr %107, align 8, !tbaa !9
  %109 = icmp eq i64 %108, -1
  %110 = zext i1 %109 to i32
  %111 = sext i32 %110 to i64
  store i64 %111, ptr %48, align 8, !tbaa !9
  %112 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 0, ptr %112, align 8, !tbaa !9
  %113 = load ptr, ptr %15, align 8, !tbaa !5
  %114 = call i64 @lsame_(ptr noundef %113, ptr noundef @.str.3)
  %115 = icmp ne i64 %114, 0
  br i1 %115, label %121, label %116

116:                                              ; preds = %91
  %117 = load i64, ptr %46, align 8, !tbaa !9
  %118 = icmp ne i64 %117, 0
  br i1 %118, label %121, label %119

119:                                              ; preds = %116
  %120 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -1, ptr %120, align 8, !tbaa !9
  br label %242

121:                                              ; preds = %116, %91
  %122 = load ptr, ptr %16, align 8, !tbaa !5
  %123 = call i64 @lsame_(ptr noundef %122, ptr noundef @.str.4)
  %124 = icmp ne i64 %123, 0
  br i1 %124, label %130, label %125

125:                                              ; preds = %121
  %126 = load i64, ptr %47, align 8, !tbaa !9
  %127 = icmp ne i64 %126, 0
  br i1 %127, label %130, label %128

128:                                              ; preds = %125
  %129 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -2, ptr %129, align 8, !tbaa !9
  br label %241

130:                                              ; preds = %125, %121
  %131 = load ptr, ptr %17, align 8, !tbaa !5
  %132 = load i64, ptr %131, align 8, !tbaa !9
  %133 = icmp slt i64 %132, 0
  br i1 %133, label %134, label %136

134:                                              ; preds = %130
  %135 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -3, ptr %135, align 8, !tbaa !9
  br label %240

136:                                              ; preds = %130
  %137 = load ptr, ptr %18, align 8, !tbaa !5
  %138 = load i64, ptr %137, align 8, !tbaa !9
  %139 = icmp slt i64 %138, 1
  br i1 %139, label %153, label %140

140:                                              ; preds = %136
  %141 = load ptr, ptr %18, align 8, !tbaa !5
  %142 = load i64, ptr %141, align 8, !tbaa !9
  %143 = load ptr, ptr %17, align 8, !tbaa !5
  %144 = load i64, ptr %143, align 8, !tbaa !9
  %145 = icmp sge i64 1, %144
  br i1 %145, label %146, label %147

146:                                              ; preds = %140
  br label %150

147:                                              ; preds = %140
  %148 = load ptr, ptr %17, align 8, !tbaa !5
  %149 = load i64, ptr %148, align 8, !tbaa !9
  br label %150

150:                                              ; preds = %147, %146
  %151 = phi i64 [ 1, %146 ], [ %149, %147 ]
  %152 = icmp sgt i64 %142, %151
  br i1 %152, label %153, label %155

153:                                              ; preds = %150, %136
  %154 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -4, ptr %154, align 8, !tbaa !9
  br label %239

155:                                              ; preds = %150
  %156 = load ptr, ptr %19, align 8, !tbaa !5
  %157 = load i64, ptr %156, align 8, !tbaa !9
  %158 = load ptr, ptr %18, align 8, !tbaa !5
  %159 = load i64, ptr %158, align 8, !tbaa !9
  %160 = load ptr, ptr %17, align 8, !tbaa !5
  %161 = load i64, ptr %160, align 8, !tbaa !9
  %162 = icmp sle i64 %159, %161
  br i1 %162, label %163, label %166

163:                                              ; preds = %155
  %164 = load ptr, ptr %18, align 8, !tbaa !5
  %165 = load i64, ptr %164, align 8, !tbaa !9
  br label %169

166:                                              ; preds = %155
  %167 = load ptr, ptr %17, align 8, !tbaa !5
  %168 = load i64, ptr %167, align 8, !tbaa !9
  br label %169

169:                                              ; preds = %166, %163
  %170 = phi i64 [ %165, %163 ], [ %168, %166 ]
  %171 = icmp slt i64 %157, %170
  br i1 %171, label %178, label %172

172:                                              ; preds = %169
  %173 = load ptr, ptr %19, align 8, !tbaa !5
  %174 = load i64, ptr %173, align 8, !tbaa !9
  %175 = load ptr, ptr %17, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = icmp sgt i64 %174, %176
  br i1 %177, label %178, label %180

178:                                              ; preds = %172, %169
  %179 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -5, ptr %179, align 8, !tbaa !9
  br label %238

180:                                              ; preds = %172
  %181 = load ptr, ptr %21, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  %183 = load ptr, ptr %17, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = icmp sge i64 1, %184
  br i1 %185, label %186, label %187

186:                                              ; preds = %180
  br label %190

187:                                              ; preds = %180
  %188 = load ptr, ptr %17, align 8, !tbaa !5
  %189 = load i64, ptr %188, align 8, !tbaa !9
  br label %190

190:                                              ; preds = %187, %186
  %191 = phi i64 [ 1, %186 ], [ %189, %187 ]
  %192 = icmp slt i64 %182, %191
  br i1 %192, label %193, label %195

193:                                              ; preds = %190
  %194 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -7, ptr %194, align 8, !tbaa !9
  br label %237

195:                                              ; preds = %190
  %196 = load ptr, ptr %24, align 8, !tbaa !5
  %197 = load i64, ptr %196, align 8, !tbaa !9
  %198 = icmp slt i64 %197, 1
  br i1 %198, label %215, label %199

199:                                              ; preds = %195
  %200 = load i64, ptr %47, align 8, !tbaa !9
  %201 = icmp ne i64 %200, 0
  br i1 %201, label %202, label %217

202:                                              ; preds = %199
  %203 = load ptr, ptr %24, align 8, !tbaa !5
  %204 = load i64, ptr %203, align 8, !tbaa !9
  %205 = load ptr, ptr %17, align 8, !tbaa !5
  %206 = load i64, ptr %205, align 8, !tbaa !9
  %207 = icmp sge i64 1, %206
  br i1 %207, label %208, label %209

208:                                              ; preds = %202
  br label %212

209:                                              ; preds = %202
  %210 = load ptr, ptr %17, align 8, !tbaa !5
  %211 = load i64, ptr %210, align 8, !tbaa !9
  br label %212

212:                                              ; preds = %209, %208
  %213 = phi i64 [ 1, %208 ], [ %211, %209 ]
  %214 = icmp slt i64 %204, %213
  br i1 %214, label %215, label %217

215:                                              ; preds = %212, %195
  %216 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -10, ptr %216, align 8, !tbaa !9
  br label %236

217:                                              ; preds = %212, %199
  %218 = load ptr, ptr %26, align 8, !tbaa !5
  %219 = load i64, ptr %218, align 8, !tbaa !9
  %220 = load ptr, ptr %17, align 8, !tbaa !5
  %221 = load i64, ptr %220, align 8, !tbaa !9
  %222 = icmp sge i64 1, %221
  br i1 %222, label %223, label %224

223:                                              ; preds = %217
  br label %227

224:                                              ; preds = %217
  %225 = load ptr, ptr %17, align 8, !tbaa !5
  %226 = load i64, ptr %225, align 8, !tbaa !9
  br label %227

227:                                              ; preds = %224, %223
  %228 = phi i64 [ 1, %223 ], [ %226, %224 ]
  %229 = icmp slt i64 %219, %228
  br i1 %229, label %230, label %235

230:                                              ; preds = %227
  %231 = load i64, ptr %48, align 8, !tbaa !9
  %232 = icmp ne i64 %231, 0
  br i1 %232, label %235, label %233

233:                                              ; preds = %230
  %234 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -12, ptr %234, align 8, !tbaa !9
  br label %235

235:                                              ; preds = %233, %230, %227
  br label %236

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

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

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

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

240:                                              ; preds = %239, %134
  br label %241

241:                                              ; preds = %240, %128
  br label %242

242:                                              ; preds = %241, %119
  %243 = load ptr, ptr %27, align 8, !tbaa !5
  %244 = load i64, ptr %243, align 8, !tbaa !9
  %245 = icmp ne i64 %244, 0
  br i1 %245, label %246, label %251

246:                                              ; preds = %242
  %247 = load ptr, ptr %27, align 8, !tbaa !5
  %248 = load i64, ptr %247, align 8, !tbaa !9
  %249 = sub nsw i64 0, %248
  store i64 %249, ptr %33, align 8, !tbaa !9
  %250 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %33)
  store i32 0, ptr %14, align 4
  store i32 1, ptr %49, align 4
  br label %638

251:                                              ; preds = %242
  %252 = load ptr, ptr %17, align 8, !tbaa !5
  %253 = load i64, ptr %252, align 8, !tbaa !9
  %254 = icmp eq i64 %253, 0
  br i1 %254, label %255, label %256

255:                                              ; preds = %251
  store i32 0, ptr %14, align 4
  store i32 1, ptr %49, align 4
  br label %638

256:                                              ; preds = %251
  %257 = load i64, ptr %48, align 8, !tbaa !9
  %258 = icmp ne i64 %257, 0
  br i1 %258, label %259, label %318

259:                                              ; preds = %256
  %260 = load ptr, ptr %17, align 8, !tbaa !5
  %261 = load ptr, ptr %18, align 8, !tbaa !5
  %262 = load ptr, ptr %19, align 8, !tbaa !5
  %263 = load ptr, ptr %20, align 8, !tbaa !5
  %264 = load i64, ptr %30, align 8, !tbaa !9
  %265 = getelementptr inbounds %struct.complex, ptr %263, i64 %264
  %266 = load ptr, ptr %21, align 8, !tbaa !5
  %267 = load ptr, ptr %22, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.complex, ptr %267, i64 1
  %269 = load ptr, ptr %18, align 8, !tbaa !5
  %270 = load ptr, ptr %19, align 8, !tbaa !5
  %271 = load ptr, ptr %23, align 8, !tbaa !5
  %272 = load i64, ptr %32, align 8, !tbaa !9
  %273 = getelementptr inbounds %struct.complex, ptr %271, i64 %272
  %274 = load ptr, ptr %24, align 8, !tbaa !5
  %275 = load ptr, ptr %25, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.complex, ptr %275, i64 1
  %277 = load ptr, ptr %26, align 8, !tbaa !5
  %278 = load ptr, ptr %27, align 8, !tbaa !5
  %279 = call i32 @claqr0_(ptr noundef %46, ptr noundef %47, ptr noundef %260, ptr noundef %261, ptr noundef %262, ptr noundef %265, ptr noundef %266, ptr noundef %268, ptr noundef %269, ptr noundef %270, ptr noundef %273, ptr noundef %274, ptr noundef %276, ptr noundef %277, ptr noundef %278)
  %280 = load ptr, ptr %25, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.complex, ptr %280, i64 1
  %282 = getelementptr inbounds %struct.complex, ptr %281, i32 0, i32 0
  %283 = load float, ptr %282, align 4, !tbaa !13
  store float %283, ptr %37, align 4, !tbaa !11
  %284 = load ptr, ptr %17, align 8, !tbaa !5
  %285 = load i64, ptr %284, align 8, !tbaa !9
  %286 = icmp sge i64 1, %285
  br i1 %286, label %287, label %288

287:                                              ; preds = %259
  br label %291

288:                                              ; preds = %259
  %289 = load ptr, ptr %17, align 8, !tbaa !5
  %290 = load i64, ptr %289, align 8, !tbaa !9
  br label %291

291:                                              ; preds = %288, %287
  %292 = phi i64 [ 1, %287 ], [ %290, %288 ]
  %293 = sitofp i64 %292 to float
  store float %293, ptr %38, align 4, !tbaa !11
  %294 = load float, ptr %37, align 4, !tbaa !11
  %295 = load float, ptr %38, align 4, !tbaa !11
  %296 = fcmp oge float %294, %295
  br i1 %296, label %297, label %299

297:                                              ; preds = %291
  %298 = load float, ptr %37, align 4, !tbaa !11
  br label %301

299:                                              ; preds = %291
  %300 = load float, ptr %38, align 4, !tbaa !11
  br label %301

301:                                              ; preds = %299, %297
  %302 = phi float [ %298, %297 ], [ %300, %299 ]
  %303 = fpext float %302 to double
  %304 = fptrunc double %303 to float
  store float %304, ptr %36, align 4, !tbaa !11
  %305 = load float, ptr %36, align 4, !tbaa !11
  %306 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %305, ptr %306, align 4, !tbaa !13
  %307 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float 0.000000e+00, ptr %307, align 4, !tbaa !15
  %308 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %309 = load float, ptr %308, align 4, !tbaa !13
  %310 = load ptr, ptr %25, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.complex, ptr %310, i64 1
  %312 = getelementptr inbounds %struct.complex, ptr %311, i32 0, i32 0
  store float %309, ptr %312, align 4, !tbaa !13
  %313 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %314 = load float, ptr %313, align 4, !tbaa !15
  %315 = load ptr, ptr %25, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.complex, ptr %315, i64 1
  %317 = getelementptr inbounds %struct.complex, ptr %316, i32 0, i32 1
  store float %314, ptr %317, align 4, !tbaa !15
  store i32 0, ptr %14, align 4
  store i32 1, ptr %49, align 4
  br label %638

318:                                              ; preds = %256
  %319 = load ptr, ptr %18, align 8, !tbaa !5
  %320 = load i64, ptr %319, align 8, !tbaa !9
  %321 = icmp sgt i64 %320, 1
  br i1 %321, label %322, label %335

322:                                              ; preds = %318
  %323 = load ptr, ptr %18, align 8, !tbaa !5
  %324 = load i64, ptr %323, align 8, !tbaa !9
  %325 = sub nsw i64 %324, 1
  store i64 %325, ptr %33, align 8, !tbaa !9
  %326 = load ptr, ptr %21, align 8, !tbaa !5
  %327 = load i64, ptr %326, align 8, !tbaa !9
  %328 = add nsw i64 %327, 1
  store i64 %328, ptr %34, align 8, !tbaa !9
  %329 = load ptr, ptr %20, align 8, !tbaa !5
  %330 = load i64, ptr %30, align 8, !tbaa !9
  %331 = getelementptr inbounds %struct.complex, ptr %329, i64 %330
  %332 = load ptr, ptr %22, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.complex, ptr %332, i64 1
  %334 = call i32 @f2c_ccopy(ptr noundef %33, ptr noundef %331, ptr noundef %34, ptr noundef %333, ptr noundef @c__1)
  br label %335

335:                                              ; preds = %322, %318
  %336 = load ptr, ptr %19, align 8, !tbaa !5
  %337 = load i64, ptr %336, align 8, !tbaa !9
  %338 = load ptr, ptr %17, align 8, !tbaa !5
  %339 = load i64, ptr %338, align 8, !tbaa !9
  %340 = icmp slt i64 %337, %339
  br i1 %340, label %341, label %367

341:                                              ; preds = %335
  %342 = load ptr, ptr %17, align 8, !tbaa !5
  %343 = load i64, ptr %342, align 8, !tbaa !9
  %344 = load ptr, ptr %19, align 8, !tbaa !5
  %345 = load i64, ptr %344, align 8, !tbaa !9
  %346 = sub nsw i64 %343, %345
  store i64 %346, ptr %33, align 8, !tbaa !9
  %347 = load ptr, ptr %21, align 8, !tbaa !5
  %348 = load i64, ptr %347, align 8, !tbaa !9
  %349 = add nsw i64 %348, 1
  store i64 %349, ptr %34, align 8, !tbaa !9
  %350 = load ptr, ptr %20, align 8, !tbaa !5
  %351 = load ptr, ptr %19, align 8, !tbaa !5
  %352 = load i64, ptr %351, align 8, !tbaa !9
  %353 = add nsw i64 %352, 1
  %354 = load ptr, ptr %19, align 8, !tbaa !5
  %355 = load i64, ptr %354, align 8, !tbaa !9
  %356 = add nsw i64 %355, 1
  %357 = load i64, ptr %29, align 8, !tbaa !9
  %358 = mul nsw i64 %356, %357
  %359 = add nsw i64 %353, %358
  %360 = getelementptr inbounds %struct.complex, ptr %350, i64 %359
  %361 = load ptr, ptr %22, align 8, !tbaa !5
  %362 = load ptr, ptr %19, align 8, !tbaa !5
  %363 = load i64, ptr %362, align 8, !tbaa !9
  %364 = add nsw i64 %363, 1
  %365 = getelementptr inbounds %struct.complex, ptr %361, i64 %364
  %366 = call i32 @f2c_ccopy(ptr noundef %33, ptr noundef %360, ptr noundef %34, ptr noundef %365, ptr noundef @c__1)
  br label %367

367:                                              ; preds = %341, %335
  %368 = load i64, ptr %44, align 8, !tbaa !9
  %369 = icmp ne i64 %368, 0
  br i1 %369, label %370, label %378

370:                                              ; preds = %367
  %371 = load ptr, ptr %17, align 8, !tbaa !5
  %372 = load ptr, ptr %17, align 8, !tbaa !5
  %373 = load ptr, ptr %23, align 8, !tbaa !5
  %374 = load i64, ptr %32, align 8, !tbaa !9
  %375 = getelementptr inbounds %struct.complex, ptr %373, i64 %374
  %376 = load ptr, ptr %24, align 8, !tbaa !5
  %377 = call i32 @claset_(ptr noundef @.str.6, ptr noundef %371, ptr noundef %372, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %375, ptr noundef %376)
  br label %378

378:                                              ; preds = %370, %367
  %379 = load ptr, ptr %18, align 8, !tbaa !5
  %380 = load i64, ptr %379, align 8, !tbaa !9
  %381 = load ptr, ptr %19, align 8, !tbaa !5
  %382 = load i64, ptr %381, align 8, !tbaa !9
  %383 = icmp eq i64 %380, %382
  br i1 %383, label %384, label %412

384:                                              ; preds = %378
  %385 = load ptr, ptr %18, align 8, !tbaa !5
  %386 = load i64, ptr %385, align 8, !tbaa !9
  store i64 %386, ptr %33, align 8, !tbaa !9
  %387 = load ptr, ptr %18, align 8, !tbaa !5
  %388 = load i64, ptr %387, align 8, !tbaa !9
  %389 = load ptr, ptr %18, align 8, !tbaa !5
  %390 = load i64, ptr %389, align 8, !tbaa !9
  %391 = load i64, ptr %29, align 8, !tbaa !9
  %392 = mul nsw i64 %390, %391
  %393 = add nsw i64 %388, %392
  store i64 %393, ptr %34, align 8, !tbaa !9
  %394 = load ptr, ptr %20, align 8, !tbaa !5
  %395 = load i64, ptr %34, align 8, !tbaa !9
  %396 = getelementptr inbounds %struct.complex, ptr %394, i64 %395
  %397 = getelementptr inbounds %struct.complex, ptr %396, i32 0, i32 0
  %398 = load float, ptr %397, align 4, !tbaa !13
  %399 = load ptr, ptr %22, align 8, !tbaa !5
  %400 = load i64, ptr %33, align 8, !tbaa !9
  %401 = getelementptr inbounds %struct.complex, ptr %399, i64 %400
  %402 = getelementptr inbounds %struct.complex, ptr %401, i32 0, i32 0
  store float %398, ptr %402, align 4, !tbaa !13
  %403 = load ptr, ptr %20, align 8, !tbaa !5
  %404 = load i64, ptr %34, align 8, !tbaa !9
  %405 = getelementptr inbounds %struct.complex, ptr %403, i64 %404
  %406 = getelementptr inbounds %struct.complex, ptr %405, i32 0, i32 1
  %407 = load float, ptr %406, align 4, !tbaa !15
  %408 = load ptr, ptr %22, align 8, !tbaa !5
  %409 = load i64, ptr %33, align 8, !tbaa !9
  %410 = getelementptr inbounds %struct.complex, ptr %408, i64 %409
  %411 = getelementptr inbounds %struct.complex, ptr %410, i32 0, i32 1
  store float %407, ptr %411, align 4, !tbaa !15
  store i32 0, ptr %14, align 4
  store i32 1, ptr %49, align 4
  br label %638

412:                                              ; preds = %378
  %413 = getelementptr inbounds [2 x i64], ptr %35, i64 0, i64 0
  store i64 1, ptr %413, align 16, !tbaa !9
  %414 = load ptr, ptr %15, align 8, !tbaa !5
  %415 = getelementptr inbounds [2 x ptr], ptr %28, i64 0, i64 0
  store ptr %414, ptr %415, align 16, !tbaa !5
  %416 = getelementptr inbounds [2 x i64], ptr %35, i64 0, i64 1
  store i64 1, ptr %416, align 8, !tbaa !9
  %417 = load ptr, ptr %16, align 8, !tbaa !5
  %418 = getelementptr inbounds [2 x ptr], ptr %28, i64 0, i64 1
  store ptr %417, ptr %418, align 8, !tbaa !5
  %419 = getelementptr inbounds [2 x i8], ptr %40, i64 0, i64 0
  %420 = getelementptr inbounds [2 x ptr], ptr %28, i64 0, i64 0
  %421 = getelementptr inbounds [2 x i64], ptr %35, i64 0, i64 0
  %422 = call i32 @s_cat(ptr noundef %419, ptr noundef %420, ptr noundef %421, ptr noundef @c__2, i64 noundef 2)
  %423 = getelementptr inbounds [2 x i8], ptr %40, i64 0, i64 0
  %424 = load ptr, ptr %17, align 8, !tbaa !5
  %425 = load ptr, ptr %18, align 8, !tbaa !5
  %426 = load ptr, ptr %19, align 8, !tbaa !5
  %427 = load ptr, ptr %26, align 8, !tbaa !5
  %428 = call i64 @ilaenv_(ptr noundef @c__12, ptr noundef @.str.5, ptr noundef %423, ptr noundef %424, ptr noundef %425, ptr noundef %426, ptr noundef %427)
  store i64 %428, ptr %43, align 8, !tbaa !9
  %429 = load i64, ptr %43, align 8, !tbaa !9
  %430 = icmp sge i64 11, %429
  br i1 %430, label %431, label %432

431:                                              ; preds = %412
  br label %434

432:                                              ; preds = %412
  %433 = load i64, ptr %43, align 8, !tbaa !9
  br label %434

434:                                              ; preds = %432, %431
  %435 = phi i64 [ 11, %431 ], [ %433, %432 ]
  store i64 %435, ptr %43, align 8, !tbaa !9
  %436 = load ptr, ptr %17, align 8, !tbaa !5
  %437 = load i64, ptr %436, align 8, !tbaa !9
  %438 = load i64, ptr %43, align 8, !tbaa !9
  %439 = icmp sgt i64 %437, %438
  br i1 %439, label %440, label %461

440:                                              ; preds = %434
  %441 = load ptr, ptr %17, align 8, !tbaa !5
  %442 = load ptr, ptr %18, align 8, !tbaa !5
  %443 = load ptr, ptr %19, align 8, !tbaa !5
  %444 = load ptr, ptr %20, align 8, !tbaa !5
  %445 = load i64, ptr %30, align 8, !tbaa !9
  %446 = getelementptr inbounds %struct.complex, ptr %444, i64 %445
  %447 = load ptr, ptr %21, align 8, !tbaa !5
  %448 = load ptr, ptr %22, align 8, !tbaa !5
  %449 = getelementptr inbounds %struct.complex, ptr %448, i64 1
  %450 = load ptr, ptr %18, align 8, !tbaa !5
  %451 = load ptr, ptr %19, align 8, !tbaa !5
  %452 = load ptr, ptr %23, align 8, !tbaa !5
  %453 = load i64, ptr %32, align 8, !tbaa !9
  %454 = getelementptr inbounds %struct.complex, ptr %452, i64 %453
  %455 = load ptr, ptr %24, align 8, !tbaa !5
  %456 = load ptr, ptr %25, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.complex, ptr %456, i64 1
  %458 = load ptr, ptr %26, align 8, !tbaa !5
  %459 = load ptr, ptr %27, align 8, !tbaa !5
  %460 = call i32 @claqr0_(ptr noundef %46, ptr noundef %47, ptr noundef %441, ptr noundef %442, ptr noundef %443, ptr noundef %446, ptr noundef %447, ptr noundef %449, ptr noundef %450, ptr noundef %451, ptr noundef %454, ptr noundef %455, ptr noundef %457, ptr noundef %458, ptr noundef %459)
  br label %572

461:                                              ; preds = %434
  %462 = load ptr, ptr %17, align 8, !tbaa !5
  %463 = load ptr, ptr %18, align 8, !tbaa !5
  %464 = load ptr, ptr %19, align 8, !tbaa !5
  %465 = load ptr, ptr %20, align 8, !tbaa !5
  %466 = load i64, ptr %30, align 8, !tbaa !9
  %467 = getelementptr inbounds %struct.complex, ptr %465, i64 %466
  %468 = load ptr, ptr %21, align 8, !tbaa !5
  %469 = load ptr, ptr %22, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.complex, ptr %469, i64 1
  %471 = load ptr, ptr %18, align 8, !tbaa !5
  %472 = load ptr, ptr %19, align 8, !tbaa !5
  %473 = load ptr, ptr %23, align 8, !tbaa !5
  %474 = load i64, ptr %32, align 8, !tbaa !9
  %475 = getelementptr inbounds %struct.complex, ptr %473, i64 %474
  %476 = load ptr, ptr %24, align 8, !tbaa !5
  %477 = load ptr, ptr %27, align 8, !tbaa !5
  %478 = call i32 @clahqr_(ptr noundef %46, ptr noundef %47, ptr noundef %462, ptr noundef %463, ptr noundef %464, ptr noundef %467, ptr noundef %468, ptr noundef %470, ptr noundef %471, ptr noundef %472, ptr noundef %475, ptr noundef %476, ptr noundef %477)
  %479 = load ptr, ptr %27, align 8, !tbaa !5
  %480 = load i64, ptr %479, align 8, !tbaa !9
  %481 = icmp sgt i64 %480, 0
  br i1 %481, label %482, label %571

482:                                              ; preds = %461
  %483 = load ptr, ptr %27, align 8, !tbaa !5
  %484 = load i64, ptr %483, align 8, !tbaa !9
  store i64 %484, ptr %42, align 8, !tbaa !9
  %485 = load ptr, ptr %17, align 8, !tbaa !5
  %486 = load i64, ptr %485, align 8, !tbaa !9
  %487 = icmp sge i64 %486, 49
  br i1 %487, label %488, label %508

488:                                              ; preds = %482
  %489 = load ptr, ptr %17, align 8, !tbaa !5
  %490 = load ptr, ptr %18, align 8, !tbaa !5
  %491 = load ptr, ptr %20, align 8, !tbaa !5
  %492 = load i64, ptr %30, align 8, !tbaa !9
  %493 = getelementptr inbounds %struct.complex, ptr %491, i64 %492
  %494 = load ptr, ptr %21, align 8, !tbaa !5
  %495 = load ptr, ptr %22, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.complex, ptr %495, i64 1
  %497 = load ptr, ptr %18, align 8, !tbaa !5
  %498 = load ptr, ptr %19, align 8, !tbaa !5
  %499 = load ptr, ptr %23, align 8, !tbaa !5
  %500 = load i64, ptr %32, align 8, !tbaa !9
  %501 = getelementptr inbounds %struct.complex, ptr %499, i64 %500
  %502 = load ptr, ptr %24, align 8, !tbaa !5
  %503 = load ptr, ptr %25, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.complex, ptr %503, i64 1
  %505 = load ptr, ptr %26, align 8, !tbaa !5
  %506 = load ptr, ptr %27, align 8, !tbaa !5
  %507 = call i32 @claqr0_(ptr noundef %46, ptr noundef %47, ptr noundef %489, ptr noundef %490, ptr noundef %42, ptr noundef %493, ptr noundef %494, ptr noundef %496, ptr noundef %497, ptr noundef %498, ptr noundef %501, ptr noundef %502, ptr noundef %504, ptr noundef %505, ptr noundef %506)
  br label %570

508:                                              ; preds = %482
  %509 = load ptr, ptr %17, align 8, !tbaa !5
  %510 = load ptr, ptr %17, align 8, !tbaa !5
  %511 = load ptr, ptr %20, align 8, !tbaa !5
  %512 = load i64, ptr %30, align 8, !tbaa !9
  %513 = getelementptr inbounds %struct.complex, ptr %511, i64 %512
  %514 = load ptr, ptr %21, align 8, !tbaa !5
  %515 = getelementptr inbounds [2401 x %struct.complex], ptr %41, i64 0, i64 0
  %516 = call i32 @clacpy_(ptr noundef @.str.6, ptr noundef %509, ptr noundef %510, ptr noundef %513, ptr noundef %514, ptr noundef %515, ptr noundef @c__49)
  %517 = load ptr, ptr %17, align 8, !tbaa !5
  %518 = load i64, ptr %517, align 8, !tbaa !9
  %519 = add nsw i64 %518, 1
  %520 = load ptr, ptr %17, align 8, !tbaa !5
  %521 = load i64, ptr %520, align 8, !tbaa !9
  %522 = mul nsw i64 %521, 49
  %523 = add nsw i64 %519, %522
  %524 = sub nsw i64 %523, 50
  store i64 %524, ptr %33, align 8, !tbaa !9
  %525 = load i64, ptr %33, align 8, !tbaa !9
  %526 = getelementptr inbounds [2401 x %struct.complex], ptr %41, i64 0, i64 %525
  %527 = getelementptr inbounds %struct.complex, ptr %526, i32 0, i32 0
  store float 0.000000e+00, ptr %527, align 8, !tbaa !13
  %528 = load i64, ptr %33, align 8, !tbaa !9
  %529 = getelementptr inbounds [2401 x %struct.complex], ptr %41, i64 0, i64 %528
  %530 = getelementptr inbounds %struct.complex, ptr %529, i32 0, i32 1
  store float 0.000000e+00, ptr %530, align 4, !tbaa !15
  %531 = load ptr, ptr %17, align 8, !tbaa !5
  %532 = load i64, ptr %531, align 8, !tbaa !9
  %533 = sub nsw i64 49, %532
  store i64 %533, ptr %33, align 8, !tbaa !9
  %534 = load ptr, ptr %17, align 8, !tbaa !5
  %535 = load i64, ptr %534, align 8, !tbaa !9
  %536 = add nsw i64 %535, 1
  %537 = mul nsw i64 %536, 49
  %538 = sub nsw i64 %537, 49
  %539 = getelementptr inbounds [2401 x %struct.complex], ptr %41, i64 0, i64 %538
  %540 = call i32 @claset_(ptr noundef @.str.6, ptr noundef @c__49, ptr noundef %33, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %539, ptr noundef @c__49)
  %541 = load ptr, ptr %18, align 8, !tbaa !5
  %542 = getelementptr inbounds [2401 x %struct.complex], ptr %41, i64 0, i64 0
  %543 = load ptr, ptr %22, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.complex, ptr %543, i64 1
  %545 = load ptr, ptr %18, align 8, !tbaa !5
  %546 = load ptr, ptr %19, align 8, !tbaa !5
  %547 = load ptr, ptr %23, align 8, !tbaa !5
  %548 = load i64, ptr %32, align 8, !tbaa !9
  %549 = getelementptr inbounds %struct.complex, ptr %547, i64 %548
  %550 = load ptr, ptr %24, align 8, !tbaa !5
  %551 = getelementptr inbounds [49 x %struct.complex], ptr %45, i64 0, i64 0
  %552 = load ptr, ptr %27, align 8, !tbaa !5
  %553 = call i32 @claqr0_(ptr noundef %46, ptr noundef %47, ptr noundef @c__49, ptr noundef %541, ptr noundef %42, ptr noundef %542, ptr noundef @c__49, ptr noundef %544, ptr noundef %545, ptr noundef %546, ptr noundef %549, ptr noundef %550, ptr noundef %551, ptr noundef @c__49, ptr noundef %552)
  %554 = load i64, ptr %46, align 8, !tbaa !9
  %555 = icmp ne i64 %554, 0
  br i1 %555, label %560, label %556

556:                                              ; preds = %508
  %557 = load ptr, ptr %27, align 8, !tbaa !5
  %558 = load i64, ptr %557, align 8, !tbaa !9
  %559 = icmp ne i64 %558, 0
  br i1 %559, label %560, label %569

560:                                              ; preds = %556, %508
  %561 = load ptr, ptr %17, align 8, !tbaa !5
  %562 = load ptr, ptr %17, align 8, !tbaa !5
  %563 = getelementptr inbounds [2401 x %struct.complex], ptr %41, i64 0, i64 0
  %564 = load ptr, ptr %20, align 8, !tbaa !5
  %565 = load i64, ptr %30, align 8, !tbaa !9
  %566 = getelementptr inbounds %struct.complex, ptr %564, i64 %565
  %567 = load ptr, ptr %21, align 8, !tbaa !5
  %568 = call i32 @clacpy_(ptr noundef @.str.6, ptr noundef %561, ptr noundef %562, ptr noundef %563, ptr noundef @c__49, ptr noundef %566, ptr noundef %567)
  br label %569

569:                                              ; preds = %560, %556
  br label %570

570:                                              ; preds = %569, %488
  br label %571

571:                                              ; preds = %570, %461
  br label %572

572:                                              ; preds = %571, %440
  %573 = load i64, ptr %46, align 8, !tbaa !9
  %574 = icmp ne i64 %573, 0
  br i1 %574, label %579, label %575

575:                                              ; preds = %572
  %576 = load ptr, ptr %27, align 8, !tbaa !5
  %577 = load i64, ptr %576, align 8, !tbaa !9
  %578 = icmp ne i64 %577, 0
  br i1 %578, label %579, label %596

579:                                              ; preds = %575, %572
  %580 = load ptr, ptr %17, align 8, !tbaa !5
  %581 = load i64, ptr %580, align 8, !tbaa !9
  %582 = icmp sgt i64 %581, 2
  br i1 %582, label %583, label %596

583:                                              ; preds = %579
  %584 = load ptr, ptr %17, align 8, !tbaa !5
  %585 = load i64, ptr %584, align 8, !tbaa !9
  %586 = sub nsw i64 %585, 2
  store i64 %586, ptr %33, align 8, !tbaa !9
  %587 = load ptr, ptr %17, align 8, !tbaa !5
  %588 = load i64, ptr %587, align 8, !tbaa !9
  %589 = sub nsw i64 %588, 2
  store i64 %589, ptr %34, align 8, !tbaa !9
  %590 = load ptr, ptr %20, align 8, !tbaa !5
  %591 = load i64, ptr %29, align 8, !tbaa !9
  %592 = add nsw i64 %591, 3
  %593 = getelementptr inbounds %struct.complex, ptr %590, i64 %592
  %594 = load ptr, ptr %21, align 8, !tbaa !5
  %595 = call i32 @claset_(ptr noundef @.str.7, ptr noundef %33, ptr noundef %34, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %593, ptr noundef %594)
  br label %596

596:                                              ; preds = %583, %579, %575
  %597 = load ptr, ptr %17, align 8, !tbaa !5
  %598 = load i64, ptr %597, align 8, !tbaa !9
  %599 = icmp sge i64 1, %598
  br i1 %599, label %600, label %601

600:                                              ; preds = %596
  br label %604

601:                                              ; preds = %596
  %602 = load ptr, ptr %17, align 8, !tbaa !5
  %603 = load i64, ptr %602, align 8, !tbaa !9
  br label %604

604:                                              ; preds = %601, %600
  %605 = phi i64 [ 1, %600 ], [ %603, %601 ]
  %606 = sitofp i64 %605 to float
  store float %606, ptr %37, align 4, !tbaa !11
  %607 = load ptr, ptr %25, align 8, !tbaa !5
  %608 = getelementptr inbounds %struct.complex, ptr %607, i64 1
  %609 = getelementptr inbounds %struct.complex, ptr %608, i32 0, i32 0
  %610 = load float, ptr %609, align 4, !tbaa !13
  store float %610, ptr %38, align 4, !tbaa !11
  %611 = load float, ptr %37, align 4, !tbaa !11
  %612 = load float, ptr %38, align 4, !tbaa !11
  %613 = fcmp oge float %611, %612
  br i1 %613, label %614, label %616

614:                                              ; preds = %604
  %615 = load float, ptr %37, align 4, !tbaa !11
  br label %618

616:                                              ; preds = %604
  %617 = load float, ptr %38, align 4, !tbaa !11
  br label %618

618:                                              ; preds = %616, %614
  %619 = phi float [ %615, %614 ], [ %617, %616 ]
  %620 = fpext float %619 to double
  %621 = fptrunc double %620 to float
  store float %621, ptr %36, align 4, !tbaa !11
  %622 = load float, ptr %36, align 4, !tbaa !11
  %623 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %622, ptr %623, align 4, !tbaa !13
  %624 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float 0.000000e+00, ptr %624, align 4, !tbaa !15
  %625 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %626 = load float, ptr %625, align 4, !tbaa !13
  %627 = load ptr, ptr %25, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.complex, ptr %627, i64 1
  %629 = getelementptr inbounds %struct.complex, ptr %628, i32 0, i32 0
  store float %626, ptr %629, align 4, !tbaa !13
  %630 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %631 = load float, ptr %630, align 4, !tbaa !15
  %632 = load ptr, ptr %25, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.complex, ptr %632, i64 1
  %634 = getelementptr inbounds %struct.complex, ptr %633, i32 0, i32 1
  store float %631, ptr %634, align 4, !tbaa !15
  br label %635

635:                                              ; preds = %618
  br label %636

636:                                              ; preds = %635
  br label %637

637:                                              ; preds = %636
  store i32 0, ptr %14, align 4
  store i32 1, ptr %49, align 4
  br label %638

638:                                              ; preds = %637, %384, %301, %255, %246
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 392, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 19208, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #3
  %639 = load i32, ptr %14, align 4
  ret i32 %639
}

; 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 i32 @claqr0_(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 @f2c_ccopy(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare i32 @s_cat(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

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

declare i32 @clahqr_(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 @clacpy_(ptr noundef, ptr noundef, 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 }

!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 = !{!14, !12, i64 0}
!14 = !{!"", !12, i64 0, !12, i64 4}
!15 = !{!14, !12, i64 4}


; 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"

%struct.complex = type { float, float }

@.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 [7 x i8], align 1
@c__1 = external hidden global i64, align 8
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@c__2 = external hidden global i64, align 8
@c__12 = external hidden global i64, align 8
@c__49 = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @chseqr_(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) local_unnamed_addr #0 {
  %14 = alloca [2 x ptr], align 16
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca [2 x i64], align 16
  %18 = alloca [2 x i8], align 1
  %19 = alloca [2401 x %struct.complex], align 16
  %20 = alloca i64, align 8
  %21 = alloca [49 x %struct.complex], align 16
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #4
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %18) #4
  call void @llvm.lifetime.start.p0(i64 19208, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #4
  %24 = load i64, ptr %6, align 8, !tbaa !5
  %25 = xor i64 %24, -1
  %26 = getelementptr inbounds %struct.complex, ptr %5, i64 %25
  %27 = getelementptr inbounds i8, ptr %7, i64 -8
  %28 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  store i64 %28, ptr %22, align 8, !tbaa !5
  %29 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #4
  %.not = icmp eq i64 %29, 0
  br i1 %.not, label %30, label %33

30:                                               ; preds = %13
  %31 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #4
  %32 = icmp ne i64 %31, 0
  br label %33

33:                                               ; preds = %30, %13
  %34 = phi i1 [ true, %13 ], [ %32, %30 ]
  %35 = zext i1 %34 to i64
  store i64 %35, ptr %23, align 8, !tbaa !5
  %36 = load i64, ptr %2, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.smax.i64(i64 %36, i64 1)
  %37 = uitofp nneg i64 %spec.select to float
  store float %37, ptr %10, align 4, !tbaa !9
  %38 = getelementptr inbounds i8, ptr %10, i64 4
  store float 0.000000e+00, ptr %38, align 4, !tbaa !12
  %39 = load i64, ptr %11, align 8, !tbaa !5
  %40 = icmp eq i64 %39, -1
  store i64 0, ptr %12, align 8, !tbaa !5
  %41 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #4
  %42 = icmp ne i64 %41, 0
  %43 = icmp ne i64 %28, 0
  %or.cond = select i1 %42, i1 true, i1 %43
  br i1 %or.cond, label %44, label %.thread.sink.split

44:                                               ; preds = %33
  %45 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #4
  %46 = icmp ne i64 %45, 0
  %or.cond3 = select i1 %46, i1 true, i1 %34
  br i1 %or.cond3, label %47, label %.thread.sink.split

47:                                               ; preds = %44
  %48 = load i64, ptr %2, align 8, !tbaa !5
  %49 = icmp slt i64 %48, 0
  br i1 %49, label %.thread.sink.split, label %50

50:                                               ; preds = %47
  %51 = load i64, ptr %3, align 8, !tbaa !5
  %52 = icmp slt i64 %51, 1
  br i1 %52, label %.thread.sink.split, label %53

53:                                               ; preds = %50
  %spec.select244 = tail call i64 @llvm.umax.i64(i64 %48, i64 1)
  %54 = icmp ugt i64 %51, %spec.select244
  br i1 %54, label %.thread.sink.split, label %55

55:                                               ; preds = %53
  %56 = load i64, ptr %4, align 8, !tbaa !5
  %. = tail call i64 @llvm.umin.i64(i64 %51, i64 %48)
  %57 = icmp slt i64 %56, %.
  %58 = icmp ugt i64 %56, %48
  %or.cond257 = or i1 %57, %58
  br i1 %or.cond257, label %.thread.sink.split, label %59

59:                                               ; preds = %55
  %60 = load i64, ptr %6, align 8, !tbaa !5
  %61 = icmp slt i64 %60, %spec.select244
  br i1 %61, label %.thread.sink.split, label %62

62:                                               ; preds = %59
  %63 = load i64, ptr %9, align 8, !tbaa !5
  %64 = icmp slt i64 %63, 1
  %65 = icmp ugt i64 %48, %63
  %or.cond258 = and i1 %34, %65
  %or.cond261 = select i1 %64, i1 true, i1 %or.cond258
  br i1 %or.cond261, label %.thread.sink.split, label %66

66:                                               ; preds = %62
  %67 = load i64, ptr %11, align 8, !tbaa !5
  %68 = icmp sge i64 %67, %spec.select244
  %or.cond5 = select i1 %68, i1 true, i1 %40
  br i1 %or.cond5, label %69, label %.thread.sink.split

69:                                               ; preds = %66
  %.pr = load i64, ptr %12, align 8, !tbaa !5
  %.not239 = icmp eq i64 %.pr, 0
  br i1 %.not239, label %73, label %.thread

.thread.sink.split:                               ; preds = %66, %62, %59, %55, %50, %53, %47, %44, %33
  %.sink = phi i64 [ -1, %33 ], [ -2, %44 ], [ -3, %47 ], [ -4, %53 ], [ -4, %50 ], [ -5, %55 ], [ -7, %59 ], [ -10, %62 ], [ -12, %66 ]
  store i64 %.sink, ptr %12, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %69
  %70 = phi i64 [ %.pr, %69 ], [ %.sink, %.thread.sink.split ]
  %71 = sub nsw i64 0, %70
  store i64 %71, ptr %15, align 8, !tbaa !5
  %72 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %15) #4
  br label %168

73:                                               ; preds = %69
  %74 = icmp eq i64 %48, 0
  br i1 %74, label %168, label %75

75:                                               ; preds = %73
  br i1 %40, label %76, label %85

76:                                               ; preds = %75
  %77 = call i32 @claqr0_(ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12) #4
  %78 = load float, ptr %10, align 4, !tbaa !9
  %79 = load i64, ptr %2, align 8, !tbaa !5
  %80 = icmp slt i64 %79, 2
  %81 = uitofp nneg i64 %79 to float
  %82 = select i1 %80, float 1.000000e+00, float %81
  %83 = fcmp oge float %78, %82
  %84 = select i1 %83, float %78, float %82
  store float %84, ptr %10, align 4, !tbaa !9
  store float 0.000000e+00, ptr %38, align 4, !tbaa !12
  br label %168

85:                                               ; preds = %75
  %.not260 = icmp eq i64 %51, 1
  br i1 %.not260, label %90, label %86

86:                                               ; preds = %85
  %87 = add nsw i64 %51, -1
  store i64 %87, ptr %15, align 8, !tbaa !5
  %88 = add nuw nsw i64 %60, 1
  store i64 %88, ptr %16, align 8, !tbaa !5
  %89 = call i32 @f2c_ccopy(ptr noundef nonnull %15, ptr noundef %5, ptr noundef nonnull %16, ptr noundef %7, ptr noundef nonnull @c__1) #4
  %.pre = load i64, ptr %4, align 8, !tbaa !5
  %.pre259 = load i64, ptr %2, align 8, !tbaa !5
  br label %90

90:                                               ; preds = %86, %85
  %91 = phi i64 [ %.pre259, %86 ], [ %48, %85 ]
  %92 = phi i64 [ %.pre, %86 ], [ %56, %85 ]
  %93 = icmp slt i64 %92, %91
  br i1 %93, label %94, label %104

94:                                               ; preds = %90
  %95 = sub nsw i64 %91, %92
  store i64 %95, ptr %15, align 8, !tbaa !5
  %96 = load i64, ptr %6, align 8, !tbaa !5
  %97 = add nsw i64 %96, 1
  store i64 %97, ptr %16, align 8, !tbaa !5
  %98 = add nsw i64 %92, 1
  %99 = add i64 %24, 1
  %100 = mul i64 %98, %99
  %101 = getelementptr inbounds %struct.complex, ptr %26, i64 %100
  %102 = getelementptr %struct.complex, ptr %7, i64 %92
  %103 = call i32 @f2c_ccopy(ptr noundef nonnull %15, ptr noundef %101, ptr noundef nonnull %16, ptr noundef %102, ptr noundef nonnull @c__1) #4
  br label %104

104:                                              ; preds = %94, %90
  br i1 %.not, label %107, label %105

105:                                              ; preds = %104
  %106 = call i32 @claset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %8, ptr noundef nonnull %9) #4
  br label %107

107:                                              ; preds = %105, %104
  %108 = load i64, ptr %3, align 8, !tbaa !5
  %109 = load i64, ptr %4, align 8, !tbaa !5
  %110 = icmp eq i64 %108, %109
  br i1 %110, label %111, label %117

111:                                              ; preds = %107
  %112 = add i64 %24, 1
  %113 = mul i64 %108, %112
  %114 = getelementptr inbounds %struct.complex, ptr %26, i64 %113
  %115 = getelementptr inbounds %struct.complex, ptr %27, i64 %108
  %116 = load <2 x float>, ptr %114, align 4, !tbaa !13
  store <2 x float> %116, ptr %115, align 4, !tbaa !13
  br label %168

117:                                              ; preds = %107
  store i64 1, ptr %17, align 16, !tbaa !5
  store ptr %0, ptr %14, align 16, !tbaa !14
  %118 = getelementptr inbounds i8, ptr %17, i64 8
  store i64 1, ptr %118, align 8, !tbaa !5
  %119 = getelementptr inbounds i8, ptr %14, i64 8
  store ptr %1, ptr %119, align 8, !tbaa !14
  %120 = call i32 @s_cat(ptr noundef nonnull %18, ptr noundef nonnull %14, ptr noundef nonnull %17, ptr noundef nonnull @c__2, i64 noundef 2) #4
  %121 = call i64 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str.5, ptr noundef nonnull %18, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %11) #4
  %122 = call i64 @llvm.smax.i64(i64 %121, i64 11)
  %123 = load i64, ptr %2, align 8, !tbaa !5
  %124 = icmp sgt i64 %123, %122
  br i1 %124, label %125, label %127

125:                                              ; preds = %117
  %126 = call i32 @claqr0_(ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12) #4
  br label %152

127:                                              ; preds = %117
  %128 = call i32 @clahqr_(ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %12) #4
  %129 = load i64, ptr %12, align 8, !tbaa !5
  %130 = icmp sgt i64 %129, 0
  br i1 %130, label %131, label %152

131:                                              ; preds = %127
  store i64 %129, ptr %20, align 8, !tbaa !5
  %132 = load i64, ptr %2, align 8, !tbaa !5
  %133 = icmp sgt i64 %132, 48
  br i1 %133, label %134, label %136

134:                                              ; preds = %131
  %135 = call i32 @claqr0_(ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %20, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12) #4
  br label %152

136:                                              ; preds = %131
  %137 = call i32 @clacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef nonnull @c__49) #4
  %138 = load i64, ptr %2, align 8, !tbaa !5
  %139 = mul nsw i64 %138, 49
  %140 = add i64 %138, -49
  %141 = add i64 %140, %139
  %142 = getelementptr inbounds [2401 x %struct.complex], ptr %19, i64 0, i64 %141
  store <2 x float> zeroinitializer, ptr %142, align 8, !tbaa !13
  %143 = sub nsw i64 49, %138
  store i64 %143, ptr %15, align 8, !tbaa !5
  %144 = getelementptr inbounds [2401 x %struct.complex], ptr %19, i64 0, i64 %139
  %145 = call i32 @claset_(ptr noundef nonnull @.str.6, ptr noundef nonnull @c__49, ptr noundef nonnull %15, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef nonnull %144, ptr noundef nonnull @c__49) #4
  %146 = call i32 @claqr0_(ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull @c__49, ptr noundef nonnull %3, ptr noundef nonnull %20, ptr noundef nonnull %19, ptr noundef nonnull @c__49, ptr noundef %7, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %21, ptr noundef nonnull @c__49, ptr noundef nonnull %12) #4
  %147 = load i64, ptr %22, align 8, !tbaa !5
  %.not240 = icmp eq i64 %147, 0
  br i1 %.not240, label %148, label %150

148:                                              ; preds = %136
  %149 = load i64, ptr %12, align 8, !tbaa !5
  %.not241 = icmp eq i64 %149, 0
  br i1 %.not241, label %.thread255, label %150

150:                                              ; preds = %148, %136
  %151 = call i32 @clacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %19, ptr noundef nonnull @c__49, ptr noundef %5, ptr noundef nonnull %6) #4
  br label %152

152:                                              ; preds = %127, %150, %134, %125
  %.pr250 = load i64, ptr %22, align 8, !tbaa !5
  %.not242 = icmp eq i64 %.pr250, 0
  br i1 %.not242, label %153, label %154

153:                                              ; preds = %152
  %.pr254 = load i64, ptr %12, align 8, !tbaa !5
  %.not243 = icmp eq i64 %.pr254, 0
  br i1 %.not243, label %.thread255, label %154

154:                                              ; preds = %153, %152
  %155 = load i64, ptr %2, align 8, !tbaa !5
  %156 = icmp sgt i64 %155, 2
  br i1 %156, label %157, label %.thread255

157:                                              ; preds = %154
  %158 = add nsw i64 %155, -2
  store i64 %158, ptr %15, align 8, !tbaa !5
  store i64 %158, ptr %16, align 8, !tbaa !5
  %159 = getelementptr inbounds i8, ptr %5, i64 16
  %160 = call i32 @claset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef nonnull %159, ptr noundef nonnull %6) #4
  br label %.thread255

.thread255:                                       ; preds = %148, %157, %154, %153
  %161 = load i64, ptr %2, align 8, !tbaa !5
  %162 = icmp slt i64 %161, 2
  %163 = uitofp nneg i64 %161 to float
  %164 = select i1 %162, float 1.000000e+00, float %163
  %165 = load float, ptr %10, align 4, !tbaa !9
  %166 = fcmp oge float %164, %165
  %167 = select i1 %166, float %164, float %165
  store float %167, ptr %10, align 4, !tbaa !9
  store float 0.000000e+00, ptr %38, align 4, !tbaa !12
  br label %168

168:                                              ; preds = %73, %.thread255, %111, %76, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 19208, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #4
  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 i32 @claqr0_(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 @f2c_ccopy(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s_cat(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

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

declare i32 @clahqr_(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 @clacpy_(ptr noundef, ptr noundef, 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

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

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

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

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"", !11, i64 0, !11, i64 4}
!11 = !{!"float", !7, i64 0}
!12 = !{!10, !11, i64 4}
!13 = !{!11, !11, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"any pointer", !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass