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

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

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

; Function Attrs: nounwind uwtable
define dso_local void @cheevr_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22) #0 {
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca float, align 4
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca i32, align 4
  %57 = alloca float, align 4
  %58 = alloca float, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca float, align 4
  %66 = alloca i32, align 4
  %67 = alloca [1 x i8], align 1
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca float, align 4
  %84 = alloca float, align 4
  %85 = alloca float, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca float, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca float, align 4
  %101 = alloca float, align 4
  %102 = alloca float, align 4
  %103 = alloca i32, align 4
  %104 = alloca float, align 4
  %105 = alloca i32, align 4
  store ptr %0, ptr %24, align 8, !tbaa !5
  store ptr %1, ptr %25, align 8, !tbaa !5
  store ptr %2, ptr %26, align 8, !tbaa !5
  store ptr %3, ptr %27, align 8, !tbaa !5
  store ptr %4, ptr %28, align 8, !tbaa !5
  store ptr %5, ptr %29, align 8, !tbaa !5
  store ptr %6, ptr %30, align 8, !tbaa !5
  store ptr %7, ptr %31, align 8, !tbaa !5
  store ptr %8, ptr %32, align 8, !tbaa !5
  store ptr %9, ptr %33, align 8, !tbaa !5
  store ptr %10, ptr %34, align 8, !tbaa !5
  store ptr %11, ptr %35, align 8, !tbaa !5
  store ptr %12, ptr %36, align 8, !tbaa !5
  store ptr %13, ptr %37, align 8, !tbaa !5
  store ptr %14, ptr %38, align 8, !tbaa !5
  store ptr %15, ptr %39, align 8, !tbaa !5
  store ptr %16, ptr %40, align 8, !tbaa !5
  store ptr %17, ptr %41, align 8, !tbaa !5
  store ptr %18, ptr %42, align 8, !tbaa !5
  store ptr %19, ptr %43, align 8, !tbaa !5
  store ptr %20, ptr %44, align 8, !tbaa !5
  store ptr %21, ptr %45, align 8, !tbaa !5
  store ptr %22, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #4
  %106 = load ptr, ptr %29, align 8, !tbaa !5
  %107 = load i32, ptr %106, align 4, !tbaa !9
  store i32 %107, ptr %47, align 4, !tbaa !9
  %108 = load i32, ptr %47, align 4, !tbaa !9
  %109 = mul nsw i32 %108, 1
  %110 = add nsw i32 1, %109
  store i32 %110, ptr %48, align 4, !tbaa !9
  %111 = load i32, ptr %48, align 4, !tbaa !9
  %112 = load ptr, ptr %28, align 8, !tbaa !5
  %113 = sext i32 %111 to i64
  %114 = sub i64 0, %113
  %115 = getelementptr inbounds %struct.complex, ptr %112, i64 %114
  store ptr %115, ptr %28, align 8, !tbaa !5
  %116 = load ptr, ptr %36, align 8, !tbaa !5
  %117 = getelementptr inbounds float, ptr %116, i32 -1
  store ptr %117, ptr %36, align 8, !tbaa !5
  %118 = load ptr, ptr %38, align 8, !tbaa !5
  %119 = load i32, ptr %118, align 4, !tbaa !9
  store i32 %119, ptr %49, align 4, !tbaa !9
  %120 = load i32, ptr %49, align 4, !tbaa !9
  %121 = mul nsw i32 %120, 1
  %122 = add nsw i32 1, %121
  store i32 %122, ptr %50, align 4, !tbaa !9
  %123 = load i32, ptr %50, align 4, !tbaa !9
  %124 = load ptr, ptr %37, align 8, !tbaa !5
  %125 = sext i32 %123 to i64
  %126 = sub i64 0, %125
  %127 = getelementptr inbounds %struct.complex, ptr %124, i64 %126
  store ptr %127, ptr %37, align 8, !tbaa !5
  %128 = load ptr, ptr %39, align 8, !tbaa !5
  %129 = getelementptr inbounds i32, ptr %128, i32 -1
  store ptr %129, ptr %39, align 8, !tbaa !5
  %130 = load ptr, ptr %40, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.complex, ptr %130, i32 -1
  store ptr %131, ptr %40, align 8, !tbaa !5
  %132 = load ptr, ptr %42, align 8, !tbaa !5
  %133 = getelementptr inbounds float, ptr %132, i32 -1
  store ptr %133, ptr %42, align 8, !tbaa !5
  %134 = load ptr, ptr %44, align 8, !tbaa !5
  %135 = getelementptr inbounds i32, ptr %134, i32 -1
  store ptr %135, ptr %44, align 8, !tbaa !5
  %136 = call i32 @ilaenv_(ptr noundef @c__10, ptr noundef @.str, ptr noundef @.str.1, ptr noundef @c__1, ptr noundef @c__2, ptr noundef @c__3, ptr noundef @c__4, i32 noundef 6, i32 noundef 1)
  store i32 %136, ptr %77, align 4, !tbaa !9
  %137 = load ptr, ptr %26, align 8, !tbaa !5
  %138 = call i32 @lsame_(ptr noundef %137, ptr noundef @.str.2)
  store i32 %138, ptr %70, align 4, !tbaa !9
  %139 = load ptr, ptr %24, align 8, !tbaa !5
  %140 = call i32 @lsame_(ptr noundef %139, ptr noundef @.str.3)
  store i32 %140, ptr %71, align 4, !tbaa !9
  %141 = load ptr, ptr %25, align 8, !tbaa !5
  %142 = call i32 @lsame_(ptr noundef %141, ptr noundef @.str.4)
  store i32 %142, ptr %74, align 4, !tbaa !9
  %143 = load ptr, ptr %25, align 8, !tbaa !5
  %144 = call i32 @lsame_(ptr noundef %143, ptr noundef @.str.3)
  store i32 %144, ptr %82, align 4, !tbaa !9
  %145 = load ptr, ptr %25, align 8, !tbaa !5
  %146 = call i32 @lsame_(ptr noundef %145, ptr noundef @.str.5)
  store i32 %146, ptr %75, align 4, !tbaa !9
  %147 = load ptr, ptr %41, align 8, !tbaa !5
  %148 = load i32, ptr %147, align 4, !tbaa !9
  %149 = icmp eq i32 %148, -1
  br i1 %149, label %158, label %150

150:                                              ; preds = %23
  %151 = load ptr, ptr %43, align 8, !tbaa !5
  %152 = load i32, ptr %151, align 4, !tbaa !9
  %153 = icmp eq i32 %152, -1
  br i1 %153, label %158, label %154

154:                                              ; preds = %150
  %155 = load ptr, ptr %45, align 8, !tbaa !5
  %156 = load i32, ptr %155, align 4, !tbaa !9
  %157 = icmp eq i32 %156, -1
  br label %158

158:                                              ; preds = %154, %150, %23
  %159 = phi i1 [ true, %150 ], [ true, %23 ], [ %157, %154 ]
  %160 = zext i1 %159 to i32
  store i32 %160, ptr %98, align 4, !tbaa !9
  store i32 1, ptr %51, align 4, !tbaa !9
  %161 = load ptr, ptr %27, align 8, !tbaa !5
  %162 = load i32, ptr %161, align 4, !tbaa !9
  %163 = mul nsw i32 %162, 24
  store i32 %163, ptr %52, align 4, !tbaa !9
  %164 = load i32, ptr %51, align 4, !tbaa !9
  %165 = load i32, ptr %52, align 4, !tbaa !9
  %166 = icmp sge i32 %164, %165
  br i1 %166, label %167, label %169

167:                                              ; preds = %158
  %168 = load i32, ptr %51, align 4, !tbaa !9
  br label %171

169:                                              ; preds = %158
  %170 = load i32, ptr %52, align 4, !tbaa !9
  br label %171

171:                                              ; preds = %169, %167
  %172 = phi i32 [ %168, %167 ], [ %170, %169 ]
  store i32 %172, ptr %93, align 4, !tbaa !9
  store i32 1, ptr %51, align 4, !tbaa !9
  %173 = load ptr, ptr %27, align 8, !tbaa !5
  %174 = load i32, ptr %173, align 4, !tbaa !9
  %175 = mul nsw i32 %174, 10
  store i32 %175, ptr %52, align 4, !tbaa !9
  %176 = load i32, ptr %51, align 4, !tbaa !9
  %177 = load i32, ptr %52, align 4, !tbaa !9
  %178 = icmp sge i32 %176, %177
  br i1 %178, label %179, label %181

179:                                              ; preds = %171
  %180 = load i32, ptr %51, align 4, !tbaa !9
  br label %183

181:                                              ; preds = %171
  %182 = load i32, ptr %52, align 4, !tbaa !9
  br label %183

183:                                              ; preds = %181, %179
  %184 = phi i32 [ %180, %179 ], [ %182, %181 ]
  store i32 %184, ptr %91, align 4, !tbaa !9
  store i32 1, ptr %51, align 4, !tbaa !9
  %185 = load ptr, ptr %27, align 8, !tbaa !5
  %186 = load i32, ptr %185, align 4, !tbaa !9
  %187 = shl i32 %186, 1
  store i32 %187, ptr %52, align 4, !tbaa !9
  %188 = load i32, ptr %51, align 4, !tbaa !9
  %189 = load i32, ptr %52, align 4, !tbaa !9
  %190 = icmp sge i32 %188, %189
  br i1 %190, label %191, label %193

191:                                              ; preds = %183
  %192 = load i32, ptr %51, align 4, !tbaa !9
  br label %195

193:                                              ; preds = %183
  %194 = load i32, ptr %52, align 4, !tbaa !9
  br label %195

195:                                              ; preds = %193, %191
  %196 = phi i32 [ %192, %191 ], [ %194, %193 ]
  store i32 %196, ptr %69, align 4, !tbaa !9
  %197 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 0, ptr %197, align 4, !tbaa !9
  %198 = load i32, ptr %71, align 4, !tbaa !9
  %199 = icmp ne i32 %198, 0
  br i1 %199, label %206, label %200

200:                                              ; preds = %195
  %201 = load ptr, ptr %24, align 8, !tbaa !5
  %202 = call i32 @lsame_(ptr noundef %201, ptr noundef @.str.1)
  %203 = icmp ne i32 %202, 0
  br i1 %203, label %206, label %204

204:                                              ; preds = %200
  %205 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -1, ptr %205, align 4, !tbaa !9
  br label %318

206:                                              ; preds = %200, %195
  %207 = load i32, ptr %74, align 4, !tbaa !9
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %217, label %209

209:                                              ; preds = %206
  %210 = load i32, ptr %82, align 4, !tbaa !9
  %211 = icmp ne i32 %210, 0
  br i1 %211, label %217, label %212

212:                                              ; preds = %209
  %213 = load i32, ptr %75, align 4, !tbaa !9
  %214 = icmp ne i32 %213, 0
  br i1 %214, label %217, label %215

215:                                              ; preds = %212
  %216 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -2, ptr %216, align 4, !tbaa !9
  br label %317

217:                                              ; preds = %212, %209, %206
  %218 = load i32, ptr %70, align 4, !tbaa !9
  %219 = icmp ne i32 %218, 0
  br i1 %219, label %226, label %220

220:                                              ; preds = %217
  %221 = load ptr, ptr %26, align 8, !tbaa !5
  %222 = call i32 @lsame_(ptr noundef %221, ptr noundef @.str.6)
  %223 = icmp ne i32 %222, 0
  br i1 %223, label %226, label %224

224:                                              ; preds = %220
  %225 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -3, ptr %225, align 4, !tbaa !9
  br label %316

226:                                              ; preds = %220, %217
  %227 = load ptr, ptr %27, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = icmp slt i32 %228, 0
  br i1 %229, label %230, label %232

230:                                              ; preds = %226
  %231 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -4, ptr %231, align 4, !tbaa !9
  br label %315

232:                                              ; preds = %226
  %233 = load ptr, ptr %29, align 8, !tbaa !5
  %234 = load i32, ptr %233, align 4, !tbaa !9
  %235 = load ptr, ptr %27, align 8, !tbaa !5
  %236 = load i32, ptr %235, align 4, !tbaa !9
  %237 = icmp sge i32 1, %236
  br i1 %237, label %238, label %239

238:                                              ; preds = %232
  br label %242

239:                                              ; preds = %232
  %240 = load ptr, ptr %27, align 8, !tbaa !5
  %241 = load i32, ptr %240, align 4, !tbaa !9
  br label %242

242:                                              ; preds = %239, %238
  %243 = phi i32 [ 1, %238 ], [ %241, %239 ]
  %244 = icmp slt i32 %234, %243
  br i1 %244, label %245, label %247

245:                                              ; preds = %242
  %246 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -6, ptr %246, align 4, !tbaa !9
  br label %314

247:                                              ; preds = %242
  %248 = load i32, ptr %82, align 4, !tbaa !9
  %249 = icmp ne i32 %248, 0
  br i1 %249, label %250, label %263

250:                                              ; preds = %247
  %251 = load ptr, ptr %27, align 8, !tbaa !5
  %252 = load i32, ptr %251, align 4, !tbaa !9
  %253 = icmp sgt i32 %252, 0
  br i1 %253, label %254, label %262

254:                                              ; preds = %250
  %255 = load ptr, ptr %31, align 8, !tbaa !5
  %256 = load float, ptr %255, align 4, !tbaa !11
  %257 = load ptr, ptr %30, align 8, !tbaa !5
  %258 = load float, ptr %257, align 4, !tbaa !11
  %259 = fcmp ole float %256, %258
  br i1 %259, label %260, label %262

260:                                              ; preds = %254
  %261 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -8, ptr %261, align 4, !tbaa !9
  br label %262

262:                                              ; preds = %260, %254, %250
  br label %313

263:                                              ; preds = %247
  %264 = load i32, ptr %75, align 4, !tbaa !9
  %265 = icmp ne i32 %264, 0
  br i1 %265, label %266, label %312

266:                                              ; preds = %263
  %267 = load ptr, ptr %32, align 8, !tbaa !5
  %268 = load i32, ptr %267, align 4, !tbaa !9
  %269 = icmp slt i32 %268, 1
  br i1 %269, label %283, label %270

270:                                              ; preds = %266
  %271 = load ptr, ptr %32, align 8, !tbaa !5
  %272 = load i32, ptr %271, align 4, !tbaa !9
  %273 = load ptr, ptr %27, align 8, !tbaa !5
  %274 = load i32, ptr %273, align 4, !tbaa !9
  %275 = icmp sge i32 1, %274
  br i1 %275, label %276, label %277

276:                                              ; preds = %270
  br label %280

277:                                              ; preds = %270
  %278 = load ptr, ptr %27, align 8, !tbaa !5
  %279 = load i32, ptr %278, align 4, !tbaa !9
  br label %280

280:                                              ; preds = %277, %276
  %281 = phi i32 [ 1, %276 ], [ %279, %277 ]
  %282 = icmp sgt i32 %272, %281
  br i1 %282, label %283, label %285

283:                                              ; preds = %280, %266
  %284 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -9, ptr %284, align 4, !tbaa !9
  br label %311

285:                                              ; preds = %280
  %286 = load ptr, ptr %33, align 8, !tbaa !5
  %287 = load i32, ptr %286, align 4, !tbaa !9
  %288 = load ptr, ptr %27, align 8, !tbaa !5
  %289 = load i32, ptr %288, align 4, !tbaa !9
  %290 = load ptr, ptr %32, align 8, !tbaa !5
  %291 = load i32, ptr %290, align 4, !tbaa !9
  %292 = icmp sle i32 %289, %291
  br i1 %292, label %293, label %296

293:                                              ; preds = %285
  %294 = load ptr, ptr %27, align 8, !tbaa !5
  %295 = load i32, ptr %294, align 4, !tbaa !9
  br label %299

296:                                              ; preds = %285
  %297 = load ptr, ptr %32, align 8, !tbaa !5
  %298 = load i32, ptr %297, align 4, !tbaa !9
  br label %299

299:                                              ; preds = %296, %293
  %300 = phi i32 [ %295, %293 ], [ %298, %296 ]
  %301 = icmp slt i32 %287, %300
  br i1 %301, label %308, label %302

302:                                              ; preds = %299
  %303 = load ptr, ptr %33, align 8, !tbaa !5
  %304 = load i32, ptr %303, align 4, !tbaa !9
  %305 = load ptr, ptr %27, align 8, !tbaa !5
  %306 = load i32, ptr %305, align 4, !tbaa !9
  %307 = icmp sgt i32 %304, %306
  br i1 %307, label %308, label %310

308:                                              ; preds = %302, %299
  %309 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -10, ptr %309, align 4, !tbaa !9
  br label %310

310:                                              ; preds = %308, %302
  br label %311

311:                                              ; preds = %310, %283
  br label %312

312:                                              ; preds = %311, %263
  br label %313

313:                                              ; preds = %312, %262
  br label %314

314:                                              ; preds = %313, %245
  br label %315

315:                                              ; preds = %314, %230
  br label %316

316:                                              ; preds = %315, %224
  br label %317

317:                                              ; preds = %316, %215
  br label %318

318:                                              ; preds = %317, %204
  %319 = load ptr, ptr %46, align 8, !tbaa !5
  %320 = load i32, ptr %319, align 4, !tbaa !9
  %321 = icmp eq i32 %320, 0
  br i1 %321, label %322, label %338

322:                                              ; preds = %318
  %323 = load ptr, ptr %38, align 8, !tbaa !5
  %324 = load i32, ptr %323, align 4, !tbaa !9
  %325 = icmp slt i32 %324, 1
  br i1 %325, label %335, label %326

326:                                              ; preds = %322
  %327 = load i32, ptr %71, align 4, !tbaa !9
  %328 = icmp ne i32 %327, 0
  br i1 %328, label %329, label %337

329:                                              ; preds = %326
  %330 = load ptr, ptr %38, align 8, !tbaa !5
  %331 = load i32, ptr %330, align 4, !tbaa !9
  %332 = load ptr, ptr %27, align 8, !tbaa !5
  %333 = load i32, ptr %332, align 4, !tbaa !9
  %334 = icmp slt i32 %331, %333
  br i1 %334, label %335, label %337

335:                                              ; preds = %329, %322
  %336 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -15, ptr %336, align 4, !tbaa !9
  br label %337

337:                                              ; preds = %335, %329, %326
  br label %338

338:                                              ; preds = %337, %318
  %339 = load ptr, ptr %46, align 8, !tbaa !5
  %340 = load i32, ptr %339, align 4, !tbaa !9
  %341 = icmp eq i32 %340, 0
  br i1 %341, label %342, label %420

342:                                              ; preds = %338
  %343 = load ptr, ptr %26, align 8, !tbaa !5
  %344 = load ptr, ptr %27, align 8, !tbaa !5
  %345 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.7, ptr noundef %343, ptr noundef %344, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %345, ptr %72, align 4, !tbaa !9
  %346 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %346, ptr %51, align 4, !tbaa !9
  %347 = load ptr, ptr %26, align 8, !tbaa !5
  %348 = load ptr, ptr %27, align 8, !tbaa !5
  %349 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef %347, ptr noundef %348, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %349, ptr %52, align 4, !tbaa !9
  %350 = load i32, ptr %51, align 4, !tbaa !9
  %351 = load i32, ptr %52, align 4, !tbaa !9
  %352 = icmp sge i32 %350, %351
  br i1 %352, label %353, label %355

353:                                              ; preds = %342
  %354 = load i32, ptr %51, align 4, !tbaa !9
  br label %357

355:                                              ; preds = %342
  %356 = load i32, ptr %52, align 4, !tbaa !9
  br label %357

357:                                              ; preds = %355, %353
  %358 = phi i32 [ %354, %353 ], [ %356, %355 ]
  store i32 %358, ptr %72, align 4, !tbaa !9
  %359 = load i32, ptr %72, align 4, !tbaa !9
  %360 = add nsw i32 %359, 1
  %361 = load ptr, ptr %27, align 8, !tbaa !5
  %362 = load i32, ptr %361, align 4, !tbaa !9
  %363 = mul nsw i32 %360, %362
  store i32 %363, ptr %51, align 4, !tbaa !9
  %364 = load i32, ptr %51, align 4, !tbaa !9
  %365 = load i32, ptr %69, align 4, !tbaa !9
  %366 = icmp sge i32 %364, %365
  br i1 %366, label %367, label %369

367:                                              ; preds = %357
  %368 = load i32, ptr %51, align 4, !tbaa !9
  br label %371

369:                                              ; preds = %357
  %370 = load i32, ptr %69, align 4, !tbaa !9
  br label %371

371:                                              ; preds = %369, %367
  %372 = phi i32 [ %368, %367 ], [ %370, %369 ]
  store i32 %372, ptr %99, align 4, !tbaa !9
  %373 = load i32, ptr %99, align 4, !tbaa !9
  %374 = sitofp i32 %373 to float
  %375 = load ptr, ptr %40, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.complex, ptr %375, i64 1
  %377 = getelementptr inbounds %struct.complex, ptr %376, i32 0, i32 0
  store float %374, ptr %377, align 4, !tbaa !13
  %378 = load ptr, ptr %40, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.complex, ptr %378, i64 1
  %380 = getelementptr inbounds %struct.complex, ptr %379, i32 0, i32 1
  store float 0.000000e+00, ptr %380, align 4, !tbaa !15
  %381 = load i32, ptr %93, align 4, !tbaa !9
  %382 = sitofp i32 %381 to float
  %383 = load ptr, ptr %42, align 8, !tbaa !5
  %384 = getelementptr inbounds float, ptr %383, i64 1
  store float %382, ptr %384, align 4, !tbaa !11
  %385 = load i32, ptr %91, align 4, !tbaa !9
  %386 = load ptr, ptr %44, align 8, !tbaa !5
  %387 = getelementptr inbounds i32, ptr %386, i64 1
  store i32 %385, ptr %387, align 4, !tbaa !9
  %388 = load ptr, ptr %41, align 8, !tbaa !5
  %389 = load i32, ptr %388, align 4, !tbaa !9
  %390 = load i32, ptr %69, align 4, !tbaa !9
  %391 = icmp slt i32 %389, %390
  br i1 %391, label %392, label %397

392:                                              ; preds = %371
  %393 = load i32, ptr %98, align 4, !tbaa !9
  %394 = icmp ne i32 %393, 0
  br i1 %394, label %397, label %395

395:                                              ; preds = %392
  %396 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -18, ptr %396, align 4, !tbaa !9
  br label %419

397:                                              ; preds = %392, %371
  %398 = load ptr, ptr %43, align 8, !tbaa !5
  %399 = load i32, ptr %398, align 4, !tbaa !9
  %400 = load i32, ptr %93, align 4, !tbaa !9
  %401 = icmp slt i32 %399, %400
  br i1 %401, label %402, label %407

402:                                              ; preds = %397
  %403 = load i32, ptr %98, align 4, !tbaa !9
  %404 = icmp ne i32 %403, 0
  br i1 %404, label %407, label %405

405:                                              ; preds = %402
  %406 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -20, ptr %406, align 4, !tbaa !9
  br label %418

407:                                              ; preds = %402, %397
  %408 = load ptr, ptr %45, align 8, !tbaa !5
  %409 = load i32, ptr %408, align 4, !tbaa !9
  %410 = load i32, ptr %91, align 4, !tbaa !9
  %411 = icmp slt i32 %409, %410
  br i1 %411, label %412, label %417

412:                                              ; preds = %407
  %413 = load i32, ptr %98, align 4, !tbaa !9
  %414 = icmp ne i32 %413, 0
  br i1 %414, label %417, label %415

415:                                              ; preds = %412
  %416 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -22, ptr %416, align 4, !tbaa !9
  br label %417

417:                                              ; preds = %415, %412, %407
  br label %418

418:                                              ; preds = %417, %405
  br label %419

419:                                              ; preds = %418, %395
  br label %420

420:                                              ; preds = %419, %338
  %421 = load ptr, ptr %46, align 8, !tbaa !5
  %422 = load i32, ptr %421, align 4, !tbaa !9
  %423 = icmp ne i32 %422, 0
  br i1 %423, label %424, label %429

424:                                              ; preds = %420
  %425 = load ptr, ptr %46, align 8, !tbaa !5
  %426 = load i32, ptr %425, align 4, !tbaa !9
  %427 = sub nsw i32 0, %426
  store i32 %427, ptr %51, align 4, !tbaa !9
  %428 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %51, i32 noundef 6)
  store i32 1, ptr %105, align 4
  br label %1162

429:                                              ; preds = %420
  %430 = load i32, ptr %98, align 4, !tbaa !9
  %431 = icmp ne i32 %430, 0
  br i1 %431, label %432, label %433

432:                                              ; preds = %429
  store i32 1, ptr %105, align 4
  br label %1162

433:                                              ; preds = %429
  br label %434

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

439:                                              ; preds = %434
  %440 = load ptr, ptr %40, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.complex, ptr %440, i64 1
  %442 = getelementptr inbounds %struct.complex, ptr %441, i32 0, i32 0
  store float 1.000000e+00, ptr %442, align 4, !tbaa !13
  %443 = load ptr, ptr %40, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.complex, ptr %443, i64 1
  %445 = getelementptr inbounds %struct.complex, ptr %444, i32 0, i32 1
  store float 0.000000e+00, ptr %445, align 4, !tbaa !15
  store i32 1, ptr %105, align 4
  br label %1162

446:                                              ; preds = %434
  %447 = load ptr, ptr %27, align 8, !tbaa !5
  %448 = load i32, ptr %447, align 4, !tbaa !9
  %449 = icmp eq i32 %448, 1
  br i1 %449, label %450, label %532

450:                                              ; preds = %446
  %451 = load ptr, ptr %40, align 8, !tbaa !5
  %452 = getelementptr inbounds %struct.complex, ptr %451, i64 1
  %453 = getelementptr inbounds %struct.complex, ptr %452, i32 0, i32 0
  store float 2.000000e+00, ptr %453, align 4, !tbaa !13
  %454 = load ptr, ptr %40, align 8, !tbaa !5
  %455 = getelementptr inbounds %struct.complex, ptr %454, i64 1
  %456 = getelementptr inbounds %struct.complex, ptr %455, i32 0, i32 1
  store float 0.000000e+00, ptr %456, align 4, !tbaa !15
  %457 = load i32, ptr %74, align 4, !tbaa !9
  %458 = icmp ne i32 %457, 0
  br i1 %458, label %462, label %459

459:                                              ; preds = %450
  %460 = load i32, ptr %75, align 4, !tbaa !9
  %461 = icmp ne i32 %460, 0
  br i1 %461, label %462, label %474

462:                                              ; preds = %459, %450
  %463 = load ptr, ptr %35, align 8, !tbaa !5
  store i32 1, ptr %463, align 4, !tbaa !9
  %464 = load i32, ptr %47, align 4, !tbaa !9
  %465 = add nsw i32 %464, 1
  store i32 %465, ptr %51, align 4, !tbaa !9
  %466 = load ptr, ptr %28, align 8, !tbaa !5
  %467 = load i32, ptr %51, align 4, !tbaa !9
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds %struct.complex, ptr %466, i64 %468
  %470 = getelementptr inbounds %struct.complex, ptr %469, i32 0, i32 0
  %471 = load float, ptr %470, align 4, !tbaa !13
  %472 = load ptr, ptr %36, align 8, !tbaa !5
  %473 = getelementptr inbounds float, ptr %472, i64 1
  store float %471, ptr %473, align 4, !tbaa !11
  br label %511

474:                                              ; preds = %459
  %475 = load i32, ptr %47, align 4, !tbaa !9
  %476 = add nsw i32 %475, 1
  store i32 %476, ptr %51, align 4, !tbaa !9
  %477 = load i32, ptr %47, align 4, !tbaa !9
  %478 = add nsw i32 %477, 1
  store i32 %478, ptr %52, align 4, !tbaa !9
  %479 = load ptr, ptr %30, align 8, !tbaa !5
  %480 = load float, ptr %479, align 4, !tbaa !11
  %481 = load ptr, ptr %28, align 8, !tbaa !5
  %482 = load i32, ptr %51, align 4, !tbaa !9
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds %struct.complex, ptr %481, i64 %483
  %485 = getelementptr inbounds %struct.complex, ptr %484, i32 0, i32 0
  %486 = load float, ptr %485, align 4, !tbaa !13
  %487 = fcmp olt float %480, %486
  br i1 %487, label %488, label %510

488:                                              ; preds = %474
  %489 = load ptr, ptr %31, align 8, !tbaa !5
  %490 = load float, ptr %489, align 4, !tbaa !11
  %491 = load ptr, ptr %28, align 8, !tbaa !5
  %492 = load i32, ptr %52, align 4, !tbaa !9
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds %struct.complex, ptr %491, i64 %493
  %495 = getelementptr inbounds %struct.complex, ptr %494, i32 0, i32 0
  %496 = load float, ptr %495, align 4, !tbaa !13
  %497 = fcmp oge float %490, %496
  br i1 %497, label %498, label %510

498:                                              ; preds = %488
  %499 = load ptr, ptr %35, align 8, !tbaa !5
  store i32 1, ptr %499, align 4, !tbaa !9
  %500 = load i32, ptr %47, align 4, !tbaa !9
  %501 = add nsw i32 %500, 1
  store i32 %501, ptr %51, align 4, !tbaa !9
  %502 = load ptr, ptr %28, align 8, !tbaa !5
  %503 = load i32, ptr %51, align 4, !tbaa !9
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds %struct.complex, ptr %502, i64 %504
  %506 = getelementptr inbounds %struct.complex, ptr %505, i32 0, i32 0
  %507 = load float, ptr %506, align 4, !tbaa !13
  %508 = load ptr, ptr %36, align 8, !tbaa !5
  %509 = getelementptr inbounds float, ptr %508, i64 1
  store float %507, ptr %509, align 4, !tbaa !11
  br label %510

510:                                              ; preds = %498, %488, %474
  br label %511

511:                                              ; preds = %510, %462
  %512 = load i32, ptr %71, align 4, !tbaa !9
  %513 = icmp ne i32 %512, 0
  br i1 %513, label %514, label %531

514:                                              ; preds = %511
  %515 = load i32, ptr %49, align 4, !tbaa !9
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr %51, align 4, !tbaa !9
  %517 = load ptr, ptr %37, align 8, !tbaa !5
  %518 = load i32, ptr %51, align 4, !tbaa !9
  %519 = sext i32 %518 to i64
  %520 = getelementptr inbounds %struct.complex, ptr %517, i64 %519
  %521 = getelementptr inbounds %struct.complex, ptr %520, i32 0, i32 0
  store float 1.000000e+00, ptr %521, align 4, !tbaa !13
  %522 = load ptr, ptr %37, align 8, !tbaa !5
  %523 = load i32, ptr %51, align 4, !tbaa !9
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds %struct.complex, ptr %522, i64 %524
  %526 = getelementptr inbounds %struct.complex, ptr %525, i32 0, i32 1
  store float 0.000000e+00, ptr %526, align 4, !tbaa !15
  %527 = load ptr, ptr %39, align 8, !tbaa !5
  %528 = getelementptr inbounds i32, ptr %527, i64 1
  store i32 1, ptr %528, align 4, !tbaa !9
  %529 = load ptr, ptr %39, align 8, !tbaa !5
  %530 = getelementptr inbounds i32, ptr %529, i64 2
  store i32 1, ptr %530, align 4, !tbaa !9
  br label %531

531:                                              ; preds = %514, %511
  store i32 1, ptr %105, align 4
  br label %1162

532:                                              ; preds = %446
  %533 = call float @slamch_(ptr noundef @.str.9)
  store float %533, ptr %83, align 4, !tbaa !11
  %534 = call float @slamch_(ptr noundef @.str.10)
  store float %534, ptr %100, align 4, !tbaa !11
  %535 = load float, ptr %83, align 4, !tbaa !11
  %536 = load float, ptr %100, align 4, !tbaa !11
  %537 = fdiv float %535, %536
  store float %537, ptr %97, align 4, !tbaa !11
  %538 = load float, ptr %97, align 4, !tbaa !11
  %539 = fdiv float 1.000000e+00, %538
  store float %539, ptr %85, align 4, !tbaa !11
  %540 = load float, ptr %97, align 4, !tbaa !11
  %541 = fpext float %540 to double
  %542 = call double @sqrt(double noundef %541) #4
  %543 = fptrunc double %542 to float
  store float %543, ptr %57, align 4, !tbaa !11
  %544 = load float, ptr %85, align 4, !tbaa !11
  %545 = fpext float %544 to double
  %546 = call double @sqrt(double noundef %545) #4
  %547 = fptrunc double %546 to float
  store float %547, ptr %53, align 4, !tbaa !11
  %548 = load float, ptr %83, align 4, !tbaa !11
  %549 = fpext float %548 to double
  %550 = call double @sqrt(double noundef %549) #4
  %551 = call double @sqrt(double noundef %550) #4
  %552 = fdiv double 1.000000e+00, %551
  %553 = fptrunc double %552 to float
  store float %553, ptr %54, align 4, !tbaa !11
  %554 = load float, ptr %53, align 4, !tbaa !11
  %555 = load float, ptr %54, align 4, !tbaa !11
  %556 = fcmp ole float %554, %555
  br i1 %556, label %557, label %559

557:                                              ; preds = %532
  %558 = load float, ptr %53, align 4, !tbaa !11
  br label %561

559:                                              ; preds = %532
  %560 = load float, ptr %54, align 4, !tbaa !11
  br label %561

561:                                              ; preds = %559, %557
  %562 = phi float [ %558, %557 ], [ %560, %559 ]
  store float %562, ptr %58, align 4, !tbaa !11
  store i32 0, ptr %76, align 4, !tbaa !9
  %563 = load ptr, ptr %34, align 8, !tbaa !5
  %564 = load float, ptr %563, align 4, !tbaa !11
  store float %564, ptr %84, align 4, !tbaa !11
  %565 = load i32, ptr %82, align 4, !tbaa !9
  %566 = icmp ne i32 %565, 0
  br i1 %566, label %567, label %572

567:                                              ; preds = %561
  %568 = load ptr, ptr %30, align 8, !tbaa !5
  %569 = load float, ptr %568, align 4, !tbaa !11
  store float %569, ptr %101, align 4, !tbaa !11
  %570 = load ptr, ptr %31, align 8, !tbaa !5
  %571 = load float, ptr %570, align 4, !tbaa !11
  store float %571, ptr %102, align 4, !tbaa !11
  br label %572

572:                                              ; preds = %567, %561
  %573 = load ptr, ptr %26, align 8, !tbaa !5
  %574 = load ptr, ptr %27, align 8, !tbaa !5
  %575 = load ptr, ptr %28, align 8, !tbaa !5
  %576 = load i32, ptr %48, align 4, !tbaa !9
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds %struct.complex, ptr %575, i64 %577
  %579 = load ptr, ptr %29, align 8, !tbaa !5
  %580 = load ptr, ptr %42, align 8, !tbaa !5
  %581 = getelementptr inbounds float, ptr %580, i64 1
  %582 = call float @clansy_(ptr noundef @.str.11, ptr noundef %573, ptr noundef %574, ptr noundef %578, ptr noundef %579, ptr noundef %581)
  store float %582, ptr %55, align 4, !tbaa !11
  %583 = load float, ptr %55, align 4, !tbaa !11
  %584 = fcmp ogt float %583, 0.000000e+00
  br i1 %584, label %585, label %593

585:                                              ; preds = %572
  %586 = load float, ptr %55, align 4, !tbaa !11
  %587 = load float, ptr %57, align 4, !tbaa !11
  %588 = fcmp olt float %586, %587
  br i1 %588, label %589, label %593

589:                                              ; preds = %585
  store i32 1, ptr %76, align 4, !tbaa !9
  %590 = load float, ptr %57, align 4, !tbaa !11
  %591 = load float, ptr %55, align 4, !tbaa !11
  %592 = fdiv float %590, %591
  store float %592, ptr %65, align 4, !tbaa !11
  br label %602

593:                                              ; preds = %585, %572
  %594 = load float, ptr %55, align 4, !tbaa !11
  %595 = load float, ptr %58, align 4, !tbaa !11
  %596 = fcmp ogt float %594, %595
  br i1 %596, label %597, label %601

597:                                              ; preds = %593
  store i32 1, ptr %76, align 4, !tbaa !9
  %598 = load float, ptr %58, align 4, !tbaa !11
  %599 = load float, ptr %55, align 4, !tbaa !11
  %600 = fdiv float %598, %599
  store float %600, ptr %65, align 4, !tbaa !11
  br label %601

601:                                              ; preds = %597, %593
  br label %602

602:                                              ; preds = %601, %589
  %603 = load i32, ptr %76, align 4, !tbaa !9
  %604 = icmp eq i32 %603, 1
  br i1 %604, label %605, label %674

605:                                              ; preds = %602
  %606 = load i32, ptr %70, align 4, !tbaa !9
  %607 = icmp ne i32 %606, 0
  br i1 %607, label %608, label %633

608:                                              ; preds = %605
  %609 = load ptr, ptr %27, align 8, !tbaa !5
  %610 = load i32, ptr %609, align 4, !tbaa !9
  store i32 %610, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %611

611:                                              ; preds = %629, %608
  %612 = load i32, ptr %62, align 4, !tbaa !9
  %613 = load i32, ptr %51, align 4, !tbaa !9
  %614 = icmp sle i32 %612, %613
  br i1 %614, label %615, label %632

615:                                              ; preds = %611
  %616 = load ptr, ptr %27, align 8, !tbaa !5
  %617 = load i32, ptr %616, align 4, !tbaa !9
  %618 = load i32, ptr %62, align 4, !tbaa !9
  %619 = sub nsw i32 %617, %618
  %620 = add nsw i32 %619, 1
  store i32 %620, ptr %52, align 4, !tbaa !9
  %621 = load ptr, ptr %28, align 8, !tbaa !5
  %622 = load i32, ptr %62, align 4, !tbaa !9
  %623 = load i32, ptr %62, align 4, !tbaa !9
  %624 = load i32, ptr %47, align 4, !tbaa !9
  %625 = mul nsw i32 %623, %624
  %626 = add nsw i32 %622, %625
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds %struct.complex, ptr %621, i64 %627
  call void @csscal_(ptr noundef %52, ptr noundef %65, ptr noundef %628, ptr noundef @c__1)
  br label %629

629:                                              ; preds = %615
  %630 = load i32, ptr %62, align 4, !tbaa !9
  %631 = add nsw i32 %630, 1
  store i32 %631, ptr %62, align 4, !tbaa !9
  br label %611, !llvm.loop !16

632:                                              ; preds = %611
  br label %652

633:                                              ; preds = %605
  %634 = load ptr, ptr %27, align 8, !tbaa !5
  %635 = load i32, ptr %634, align 4, !tbaa !9
  store i32 %635, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %636

636:                                              ; preds = %648, %633
  %637 = load i32, ptr %62, align 4, !tbaa !9
  %638 = load i32, ptr %51, align 4, !tbaa !9
  %639 = icmp sle i32 %637, %638
  br i1 %639, label %640, label %651

640:                                              ; preds = %636
  %641 = load ptr, ptr %28, align 8, !tbaa !5
  %642 = load i32, ptr %62, align 4, !tbaa !9
  %643 = load i32, ptr %47, align 4, !tbaa !9
  %644 = mul nsw i32 %642, %643
  %645 = add nsw i32 %644, 1
  %646 = sext i32 %645 to i64
  %647 = getelementptr inbounds %struct.complex, ptr %641, i64 %646
  call void @csscal_(ptr noundef %62, ptr noundef %65, ptr noundef %647, ptr noundef @c__1)
  br label %648

648:                                              ; preds = %640
  %649 = load i32, ptr %62, align 4, !tbaa !9
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr %62, align 4, !tbaa !9
  br label %636, !llvm.loop !18

651:                                              ; preds = %636
  br label %652

652:                                              ; preds = %651, %632
  %653 = load ptr, ptr %34, align 8, !tbaa !5
  %654 = load float, ptr %653, align 4, !tbaa !11
  %655 = fcmp ogt float %654, 0.000000e+00
  br i1 %655, label %656, label %661

656:                                              ; preds = %652
  %657 = load ptr, ptr %34, align 8, !tbaa !5
  %658 = load float, ptr %657, align 4, !tbaa !11
  %659 = load float, ptr %65, align 4, !tbaa !11
  %660 = fmul float %658, %659
  store float %660, ptr %84, align 4, !tbaa !11
  br label %661

661:                                              ; preds = %656, %652
  %662 = load i32, ptr %82, align 4, !tbaa !9
  %663 = icmp ne i32 %662, 0
  br i1 %663, label %664, label %673

664:                                              ; preds = %661
  %665 = load ptr, ptr %30, align 8, !tbaa !5
  %666 = load float, ptr %665, align 4, !tbaa !11
  %667 = load float, ptr %65, align 4, !tbaa !11
  %668 = fmul float %666, %667
  store float %668, ptr %101, align 4, !tbaa !11
  %669 = load ptr, ptr %31, align 8, !tbaa !5
  %670 = load float, ptr %669, align 4, !tbaa !11
  %671 = load float, ptr %65, align 4, !tbaa !11
  %672 = fmul float %670, %671
  store float %672, ptr %102, align 4, !tbaa !11
  br label %673

673:                                              ; preds = %664, %661
  br label %674

674:                                              ; preds = %673, %602
  store i32 1, ptr %86, align 4, !tbaa !9
  %675 = load i32, ptr %86, align 4, !tbaa !9
  %676 = load ptr, ptr %27, align 8, !tbaa !5
  %677 = load i32, ptr %676, align 4, !tbaa !9
  %678 = add nsw i32 %675, %677
  store i32 %678, ptr %68, align 4, !tbaa !9
  %679 = load ptr, ptr %41, align 8, !tbaa !5
  %680 = load i32, ptr %679, align 4, !tbaa !9
  %681 = load i32, ptr %68, align 4, !tbaa !9
  %682 = sub nsw i32 %680, %681
  %683 = add nsw i32 %682, 1
  store i32 %683, ptr %95, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  %684 = load i32, ptr %63, align 4, !tbaa !9
  %685 = load ptr, ptr %27, align 8, !tbaa !5
  %686 = load i32, ptr %685, align 4, !tbaa !9
  %687 = add nsw i32 %684, %686
  store i32 %687, ptr %64, align 4, !tbaa !9
  %688 = load i32, ptr %64, align 4, !tbaa !9
  %689 = load ptr, ptr %27, align 8, !tbaa !5
  %690 = load i32, ptr %689, align 4, !tbaa !9
  %691 = add nsw i32 %688, %690
  store i32 %691, ptr %79, align 4, !tbaa !9
  %692 = load i32, ptr %79, align 4, !tbaa !9
  %693 = load ptr, ptr %27, align 8, !tbaa !5
  %694 = load i32, ptr %693, align 4, !tbaa !9
  %695 = add nsw i32 %692, %694
  store i32 %695, ptr %81, align 4, !tbaa !9
  %696 = load i32, ptr %81, align 4, !tbaa !9
  %697 = load ptr, ptr %27, align 8, !tbaa !5
  %698 = load i32, ptr %697, align 4, !tbaa !9
  %699 = add nsw i32 %696, %698
  store i32 %699, ptr %90, align 4, !tbaa !9
  %700 = load ptr, ptr %43, align 8, !tbaa !5
  %701 = load i32, ptr %700, align 4, !tbaa !9
  %702 = load i32, ptr %90, align 4, !tbaa !9
  %703 = sub nsw i32 %701, %702
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr %103, align 4, !tbaa !9
  store i32 1, ptr %78, align 4, !tbaa !9
  %705 = load i32, ptr %78, align 4, !tbaa !9
  %706 = load ptr, ptr %27, align 8, !tbaa !5
  %707 = load i32, ptr %706, align 4, !tbaa !9
  %708 = add nsw i32 %705, %707
  store i32 %708, ptr %87, align 4, !tbaa !9
  %709 = load i32, ptr %87, align 4, !tbaa !9
  %710 = load ptr, ptr %27, align 8, !tbaa !5
  %711 = load i32, ptr %710, align 4, !tbaa !9
  %712 = add nsw i32 %709, %711
  store i32 %712, ptr %80, align 4, !tbaa !9
  %713 = load i32, ptr %80, align 4, !tbaa !9
  %714 = load ptr, ptr %27, align 8, !tbaa !5
  %715 = load i32, ptr %714, align 4, !tbaa !9
  %716 = add nsw i32 %713, %715
  store i32 %716, ptr %88, align 4, !tbaa !9
  %717 = load ptr, ptr %26, align 8, !tbaa !5
  %718 = load ptr, ptr %27, align 8, !tbaa !5
  %719 = load ptr, ptr %28, align 8, !tbaa !5
  %720 = load i32, ptr %48, align 4, !tbaa !9
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds %struct.complex, ptr %719, i64 %721
  %723 = load ptr, ptr %29, align 8, !tbaa !5
  %724 = load ptr, ptr %42, align 8, !tbaa !5
  %725 = load i32, ptr %63, align 4, !tbaa !9
  %726 = sext i32 %725 to i64
  %727 = getelementptr inbounds float, ptr %724, i64 %726
  %728 = load ptr, ptr %42, align 8, !tbaa !5
  %729 = load i32, ptr %64, align 4, !tbaa !9
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds float, ptr %728, i64 %730
  %732 = load ptr, ptr %40, align 8, !tbaa !5
  %733 = load i32, ptr %86, align 4, !tbaa !9
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds %struct.complex, ptr %732, i64 %734
  %736 = load ptr, ptr %40, align 8, !tbaa !5
  %737 = load i32, ptr %68, align 4, !tbaa !9
  %738 = sext i32 %737 to i64
  %739 = getelementptr inbounds %struct.complex, ptr %736, i64 %738
  call void @chetrd_(ptr noundef %717, ptr noundef %718, ptr noundef %722, ptr noundef %723, ptr noundef %727, ptr noundef %731, ptr noundef %735, ptr noundef %739, ptr noundef %95, ptr noundef %66)
  store i32 0, ptr %59, align 4, !tbaa !9
  %740 = load i32, ptr %75, align 4, !tbaa !9
  %741 = icmp ne i32 %740, 0
  br i1 %741, label %742, label %754

742:                                              ; preds = %674
  %743 = load ptr, ptr %32, align 8, !tbaa !5
  %744 = load i32, ptr %743, align 4, !tbaa !9
  %745 = icmp eq i32 %744, 1
  br i1 %745, label %746, label %753

746:                                              ; preds = %742
  %747 = load ptr, ptr %33, align 8, !tbaa !5
  %748 = load i32, ptr %747, align 4, !tbaa !9
  %749 = load ptr, ptr %27, align 8, !tbaa !5
  %750 = load i32, ptr %749, align 4, !tbaa !9
  %751 = icmp eq i32 %748, %750
  br i1 %751, label %752, label %753

752:                                              ; preds = %746
  store i32 1, ptr %59, align 4, !tbaa !9
  br label %753

753:                                              ; preds = %752, %746, %742
  br label %754

754:                                              ; preds = %753, %674
  %755 = load i32, ptr %74, align 4, !tbaa !9
  %756 = icmp ne i32 %755, 0
  br i1 %756, label %760, label %757

757:                                              ; preds = %754
  %758 = load i32, ptr %59, align 4, !tbaa !9
  %759 = icmp ne i32 %758, 0
  br i1 %759, label %760, label %904

760:                                              ; preds = %757, %754
  %761 = load i32, ptr %77, align 4, !tbaa !9
  %762 = icmp eq i32 %761, 1
  br i1 %762, label %763, label %904

763:                                              ; preds = %760
  %764 = load i32, ptr %71, align 4, !tbaa !9
  %765 = icmp ne i32 %764, 0
  br i1 %765, label %793, label %766

766:                                              ; preds = %763
  %767 = load ptr, ptr %27, align 8, !tbaa !5
  %768 = load ptr, ptr %42, align 8, !tbaa !5
  %769 = load i32, ptr %63, align 4, !tbaa !9
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds float, ptr %768, i64 %770
  %772 = load ptr, ptr %36, align 8, !tbaa !5
  %773 = getelementptr inbounds float, ptr %772, i64 1
  call void @scopy_(ptr noundef %767, ptr noundef %771, ptr noundef @c__1, ptr noundef %773, ptr noundef @c__1)
  %774 = load ptr, ptr %27, align 8, !tbaa !5
  %775 = load i32, ptr %774, align 4, !tbaa !9
  %776 = sub nsw i32 %775, 1
  store i32 %776, ptr %51, align 4, !tbaa !9
  %777 = load ptr, ptr %42, align 8, !tbaa !5
  %778 = load i32, ptr %64, align 4, !tbaa !9
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds float, ptr %777, i64 %779
  %781 = load ptr, ptr %42, align 8, !tbaa !5
  %782 = load i32, ptr %81, align 4, !tbaa !9
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds float, ptr %781, i64 %783
  call void @scopy_(ptr noundef %51, ptr noundef %780, ptr noundef @c__1, ptr noundef %784, ptr noundef @c__1)
  %785 = load ptr, ptr %27, align 8, !tbaa !5
  %786 = load ptr, ptr %36, align 8, !tbaa !5
  %787 = getelementptr inbounds float, ptr %786, i64 1
  %788 = load ptr, ptr %42, align 8, !tbaa !5
  %789 = load i32, ptr %81, align 4, !tbaa !9
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds float, ptr %788, i64 %790
  %792 = load ptr, ptr %46, align 8, !tbaa !5
  call void @ssterf_(ptr noundef %785, ptr noundef %787, ptr noundef %791, ptr noundef %792)
  br label %894

793:                                              ; preds = %763
  %794 = load ptr, ptr %27, align 8, !tbaa !5
  %795 = load i32, ptr %794, align 4, !tbaa !9
  %796 = sub nsw i32 %795, 1
  store i32 %796, ptr %51, align 4, !tbaa !9
  %797 = load ptr, ptr %42, align 8, !tbaa !5
  %798 = load i32, ptr %64, align 4, !tbaa !9
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds float, ptr %797, i64 %799
  %801 = load ptr, ptr %42, align 8, !tbaa !5
  %802 = load i32, ptr %81, align 4, !tbaa !9
  %803 = sext i32 %802 to i64
  %804 = getelementptr inbounds float, ptr %801, i64 %803
  call void @scopy_(ptr noundef %51, ptr noundef %800, ptr noundef @c__1, ptr noundef %804, ptr noundef @c__1)
  %805 = load ptr, ptr %27, align 8, !tbaa !5
  %806 = load ptr, ptr %42, align 8, !tbaa !5
  %807 = load i32, ptr %63, align 4, !tbaa !9
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds float, ptr %806, i64 %808
  %810 = load ptr, ptr %42, align 8, !tbaa !5
  %811 = load i32, ptr %79, align 4, !tbaa !9
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds float, ptr %810, i64 %812
  call void @scopy_(ptr noundef %805, ptr noundef %809, ptr noundef @c__1, ptr noundef %813, ptr noundef @c__1)
  %814 = load ptr, ptr %34, align 8, !tbaa !5
  %815 = load float, ptr %814, align 4, !tbaa !11
  %816 = load ptr, ptr %27, align 8, !tbaa !5
  %817 = load i32, ptr %816, align 4, !tbaa !9
  %818 = sitofp i32 %817 to float
  %819 = fmul float %818, 2.000000e+00
  %820 = load float, ptr %100, align 4, !tbaa !11
  %821 = fmul float %819, %820
  %822 = fcmp ole float %815, %821
  br i1 %822, label %823, label %824

823:                                              ; preds = %793
  store i32 1, ptr %92, align 4, !tbaa !9
  br label %825

824:                                              ; preds = %793
  store i32 0, ptr %92, align 4, !tbaa !9
  br label %825

825:                                              ; preds = %824, %823
  %826 = load ptr, ptr %24, align 8, !tbaa !5
  %827 = load ptr, ptr %27, align 8, !tbaa !5
  %828 = load ptr, ptr %42, align 8, !tbaa !5
  %829 = load i32, ptr %79, align 4, !tbaa !9
  %830 = sext i32 %829 to i64
  %831 = getelementptr inbounds float, ptr %828, i64 %830
  %832 = load ptr, ptr %42, align 8, !tbaa !5
  %833 = load i32, ptr %81, align 4, !tbaa !9
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds float, ptr %832, i64 %834
  %836 = load ptr, ptr %30, align 8, !tbaa !5
  %837 = load ptr, ptr %31, align 8, !tbaa !5
  %838 = load ptr, ptr %32, align 8, !tbaa !5
  %839 = load ptr, ptr %33, align 8, !tbaa !5
  %840 = load ptr, ptr %35, align 8, !tbaa !5
  %841 = load ptr, ptr %36, align 8, !tbaa !5
  %842 = getelementptr inbounds float, ptr %841, i64 1
  %843 = load ptr, ptr %37, align 8, !tbaa !5
  %844 = load i32, ptr %50, align 4, !tbaa !9
  %845 = sext i32 %844 to i64
  %846 = getelementptr inbounds %struct.complex, ptr %843, i64 %845
  %847 = load ptr, ptr %38, align 8, !tbaa !5
  %848 = load ptr, ptr %27, align 8, !tbaa !5
  %849 = load ptr, ptr %39, align 8, !tbaa !5
  %850 = getelementptr inbounds i32, ptr %849, i64 1
  %851 = load ptr, ptr %42, align 8, !tbaa !5
  %852 = load i32, ptr %90, align 4, !tbaa !9
  %853 = sext i32 %852 to i64
  %854 = getelementptr inbounds float, ptr %851, i64 %853
  %855 = load ptr, ptr %44, align 8, !tbaa !5
  %856 = getelementptr inbounds i32, ptr %855, i64 1
  %857 = load ptr, ptr %45, align 8, !tbaa !5
  %858 = load ptr, ptr %46, align 8, !tbaa !5
  call void @cstemr_(ptr noundef %826, ptr noundef @.str.4, ptr noundef %827, ptr noundef %831, ptr noundef %835, ptr noundef %836, ptr noundef %837, ptr noundef %838, ptr noundef %839, ptr noundef %840, ptr noundef %842, ptr noundef %846, ptr noundef %847, ptr noundef %848, ptr noundef %850, ptr noundef %92, ptr noundef %854, ptr noundef %103, ptr noundef %856, ptr noundef %857, ptr noundef %858)
  %859 = load i32, ptr %71, align 4, !tbaa !9
  %860 = icmp ne i32 %859, 0
  br i1 %860, label %861, label %893

861:                                              ; preds = %825
  %862 = load ptr, ptr %46, align 8, !tbaa !5
  %863 = load i32, ptr %862, align 4, !tbaa !9
  %864 = icmp eq i32 %863, 0
  br i1 %864, label %865, label %893

865:                                              ; preds = %861
  %866 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %866, ptr %89, align 4, !tbaa !9
  %867 = load ptr, ptr %41, align 8, !tbaa !5
  %868 = load i32, ptr %867, align 4, !tbaa !9
  %869 = load i32, ptr %89, align 4, !tbaa !9
  %870 = sub nsw i32 %868, %869
  %871 = add nsw i32 %870, 1
  store i32 %871, ptr %94, align 4, !tbaa !9
  %872 = load ptr, ptr %26, align 8, !tbaa !5
  %873 = load ptr, ptr %27, align 8, !tbaa !5
  %874 = load ptr, ptr %35, align 8, !tbaa !5
  %875 = load ptr, ptr %28, align 8, !tbaa !5
  %876 = load i32, ptr %48, align 4, !tbaa !9
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds %struct.complex, ptr %875, i64 %877
  %879 = load ptr, ptr %29, align 8, !tbaa !5
  %880 = load ptr, ptr %40, align 8, !tbaa !5
  %881 = load i32, ptr %86, align 4, !tbaa !9
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds %struct.complex, ptr %880, i64 %882
  %884 = load ptr, ptr %37, align 8, !tbaa !5
  %885 = load i32, ptr %50, align 4, !tbaa !9
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds %struct.complex, ptr %884, i64 %886
  %888 = load ptr, ptr %38, align 8, !tbaa !5
  %889 = load ptr, ptr %40, align 8, !tbaa !5
  %890 = load i32, ptr %89, align 4, !tbaa !9
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds %struct.complex, ptr %889, i64 %891
  call void @cunmtr_(ptr noundef @.str.2, ptr noundef %872, ptr noundef @.str.1, ptr noundef %873, ptr noundef %874, ptr noundef %878, ptr noundef %879, ptr noundef %883, ptr noundef %887, ptr noundef %888, ptr noundef %892, ptr noundef %94, ptr noundef %66)
  br label %893

893:                                              ; preds = %865, %861, %825
  br label %894

894:                                              ; preds = %893, %766
  %895 = load ptr, ptr %46, align 8, !tbaa !5
  %896 = load i32, ptr %895, align 4, !tbaa !9
  %897 = icmp eq i32 %896, 0
  br i1 %897, label %898, label %902

898:                                              ; preds = %894
  %899 = load ptr, ptr %27, align 8, !tbaa !5
  %900 = load i32, ptr %899, align 4, !tbaa !9
  %901 = load ptr, ptr %35, align 8, !tbaa !5
  store i32 %900, ptr %901, align 4, !tbaa !9
  br label %1014

902:                                              ; preds = %894
  %903 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 0, ptr %903, align 4, !tbaa !9
  br label %904

904:                                              ; preds = %902, %760, %757
  %905 = load i32, ptr %71, align 4, !tbaa !9
  %906 = icmp ne i32 %905, 0
  br i1 %906, label %907, label %909

907:                                              ; preds = %904
  %908 = getelementptr inbounds [1 x i8], ptr %67, i64 0, i64 0
  store i8 66, ptr %908, align 1, !tbaa !19
  br label %911

909:                                              ; preds = %904
  %910 = getelementptr inbounds [1 x i8], ptr %67, i64 0, i64 0
  store i8 69, ptr %910, align 1, !tbaa !19
  br label %911

911:                                              ; preds = %909, %907
  %912 = load ptr, ptr %25, align 8, !tbaa !5
  %913 = getelementptr inbounds [1 x i8], ptr %67, i64 0, i64 0
  %914 = load ptr, ptr %27, align 8, !tbaa !5
  %915 = load ptr, ptr %32, align 8, !tbaa !5
  %916 = load ptr, ptr %33, align 8, !tbaa !5
  %917 = load ptr, ptr %42, align 8, !tbaa !5
  %918 = load i32, ptr %63, align 4, !tbaa !9
  %919 = sext i32 %918 to i64
  %920 = getelementptr inbounds float, ptr %917, i64 %919
  %921 = load ptr, ptr %42, align 8, !tbaa !5
  %922 = load i32, ptr %64, align 4, !tbaa !9
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds float, ptr %921, i64 %923
  %925 = load ptr, ptr %35, align 8, !tbaa !5
  %926 = load ptr, ptr %36, align 8, !tbaa !5
  %927 = getelementptr inbounds float, ptr %926, i64 1
  %928 = load ptr, ptr %44, align 8, !tbaa !5
  %929 = load i32, ptr %78, align 4, !tbaa !9
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds i32, ptr %928, i64 %930
  %932 = load ptr, ptr %44, align 8, !tbaa !5
  %933 = load i32, ptr %87, align 4, !tbaa !9
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds i32, ptr %932, i64 %934
  %936 = load ptr, ptr %42, align 8, !tbaa !5
  %937 = load i32, ptr %90, align 4, !tbaa !9
  %938 = sext i32 %937 to i64
  %939 = getelementptr inbounds float, ptr %936, i64 %938
  %940 = load ptr, ptr %44, align 8, !tbaa !5
  %941 = load i32, ptr %88, align 4, !tbaa !9
  %942 = sext i32 %941 to i64
  %943 = getelementptr inbounds i32, ptr %940, i64 %942
  %944 = load ptr, ptr %46, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %912, ptr noundef %913, ptr noundef %914, ptr noundef %101, ptr noundef %102, ptr noundef %915, ptr noundef %916, ptr noundef %84, ptr noundef %920, ptr noundef %924, ptr noundef %925, ptr noundef %96, ptr noundef %927, ptr noundef %931, ptr noundef %935, ptr noundef %939, ptr noundef %943, ptr noundef %944)
  %945 = load i32, ptr %71, align 4, !tbaa !9
  %946 = icmp ne i32 %945, 0
  br i1 %946, label %947, label %1013

947:                                              ; preds = %911
  %948 = load ptr, ptr %27, align 8, !tbaa !5
  %949 = load ptr, ptr %42, align 8, !tbaa !5
  %950 = load i32, ptr %63, align 4, !tbaa !9
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds float, ptr %949, i64 %951
  %953 = load ptr, ptr %42, align 8, !tbaa !5
  %954 = load i32, ptr %64, align 4, !tbaa !9
  %955 = sext i32 %954 to i64
  %956 = getelementptr inbounds float, ptr %953, i64 %955
  %957 = load ptr, ptr %35, align 8, !tbaa !5
  %958 = load ptr, ptr %36, align 8, !tbaa !5
  %959 = getelementptr inbounds float, ptr %958, i64 1
  %960 = load ptr, ptr %44, align 8, !tbaa !5
  %961 = load i32, ptr %78, align 4, !tbaa !9
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds i32, ptr %960, i64 %962
  %964 = load ptr, ptr %44, align 8, !tbaa !5
  %965 = load i32, ptr %87, align 4, !tbaa !9
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds i32, ptr %964, i64 %966
  %968 = load ptr, ptr %37, align 8, !tbaa !5
  %969 = load i32, ptr %50, align 4, !tbaa !9
  %970 = sext i32 %969 to i64
  %971 = getelementptr inbounds %struct.complex, ptr %968, i64 %970
  %972 = load ptr, ptr %38, align 8, !tbaa !5
  %973 = load ptr, ptr %42, align 8, !tbaa !5
  %974 = load i32, ptr %90, align 4, !tbaa !9
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds float, ptr %973, i64 %975
  %977 = load ptr, ptr %44, align 8, !tbaa !5
  %978 = load i32, ptr %88, align 4, !tbaa !9
  %979 = sext i32 %978 to i64
  %980 = getelementptr inbounds i32, ptr %977, i64 %979
  %981 = load ptr, ptr %44, align 8, !tbaa !5
  %982 = load i32, ptr %80, align 4, !tbaa !9
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds i32, ptr %981, i64 %983
  %985 = load ptr, ptr %46, align 8, !tbaa !5
  call void @cstein_(ptr noundef %948, ptr noundef %952, ptr noundef %956, ptr noundef %957, ptr noundef %959, ptr noundef %963, ptr noundef %967, ptr noundef %971, ptr noundef %972, ptr noundef %976, ptr noundef %980, ptr noundef %984, ptr noundef %985)
  %986 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %986, ptr %89, align 4, !tbaa !9
  %987 = load ptr, ptr %41, align 8, !tbaa !5
  %988 = load i32, ptr %987, align 4, !tbaa !9
  %989 = load i32, ptr %89, align 4, !tbaa !9
  %990 = sub nsw i32 %988, %989
  %991 = add nsw i32 %990, 1
  store i32 %991, ptr %94, align 4, !tbaa !9
  %992 = load ptr, ptr %26, align 8, !tbaa !5
  %993 = load ptr, ptr %27, align 8, !tbaa !5
  %994 = load ptr, ptr %35, align 8, !tbaa !5
  %995 = load ptr, ptr %28, align 8, !tbaa !5
  %996 = load i32, ptr %48, align 4, !tbaa !9
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds %struct.complex, ptr %995, i64 %997
  %999 = load ptr, ptr %29, align 8, !tbaa !5
  %1000 = load ptr, ptr %40, align 8, !tbaa !5
  %1001 = load i32, ptr %86, align 4, !tbaa !9
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds %struct.complex, ptr %1000, i64 %1002
  %1004 = load ptr, ptr %37, align 8, !tbaa !5
  %1005 = load i32, ptr %50, align 4, !tbaa !9
  %1006 = sext i32 %1005 to i64
  %1007 = getelementptr inbounds %struct.complex, ptr %1004, i64 %1006
  %1008 = load ptr, ptr %38, align 8, !tbaa !5
  %1009 = load ptr, ptr %40, align 8, !tbaa !5
  %1010 = load i32, ptr %89, align 4, !tbaa !9
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds %struct.complex, ptr %1009, i64 %1011
  call void @cunmtr_(ptr noundef @.str.2, ptr noundef %992, ptr noundef @.str.1, ptr noundef %993, ptr noundef %994, ptr noundef %998, ptr noundef %999, ptr noundef %1003, ptr noundef %1007, ptr noundef %1008, ptr noundef %1012, ptr noundef %94, ptr noundef %66)
  br label %1013

1013:                                             ; preds = %947, %911
  br label %1014

1014:                                             ; preds = %1013, %898
  %1015 = load i32, ptr %76, align 4, !tbaa !9
  %1016 = icmp eq i32 %1015, 1
  br i1 %1016, label %1017, label %1033

1017:                                             ; preds = %1014
  %1018 = load ptr, ptr %46, align 8, !tbaa !5
  %1019 = load i32, ptr %1018, align 4, !tbaa !9
  %1020 = icmp eq i32 %1019, 0
  br i1 %1020, label %1021, label %1024

1021:                                             ; preds = %1017
  %1022 = load ptr, ptr %35, align 8, !tbaa !5
  %1023 = load i32, ptr %1022, align 4, !tbaa !9
  store i32 %1023, ptr %56, align 4, !tbaa !9
  br label %1028

1024:                                             ; preds = %1017
  %1025 = load ptr, ptr %46, align 8, !tbaa !5
  %1026 = load i32, ptr %1025, align 4, !tbaa !9
  %1027 = sub nsw i32 %1026, 1
  store i32 %1027, ptr %56, align 4, !tbaa !9
  br label %1028

1028:                                             ; preds = %1024, %1021
  %1029 = load float, ptr %65, align 4, !tbaa !11
  %1030 = fdiv float 1.000000e+00, %1029
  store float %1030, ptr %53, align 4, !tbaa !11
  %1031 = load ptr, ptr %36, align 8, !tbaa !5
  %1032 = getelementptr inbounds float, ptr %1031, i64 1
  call void @sscal_(ptr noundef %56, ptr noundef %53, ptr noundef %1032, ptr noundef @c__1)
  br label %1033

1033:                                             ; preds = %1028, %1014
  %1034 = load i32, ptr %71, align 4, !tbaa !9
  %1035 = icmp ne i32 %1034, 0
  br i1 %1035, label %1036, label %1146

1036:                                             ; preds = %1033
  %1037 = load ptr, ptr %35, align 8, !tbaa !5
  %1038 = load i32, ptr %1037, align 4, !tbaa !9
  %1039 = sub nsw i32 %1038, 1
  store i32 %1039, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %1040

1040:                                             ; preds = %1142, %1036
  %1041 = load i32, ptr %62, align 4, !tbaa !9
  %1042 = load i32, ptr %51, align 4, !tbaa !9
  %1043 = icmp sle i32 %1041, %1042
  br i1 %1043, label %1044, label %1145

1044:                                             ; preds = %1040
  store i32 0, ptr %61, align 4, !tbaa !9
  %1045 = load ptr, ptr %36, align 8, !tbaa !5
  %1046 = load i32, ptr %62, align 4, !tbaa !9
  %1047 = sext i32 %1046 to i64
  %1048 = getelementptr inbounds float, ptr %1045, i64 %1047
  %1049 = load float, ptr %1048, align 4, !tbaa !11
  store float %1049, ptr %104, align 4, !tbaa !11
  %1050 = load ptr, ptr %35, align 8, !tbaa !5
  %1051 = load i32, ptr %1050, align 4, !tbaa !9
  store i32 %1051, ptr %52, align 4, !tbaa !9
  %1052 = load i32, ptr %62, align 4, !tbaa !9
  %1053 = add nsw i32 %1052, 1
  store i32 %1053, ptr %73, align 4, !tbaa !9
  br label %1054

1054:                                             ; preds = %1074, %1044
  %1055 = load i32, ptr %73, align 4, !tbaa !9
  %1056 = load i32, ptr %52, align 4, !tbaa !9
  %1057 = icmp sle i32 %1055, %1056
  br i1 %1057, label %1058, label %1077

1058:                                             ; preds = %1054
  %1059 = load ptr, ptr %36, align 8, !tbaa !5
  %1060 = load i32, ptr %73, align 4, !tbaa !9
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds float, ptr %1059, i64 %1061
  %1063 = load float, ptr %1062, align 4, !tbaa !11
  %1064 = load float, ptr %104, align 4, !tbaa !11
  %1065 = fcmp olt float %1063, %1064
  br i1 %1065, label %1066, label %1073

1066:                                             ; preds = %1058
  %1067 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %1067, ptr %61, align 4, !tbaa !9
  %1068 = load ptr, ptr %36, align 8, !tbaa !5
  %1069 = load i32, ptr %73, align 4, !tbaa !9
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds float, ptr %1068, i64 %1070
  %1072 = load float, ptr %1071, align 4, !tbaa !11
  store float %1072, ptr %104, align 4, !tbaa !11
  br label %1073

1073:                                             ; preds = %1066, %1058
  br label %1074

1074:                                             ; preds = %1073
  %1075 = load i32, ptr %73, align 4, !tbaa !9
  %1076 = add nsw i32 %1075, 1
  store i32 %1076, ptr %73, align 4, !tbaa !9
  br label %1054, !llvm.loop !20

1077:                                             ; preds = %1054
  %1078 = load i32, ptr %61, align 4, !tbaa !9
  %1079 = icmp ne i32 %1078, 0
  br i1 %1079, label %1080, label %1141

1080:                                             ; preds = %1077
  %1081 = load ptr, ptr %44, align 8, !tbaa !5
  %1082 = load i32, ptr %78, align 4, !tbaa !9
  %1083 = load i32, ptr %61, align 4, !tbaa !9
  %1084 = add nsw i32 %1082, %1083
  %1085 = sub nsw i32 %1084, 1
  %1086 = sext i32 %1085 to i64
  %1087 = getelementptr inbounds i32, ptr %1081, i64 %1086
  %1088 = load i32, ptr %1087, align 4, !tbaa !9
  store i32 %1088, ptr %60, align 4, !tbaa !9
  %1089 = load ptr, ptr %36, align 8, !tbaa !5
  %1090 = load i32, ptr %62, align 4, !tbaa !9
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds float, ptr %1089, i64 %1091
  %1093 = load float, ptr %1092, align 4, !tbaa !11
  %1094 = load ptr, ptr %36, align 8, !tbaa !5
  %1095 = load i32, ptr %61, align 4, !tbaa !9
  %1096 = sext i32 %1095 to i64
  %1097 = getelementptr inbounds float, ptr %1094, i64 %1096
  store float %1093, ptr %1097, align 4, !tbaa !11
  %1098 = load ptr, ptr %44, align 8, !tbaa !5
  %1099 = load i32, ptr %78, align 4, !tbaa !9
  %1100 = load i32, ptr %62, align 4, !tbaa !9
  %1101 = add nsw i32 %1099, %1100
  %1102 = sub nsw i32 %1101, 1
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds i32, ptr %1098, i64 %1103
  %1105 = load i32, ptr %1104, align 4, !tbaa !9
  %1106 = load ptr, ptr %44, align 8, !tbaa !5
  %1107 = load i32, ptr %78, align 4, !tbaa !9
  %1108 = load i32, ptr %61, align 4, !tbaa !9
  %1109 = add nsw i32 %1107, %1108
  %1110 = sub nsw i32 %1109, 1
  %1111 = sext i32 %1110 to i64
  %1112 = getelementptr inbounds i32, ptr %1106, i64 %1111
  store i32 %1105, ptr %1112, align 4, !tbaa !9
  %1113 = load float, ptr %104, align 4, !tbaa !11
  %1114 = load ptr, ptr %36, align 8, !tbaa !5
  %1115 = load i32, ptr %62, align 4, !tbaa !9
  %1116 = sext i32 %1115 to i64
  %1117 = getelementptr inbounds float, ptr %1114, i64 %1116
  store float %1113, ptr %1117, align 4, !tbaa !11
  %1118 = load i32, ptr %60, align 4, !tbaa !9
  %1119 = load ptr, ptr %44, align 8, !tbaa !5
  %1120 = load i32, ptr %78, align 4, !tbaa !9
  %1121 = load i32, ptr %62, align 4, !tbaa !9
  %1122 = add nsw i32 %1120, %1121
  %1123 = sub nsw i32 %1122, 1
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds i32, ptr %1119, i64 %1124
  store i32 %1118, ptr %1125, align 4, !tbaa !9
  %1126 = load ptr, ptr %27, align 8, !tbaa !5
  %1127 = load ptr, ptr %37, align 8, !tbaa !5
  %1128 = load i32, ptr %61, align 4, !tbaa !9
  %1129 = load i32, ptr %49, align 4, !tbaa !9
  %1130 = mul nsw i32 %1128, %1129
  %1131 = add nsw i32 %1130, 1
  %1132 = sext i32 %1131 to i64
  %1133 = getelementptr inbounds %struct.complex, ptr %1127, i64 %1132
  %1134 = load ptr, ptr %37, align 8, !tbaa !5
  %1135 = load i32, ptr %62, align 4, !tbaa !9
  %1136 = load i32, ptr %49, align 4, !tbaa !9
  %1137 = mul nsw i32 %1135, %1136
  %1138 = add nsw i32 %1137, 1
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds %struct.complex, ptr %1134, i64 %1139
  call void @cswap_(ptr noundef %1126, ptr noundef %1133, ptr noundef @c__1, ptr noundef %1140, ptr noundef @c__1)
  br label %1141

1141:                                             ; preds = %1080, %1077
  br label %1142

1142:                                             ; preds = %1141
  %1143 = load i32, ptr %62, align 4, !tbaa !9
  %1144 = add nsw i32 %1143, 1
  store i32 %1144, ptr %62, align 4, !tbaa !9
  br label %1040, !llvm.loop !21

1145:                                             ; preds = %1040
  br label %1146

1146:                                             ; preds = %1145, %1033
  %1147 = load i32, ptr %99, align 4, !tbaa !9
  %1148 = sitofp i32 %1147 to float
  %1149 = load ptr, ptr %40, align 8, !tbaa !5
  %1150 = getelementptr inbounds %struct.complex, ptr %1149, i64 1
  %1151 = getelementptr inbounds %struct.complex, ptr %1150, i32 0, i32 0
  store float %1148, ptr %1151, align 4, !tbaa !13
  %1152 = load ptr, ptr %40, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.complex, ptr %1152, i64 1
  %1154 = getelementptr inbounds %struct.complex, ptr %1153, i32 0, i32 1
  store float 0.000000e+00, ptr %1154, align 4, !tbaa !15
  %1155 = load i32, ptr %93, align 4, !tbaa !9
  %1156 = sitofp i32 %1155 to float
  %1157 = load ptr, ptr %42, align 8, !tbaa !5
  %1158 = getelementptr inbounds float, ptr %1157, i64 1
  store float %1156, ptr %1158, align 4, !tbaa !11
  %1159 = load i32, ptr %91, align 4, !tbaa !9
  %1160 = load ptr, ptr %44, align 8, !tbaa !5
  %1161 = getelementptr inbounds i32, ptr %1160, i64 1
  store i32 %1159, ptr %1161, align 4, !tbaa !9
  store i32 1, ptr %105, align 4
  br label %1162

1162:                                             ; preds = %1146, %531, %439, %432, %424
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

; Function Attrs: nounwind uwtable
define dso_local void @cheevr_(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 nocapture noundef readonly %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr nocapture noundef readonly %17, ptr noundef %18, ptr nocapture noundef readonly %19, ptr noundef %20, ptr noundef %21, ptr noundef %22) local_unnamed_addr #0 {
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca float, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca float, align 4
  %30 = alloca i32, align 4
  %31 = alloca [1 x i8], align 1
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #5
  %40 = load i32, ptr %5, align 4, !tbaa !5
  %41 = add i32 %40, 1
  %narrow = xor i32 %40, -1
  %42 = sext i32 %narrow to i64
  %43 = getelementptr inbounds %struct.complex, ptr %4, i64 %42
  %44 = getelementptr inbounds i8, ptr %12, i64 -4
  %45 = load i32, ptr %14, align 4, !tbaa !5
  %46 = add nsw i32 %45, 1
  %narrow443 = xor i32 %45, -1
  %47 = sext i32 %narrow443 to i64
  %48 = getelementptr inbounds %struct.complex, ptr %13, i64 %47
  %49 = getelementptr inbounds i8, ptr %16, i64 -8
  %50 = getelementptr inbounds i8, ptr %18, i64 -4
  %51 = getelementptr inbounds i8, ptr %20, i64 -4
  %52 = tail call i32 @ilaenv_(ptr noundef nonnull @c__10, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull @c__1, ptr noundef nonnull @c__2, ptr noundef nonnull @c__3, ptr noundef nonnull @c__4, i32 noundef 6, i32 noundef 1) #5
  %53 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.2) #5
  %54 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #5
  %55 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #5
  %56 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #5
  %57 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.5) #5
  %58 = load i32, ptr %17, align 4, !tbaa !5
  %59 = icmp eq i32 %58, -1
  br i1 %59, label %66, label %60

60:                                               ; preds = %23
  %61 = load i32, ptr %19, align 4, !tbaa !5
  %62 = icmp eq i32 %61, -1
  br i1 %62, label %66, label %63

63:                                               ; preds = %60
  %64 = load i32, ptr %21, align 4, !tbaa !5
  %65 = icmp eq i32 %64, -1
  br label %66

66:                                               ; preds = %63, %60, %23
  %67 = phi i1 [ true, %60 ], [ true, %23 ], [ %65, %63 ]
  %68 = load i32, ptr %3, align 4, !tbaa !5
  %69 = mul nsw i32 %68, 24
  %70 = icmp slt i32 %68, 1
  %71 = select i1 %70, i32 1, i32 %69
  %72 = mul nsw i32 %68, 10
  %73 = select i1 %70, i32 1, i32 %72
  %74 = shl i32 %68, 1
  %75 = tail call i32 @llvm.smax.i32(i32 %74, i32 1)
  store i32 0, ptr %22, align 4, !tbaa !5
  %.not = icmp ne i32 %54, 0
  br i1 %.not, label %78, label %76

76:                                               ; preds = %66
  %77 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not422 = icmp eq i32 %77, 0
  br i1 %.not422, label %.thread457.sink.split, label %78

78:                                               ; preds = %76, %66
  %79 = icmp ne i32 %55, 0
  %80 = icmp ne i32 %56, 0
  %or.cond = select i1 %79, i1 true, i1 %80
  %81 = icmp ne i32 %57, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %81
  br i1 %or.cond3, label %82, label %.thread457.sink.split

82:                                               ; preds = %78
  %.not423 = icmp eq i32 %53, 0
  br i1 %.not423, label %83, label %85

83:                                               ; preds = %82
  %84 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.6) #5
  %.not424 = icmp eq i32 %84, 0
  br i1 %.not424, label %.thread457.sink.split, label %85

85:                                               ; preds = %83, %82
  %86 = load i32, ptr %3, align 4, !tbaa !5
  %87 = icmp slt i32 %86, 0
  br i1 %87, label %.thread457.sink.split, label %88

88:                                               ; preds = %85
  %89 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %86, i32 1)
  %90 = icmp slt i32 %89, %spec.select
  br i1 %90, label %.thread457.sink.split, label %91

91:                                               ; preds = %88
  br i1 %80, label %92, label %97

92:                                               ; preds = %91
  %.not471 = icmp eq i32 %86, 0
  br i1 %.not471, label %106, label %93

93:                                               ; preds = %92
  %94 = load float, ptr %7, align 4, !tbaa !9
  %95 = load float, ptr %6, align 4, !tbaa !9
  %96 = fcmp ugt float %94, %95
  br i1 %96, label %106, label %.thread457.sink.split

97:                                               ; preds = %91
  br i1 %81, label %98, label %106

98:                                               ; preds = %97
  %99 = load i32, ptr %8, align 4, !tbaa !5
  %100 = icmp slt i32 %99, 1
  %101 = icmp ugt i32 %99, %spec.select
  %or.cond469 = or i1 %100, %101
  br i1 %or.cond469, label %.thread457.sink.split, label %102

102:                                              ; preds = %98
  %103 = load i32, ptr %9, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %86, i32 %99)
  %104 = icmp slt i32 %103, %.
  %105 = icmp ugt i32 %103, %86
  %or.cond470 = or i1 %104, %105
  br i1 %or.cond470, label %.thread457.sink.split, label %106

106:                                              ; preds = %102, %93, %92, %97
  %.pr = load i32, ptr %22, align 4, !tbaa !5
  %107 = icmp eq i32 %.pr, 0
  br i1 %107, label %108, label %.thread457

108:                                              ; preds = %106
  %109 = load i32, ptr %14, align 4, !tbaa !5
  %110 = icmp slt i32 %109, 1
  %111 = icmp ult i32 %109, %86
  %or.cond502 = and i1 %.not, %111
  %or.cond505 = or i1 %110, %or.cond502
  br i1 %or.cond505, label %.thread457.sink.split, label %.thread

.thread:                                          ; preds = %108
  %112 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.7, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %113 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.8, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  store i32 %113, ptr %25, align 4, !tbaa !5
  %114 = tail call i32 @llvm.smax.i32(i32 %112, i32 %113)
  %115 = add nsw i32 %114, 1
  %116 = load i32, ptr %3, align 4, !tbaa !5
  %117 = mul nsw i32 %115, %116
  store i32 %117, ptr %24, align 4, !tbaa !5
  %118 = tail call i32 @llvm.smax.i32(i32 %117, i32 %75)
  %119 = uitofp nneg i32 %118 to float
  store float %119, ptr %16, align 4, !tbaa !11
  %120 = getelementptr inbounds i8, ptr %16, i64 4
  store float 0.000000e+00, ptr %120, align 4, !tbaa !13
  %121 = sitofp i32 %71 to float
  store float %121, ptr %18, align 4, !tbaa !9
  store i32 %73, ptr %20, align 4, !tbaa !5
  %122 = load i32, ptr %17, align 4, !tbaa !5
  %123 = icmp sge i32 %122, %75
  %or.cond5 = select i1 %123, i1 true, i1 %67
  br i1 %or.cond5, label %124, label %.thread457.sink.split

124:                                              ; preds = %.thread
  %125 = load i32, ptr %19, align 4, !tbaa !5
  %126 = icmp sge i32 %125, %71
  %or.cond7 = select i1 %126, i1 true, i1 %67
  br i1 %or.cond7, label %127, label %.thread457.sink.split

127:                                              ; preds = %124
  %128 = load i32, ptr %21, align 4, !tbaa !5
  %129 = icmp sge i32 %128, %73
  %or.cond9 = select i1 %129, i1 true, i1 %67
  br i1 %or.cond9, label %.thread452, label %.thread457.sink.split

.thread452:                                       ; preds = %127
  %.pr454.pr = load i32, ptr %22, align 4, !tbaa !5
  %.not428 = icmp eq i32 %.pr454.pr, 0
  br i1 %.not428, label %133, label %.thread457

.thread457.sink.split:                            ; preds = %127, %124, %.thread, %108, %102, %98, %93, %88, %85, %83, %78, %76
  %.sink = phi i32 [ -1, %76 ], [ -2, %78 ], [ -3, %83 ], [ -4, %85 ], [ -6, %88 ], [ -8, %93 ], [ -9, %98 ], [ -10, %102 ], [ -15, %108 ], [ -18, %.thread ], [ -20, %124 ], [ -22, %127 ]
  store i32 %.sink, ptr %22, align 4, !tbaa !5
  br label %.thread457

.thread457:                                       ; preds = %.thread457.sink.split, %106, %.thread452
  %130 = phi i32 [ %.pr454.pr, %.thread452 ], [ %.pr, %106 ], [ %.sink, %.thread457.sink.split ]
  %131 = sub nsw i32 0, %130
  store i32 %131, ptr %24, align 4, !tbaa !5
  %132 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %24, i32 noundef 6) #5
  br label %323

133:                                              ; preds = %.thread452
  br i1 %67, label %323, label %134

134:                                              ; preds = %133
  store i32 0, ptr %11, align 4, !tbaa !5
  %135 = load i32, ptr %3, align 4, !tbaa !5
  switch i32 %135, label %156 [
    i32 0, label %136
    i32 1, label %137
  ]

136:                                              ; preds = %134
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %16, align 4, !tbaa !9
  br label %323

137:                                              ; preds = %134
  store <2 x float> <float 2.000000e+00, float 0.000000e+00>, ptr %16, align 4, !tbaa !9
  %or.cond11 = select i1 %79, i1 true, i1 %81
  br i1 %or.cond11, label %138, label %140

138:                                              ; preds = %137
  store i32 1, ptr %11, align 4, !tbaa !5
  %139 = load float, ptr %4, align 4, !tbaa !11
  br label %.sink.split

140:                                              ; preds = %137
  %141 = load float, ptr %6, align 4, !tbaa !9
  %142 = sext i32 %41 to i64
  %143 = getelementptr inbounds %struct.complex, ptr %43, i64 %142
  %144 = load float, ptr %143, align 4, !tbaa !11
  %145 = fcmp olt float %141, %144
  br i1 %145, label %146, label %151

146:                                              ; preds = %140
  %147 = load float, ptr %7, align 4, !tbaa !9
  %148 = load float, ptr %4, align 4, !tbaa !11
  %149 = fcmp ult float %147, %148
  br i1 %149, label %151, label %150

150:                                              ; preds = %146
  store i32 1, ptr %11, align 4, !tbaa !5
  br label %.sink.split

.sink.split:                                      ; preds = %138, %150
  %.sink503 = phi float [ %148, %150 ], [ %139, %138 ]
  store float %.sink503, ptr %12, align 4, !tbaa !9
  br label %151

151:                                              ; preds = %.sink.split, %140, %146
  br i1 %.not, label %152, label %323

152:                                              ; preds = %151
  store float 1.000000e+00, ptr %13, align 4, !tbaa !11
  %153 = sext i32 %46 to i64
  %154 = getelementptr inbounds %struct.complex, ptr %48, i64 %153, i32 1
  store float 0.000000e+00, ptr %154, align 4, !tbaa !13
  store i32 1, ptr %15, align 4, !tbaa !5
  %155 = getelementptr inbounds i8, ptr %15, i64 4
  store i32 1, ptr %155, align 4, !tbaa !5
  br label %323

156:                                              ; preds = %134
  %157 = tail call float @slamch_(ptr noundef nonnull @.str.9) #5
  %158 = tail call float @slamch_(ptr noundef nonnull @.str.10) #5
  %159 = fdiv float %157, %158
  %160 = fdiv float 1.000000e+00, %159
  %sqrtf = tail call float @sqrtf(float noundef %159) #3
  %sqrtf429 = tail call float @sqrtf(float noundef %160) #3
  store float %sqrtf429, ptr %26, align 4, !tbaa !9
  %161 = fpext float %157 to double
  %162 = tail call double @sqrt(double noundef %161) #5
  %163 = tail call double @sqrt(double noundef %162) #5
  %164 = fdiv double 1.000000e+00, %163
  %165 = fptrunc double %164 to float
  %166 = fcmp ole float %sqrtf429, %165
  %167 = select i1 %166, float %sqrtf429, float %165
  %168 = load float, ptr %10, align 4, !tbaa !9
  store float %168, ptr %32, align 4, !tbaa !9
  %.not430 = icmp eq i32 %56, 0
  br i1 %.not430, label %172, label %169

169:                                              ; preds = %156
  %170 = load float, ptr %6, align 4, !tbaa !9
  store float %170, ptr %37, align 4, !tbaa !9
  %171 = load float, ptr %7, align 4, !tbaa !9
  store float %171, ptr %38, align 4, !tbaa !9
  br label %172

172:                                              ; preds = %169, %156
  %173 = tail call float @clansy_(ptr noundef nonnull @.str.11, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %18) #5
  %174 = fcmp ogt float %173, 0.000000e+00
  %175 = fcmp olt float %173, %sqrtf
  %or.cond445 = select i1 %174, i1 %175, i1 false
  br i1 %or.cond445, label %178, label %176

176:                                              ; preds = %172
  %177 = fcmp ogt float %173, %167
  br i1 %177, label %178, label %207

178:                                              ; preds = %176, %172
  %.pn = phi float [ %sqrtf, %172 ], [ %167, %176 ]
  %storemerge472 = fdiv float %.pn, %173
  store float %storemerge472, ptr %29, align 4, !tbaa !9
  %179 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %179, ptr %24, align 4, !tbaa !5
  br i1 %.not423, label %189, label %180

180:                                              ; preds = %178
  store i32 1, ptr %28, align 4, !tbaa !5
  %.not434476 = icmp slt i32 %179, 1
  br i1 %.not434476, label %.loopexit474, label %.lr.ph

.lr.ph:                                           ; preds = %180, %.lr.ph
  %storemerge433477 = phi i32 [ %187, %.lr.ph ], [ 1, %180 ]
  %181 = load i32, ptr %3, align 4, !tbaa !5
  %reass.sub = sub i32 %181, %storemerge433477
  %182 = add i32 %reass.sub, 1
  store i32 %182, ptr %25, align 4, !tbaa !5
  %183 = mul i32 %storemerge433477, %41
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds %struct.complex, ptr %43, i64 %184
  call void @csscal_(ptr noundef nonnull %25, ptr noundef nonnull %29, ptr noundef %185, ptr noundef nonnull @c__1) #5
  %186 = load i32, ptr %28, align 4, !tbaa !5
  %187 = add nsw i32 %186, 1
  store i32 %187, ptr %28, align 4, !tbaa !5
  %188 = load i32, ptr %24, align 4, !tbaa !5
  %.not434.not = icmp slt i32 %186, %188
  br i1 %.not434.not, label %.lr.ph, label %.loopexit474, !llvm.loop !14

189:                                              ; preds = %178
  %invariant.gep = getelementptr i8, ptr %43, i64 8
  store i32 1, ptr %28, align 4, !tbaa !5
  %.not432478 = icmp slt i32 %179, 1
  br i1 %.not432478, label %.loopexit474, label %.lr.ph480

.lr.ph480:                                        ; preds = %189, %.lr.ph480
  %storemerge479 = phi i32 [ %193, %.lr.ph480 ], [ 1, %189 ]
  %190 = mul nsw i32 %storemerge479, %40
  %191 = sext i32 %190 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %191
  call void @csscal_(ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef %gep, ptr noundef nonnull @c__1) #5
  %192 = load i32, ptr %28, align 4, !tbaa !5
  %193 = add nsw i32 %192, 1
  store i32 %193, ptr %28, align 4, !tbaa !5
  %194 = load i32, ptr %24, align 4, !tbaa !5
  %.not432.not = icmp slt i32 %192, %194
  br i1 %.not432.not, label %.lr.ph480, label %.loopexit474, !llvm.loop !16

.loopexit474:                                     ; preds = %.lr.ph, %.lr.ph480, %180, %189
  %195 = load float, ptr %10, align 4, !tbaa !9
  %196 = fcmp ogt float %195, 0.000000e+00
  br i1 %196, label %197, label %200

197:                                              ; preds = %.loopexit474
  %198 = load float, ptr %29, align 4, !tbaa !9
  %199 = fmul float %195, %198
  store float %199, ptr %32, align 4, !tbaa !9
  br label %200

200:                                              ; preds = %197, %.loopexit474
  br i1 %.not430, label %207, label %201

201:                                              ; preds = %200
  %202 = load float, ptr %6, align 4, !tbaa !9
  %203 = load float, ptr %29, align 4, !tbaa !9
  %204 = fmul float %202, %203
  store float %204, ptr %37, align 4, !tbaa !9
  %205 = load float, ptr %7, align 4, !tbaa !9
  %206 = fmul float %203, %205
  store float %206, ptr %38, align 4, !tbaa !9
  br label %207

207:                                              ; preds = %176, %200, %201
  %208 = phi i1 [ true, %200 ], [ true, %201 ], [ false, %176 ]
  %209 = load i32, ptr %3, align 4, !tbaa !5
  %210 = add nsw i32 %209, 1
  %211 = load i32, ptr %17, align 4, !tbaa !5
  %212 = sub i32 %211, %209
  store i32 %212, ptr %35, align 4, !tbaa !5
  %213 = add nsw i32 %210, %209
  %214 = add nsw i32 %213, %209
  %215 = add nsw i32 %214, %209
  %216 = load i32, ptr %19, align 4, !tbaa !5
  %217 = add i32 %216, 1
  %218 = sub i32 %217, %215
  store i32 %218, ptr %39, align 4, !tbaa !5
  %219 = sext i32 %210 to i64
  %220 = getelementptr inbounds float, ptr %50, i64 %219
  %221 = getelementptr inbounds %struct.complex, ptr %49, i64 %219
  call void @chetrd_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %18, ptr noundef nonnull %220, ptr noundef nonnull %16, ptr noundef nonnull %221, ptr noundef nonnull %35, ptr noundef nonnull %30) #5
  %.not435 = icmp eq i32 %57, 0
  br i1 %.not435, label %229, label %222

222:                                              ; preds = %207
  %223 = load i32, ptr %8, align 4, !tbaa !5
  %224 = icmp eq i32 %223, 1
  br i1 %224, label %225, label %229

225:                                              ; preds = %222
  %226 = load i32, ptr %9, align 4, !tbaa !5
  %227 = load i32, ptr %3, align 4, !tbaa !5
  %228 = icmp eq i32 %226, %227
  br label %229

229:                                              ; preds = %225, %222, %207
  %230 = phi i1 [ false, %222 ], [ false, %207 ], [ %228, %225 ]
  %or.cond13 = or i1 %79, %230
  %231 = icmp eq i32 %52, 1
  %or.cond15 = select i1 %or.cond13, i1 %231, i1 false
  br i1 %or.cond15, label %232, label %262

232:                                              ; preds = %229
  br i1 %.not, label %238, label %233

233:                                              ; preds = %232
  call void @scopy_(ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull @c__1, ptr noundef %12, ptr noundef nonnull @c__1) #5
  %234 = load i32, ptr %3, align 4, !tbaa !5
  %235 = add nsw i32 %234, -1
  store i32 %235, ptr %24, align 4, !tbaa !5
  %236 = sext i32 %214 to i64
  %237 = getelementptr inbounds float, ptr %50, i64 %236
  call void @scopy_(ptr noundef nonnull %24, ptr noundef nonnull %220, ptr noundef nonnull @c__1, ptr noundef nonnull %237, ptr noundef nonnull @c__1) #5
  call void @ssterf_(ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %237, ptr noundef nonnull %22) #5
  br label %258

238:                                              ; preds = %232
  %239 = load i32, ptr %3, align 4, !tbaa !5
  %240 = add nsw i32 %239, -1
  store i32 %240, ptr %24, align 4, !tbaa !5
  %241 = sext i32 %214 to i64
  %242 = getelementptr inbounds float, ptr %50, i64 %241
  call void @scopy_(ptr noundef nonnull %24, ptr noundef nonnull %220, ptr noundef nonnull @c__1, ptr noundef nonnull %242, ptr noundef nonnull @c__1) #5
  %243 = sext i32 %213 to i64
  %244 = getelementptr inbounds float, ptr %50, i64 %243
  call void @scopy_(ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull @c__1, ptr noundef nonnull %244, ptr noundef nonnull @c__1) #5
  %245 = load float, ptr %10, align 4, !tbaa !9
  %246 = load i32, ptr %3, align 4, !tbaa !5
  %247 = sitofp i32 %246 to float
  %248 = fmul float %247, 2.000000e+00
  %249 = fmul float %158, %248
  %250 = fcmp ole float %245, %249
  %.447 = zext i1 %250 to i32
  store i32 %.447, ptr %33, align 4, !tbaa !5
  %251 = sext i32 %215 to i64
  %252 = getelementptr inbounds float, ptr %50, i64 %251
  call void @cstemr_(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull %3, ptr noundef nonnull %244, ptr noundef nonnull %242, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %33, ptr noundef nonnull %252, ptr noundef nonnull %39, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %22) #5
  %253 = load i32, ptr %22, align 4, !tbaa !5
  %254 = icmp eq i32 %253, 0
  br i1 %254, label %255, label %.thread464

255:                                              ; preds = %238
  %256 = load i32, ptr %17, align 4, !tbaa !5
  %257 = sub i32 %256, %209
  store i32 %257, ptr %34, align 4, !tbaa !5
  call void @cunmtr_(ptr noundef nonnull @.str.2, ptr noundef %2, ptr noundef nonnull @.str.1, ptr noundef nonnull %3, ptr noundef nonnull %11, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %16, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %221, ptr noundef nonnull %34, ptr noundef nonnull %30) #5
  br label %258

258:                                              ; preds = %255, %233
  %.pr463 = load i32, ptr %22, align 4, !tbaa !5
  %259 = icmp eq i32 %.pr463, 0
  br i1 %259, label %260, label %.thread464

260:                                              ; preds = %258
  %261 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %261, ptr %11, align 4, !tbaa !5
  br label %273

.thread464:                                       ; preds = %238, %258
  store i32 0, ptr %22, align 4, !tbaa !5
  br label %262

262:                                              ; preds = %229, %.thread464
  %.448 = select i1 %.not, i8 66, i8 69
  store i8 %.448, ptr %31, align 1, !tbaa !17
  %263 = getelementptr inbounds i32, ptr %51, i64 %219
  %264 = sext i32 %215 to i64
  %265 = getelementptr inbounds float, ptr %50, i64 %264
  %266 = sext i32 %214 to i64
  %267 = getelementptr inbounds i32, ptr %51, i64 %266
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %31, ptr noundef nonnull %3, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %32, ptr noundef nonnull %18, ptr noundef nonnull %220, ptr noundef nonnull %11, ptr noundef nonnull %36, ptr noundef %12, ptr noundef nonnull %20, ptr noundef nonnull %263, ptr noundef nonnull %265, ptr noundef nonnull %267, ptr noundef nonnull %22) #5
  br i1 %.not, label %268, label %273

268:                                              ; preds = %262
  %269 = sext i32 %213 to i64
  %270 = getelementptr inbounds i32, ptr %51, i64 %269
  call void @cstein_(ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull %220, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %20, ptr noundef nonnull %263, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %265, ptr noundef nonnull %267, ptr noundef nonnull %270, ptr noundef nonnull %22) #5
  %271 = load i32, ptr %17, align 4, !tbaa !5
  %272 = sub i32 %271, %209
  store i32 %272, ptr %34, align 4, !tbaa !5
  call void @cunmtr_(ptr noundef nonnull @.str.2, ptr noundef %2, ptr noundef nonnull @.str.1, ptr noundef nonnull %3, ptr noundef nonnull %11, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %16, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %221, ptr noundef nonnull %34, ptr noundef nonnull %30) #5
  br label %273

273:                                              ; preds = %262, %268, %260
  br i1 %208, label %274, label %284

274:                                              ; preds = %273
  %275 = load i32, ptr %22, align 4, !tbaa !5
  %276 = icmp eq i32 %275, 0
  br i1 %276, label %277, label %279

277:                                              ; preds = %274
  %278 = load i32, ptr %11, align 4, !tbaa !5
  br label %281

279:                                              ; preds = %274
  %280 = add nsw i32 %275, -1
  br label %281

281:                                              ; preds = %279, %277
  %storemerge438 = phi i32 [ %280, %279 ], [ %278, %277 ]
  store i32 %storemerge438, ptr %27, align 4, !tbaa !5
  %282 = load float, ptr %29, align 4, !tbaa !9
  %283 = fdiv float 1.000000e+00, %282
  store float %283, ptr %26, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef %12, ptr noundef nonnull @c__1) #5
  br label %284

284:                                              ; preds = %281, %273
  br i1 %.not, label %285, label %.loopexit

285:                                              ; preds = %284
  %286 = load i32, ptr %11, align 4, !tbaa !5
  %287 = add nsw i32 %286, -1
  store i32 %287, ptr %24, align 4, !tbaa !5
  %invariant.gep487 = getelementptr i8, ptr %48, i64 8
  store i32 1, ptr %28, align 4, !tbaa !5
  %.not440491 = icmp slt i32 %286, 2
  br i1 %.not440491, label %.loopexit, label %.lr.ph494

.lr.ph494:                                        ; preds = %285, %._crit_edge.thread
  %288 = phi i32 [ %320, %._crit_edge.thread ], [ %287, %285 ]
  %storemerge439492 = phi i32 [ %322, %._crit_edge.thread ], [ 1, %285 ]
  %289 = sext i32 %storemerge439492 to i64
  %290 = getelementptr inbounds float, ptr %44, i64 %289
  %291 = load float, ptr %290, align 4, !tbaa !9
  %292 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %292, ptr %25, align 4, !tbaa !5
  %.not441.not481 = icmp slt i32 %storemerge439492, %292
  br i1 %.not441.not481, label %.lr.ph485.preheader, label %._crit_edge.thread

.lr.ph485.preheader:                              ; preds = %.lr.ph494
  %wide.trip.count = sext i32 %292 to i64
  %293 = sub nsw i64 %wide.trip.count, %289
  %xtraiter = and i64 %293, 1
  %294 = add nsw i64 %wide.trip.count, -1
  %295 = icmp eq i64 %294, %289
  br i1 %295, label %._crit_edge.unr-lcssa, label %.lr.ph485.preheader.new

.lr.ph485.preheader.new:                          ; preds = %.lr.ph485.preheader
  %unroll_iter = and i64 %293, -2
  br label %.lr.ph485

.lr.ph485:                                        ; preds = %.lr.ph485, %.lr.ph485.preheader.new
  %indvars.iv = phi i64 [ %289, %.lr.ph485.preheader.new ], [ %indvars.iv.next.1, %.lr.ph485 ]
  %.0484 = phi float [ %291, %.lr.ph485.preheader.new ], [ %.1.1, %.lr.ph485 ]
  %.0401483 = phi i32 [ 0, %.lr.ph485.preheader.new ], [ %.1402.1, %.lr.ph485 ]
  %niter = phi i64 [ 0, %.lr.ph485.preheader.new ], [ %niter.next.1, %.lr.ph485 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %296 = getelementptr float, ptr %12, i64 %indvars.iv
  %297 = load float, ptr %296, align 4, !tbaa !9
  %298 = fcmp olt float %297, %.0484
  %299 = trunc nsw i64 %indvars.iv.next to i32
  %.1402 = select i1 %298, i32 %299, i32 %.0401483
  %.1 = select i1 %298, float %297, float %.0484
  %indvars.iv.next.1 = add nsw i64 %indvars.iv, 2
  %300 = getelementptr float, ptr %12, i64 %indvars.iv.next
  %301 = load float, ptr %300, align 4, !tbaa !9
  %302 = fcmp olt float %301, %.1
  %303 = trunc nsw i64 %indvars.iv.next.1 to i32
  %.1402.1 = select i1 %302, i32 %303, i32 %.1402
  %.1.1 = select i1 %302, float %301, float %.1
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.unr-lcssa, label %.lr.ph485, !llvm.loop !18

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph485, %.lr.ph485.preheader
  %.1402.lcssa.ph = phi i32 [ poison, %.lr.ph485.preheader ], [ %.1402.1, %.lr.ph485 ]
  %.1.lcssa.ph = phi float [ poison, %.lr.ph485.preheader ], [ %.1.1, %.lr.ph485 ]
  %indvars.iv.unr = phi i64 [ %289, %.lr.ph485.preheader ], [ %indvars.iv.next.1, %.lr.ph485 ]
  %.0484.unr = phi float [ %291, %.lr.ph485.preheader ], [ %.1.1, %.lr.ph485 ]
  %.0401483.unr = phi i32 [ 0, %.lr.ph485.preheader ], [ %.1402.1, %.lr.ph485 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph485.epil

.lr.ph485.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %304 = getelementptr float, ptr %12, i64 %indvars.iv.unr
  %305 = load float, ptr %304, align 4, !tbaa !9
  %306 = fcmp olt float %305, %.0484.unr
  %307 = trunc i64 %indvars.iv.unr to i32
  %308 = add i32 %307, 1
  %.1402.epil = select i1 %306, i32 %308, i32 %.0401483.unr
  %.1.epil = select i1 %306, float %305, float %.0484.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph485.epil
  %.1402.lcssa = phi i32 [ %.1402.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1402.epil, %.lr.ph485.epil ]
  %.1.lcssa = phi float [ %.1.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1.epil, %.lr.ph485.epil ]
  %.not442 = icmp eq i32 %.1402.lcssa, 0
  br i1 %.not442, label %._crit_edge.thread, label %309

309:                                              ; preds = %._crit_edge
  %310 = sext i32 %.1402.lcssa to i64
  %311 = getelementptr inbounds i32, ptr %51, i64 %310
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = getelementptr inbounds float, ptr %44, i64 %310
  store float %291, ptr %313, align 4, !tbaa !9
  %314 = getelementptr inbounds i32, ptr %51, i64 %289
  %315 = load i32, ptr %314, align 4, !tbaa !5
  store i32 %315, ptr %311, align 4, !tbaa !5
  store float %.1.lcssa, ptr %290, align 4, !tbaa !9
  store i32 %312, ptr %314, align 4, !tbaa !5
  %316 = mul nsw i32 %.1402.lcssa, %45
  %317 = sext i32 %316 to i64
  %gep488 = getelementptr %struct.complex, ptr %invariant.gep487, i64 %317
  %318 = mul nsw i32 %storemerge439492, %45
  %319 = sext i32 %318 to i64
  %gep490 = getelementptr %struct.complex, ptr %invariant.gep487, i64 %319
  call void @cswap_(ptr noundef nonnull %3, ptr noundef %gep488, ptr noundef nonnull @c__1, ptr noundef %gep490, ptr noundef nonnull @c__1) #5
  %.pre = load i32, ptr %28, align 4, !tbaa !5
  %.pre497 = load i32, ptr %24, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph494, %._crit_edge, %309
  %320 = phi i32 [ %288, %._crit_edge ], [ %.pre497, %309 ], [ %288, %.lr.ph494 ]
  %321 = phi i32 [ %storemerge439492, %._crit_edge ], [ %.pre, %309 ], [ %storemerge439492, %.lr.ph494 ]
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr %28, align 4, !tbaa !5
  %.not440.not = icmp slt i32 %321, %320
  br i1 %.not440.not, label %.lr.ph494, label %.loopexit, !llvm.loop !19

.loopexit:                                        ; preds = %._crit_edge.thread, %285, %284
  store float %119, ptr %16, align 4, !tbaa !11
  store float 0.000000e+00, ptr %120, align 4, !tbaa !13
  store float %121, ptr %18, align 4, !tbaa !9
  store i32 %73, ptr %20, align 4, !tbaa !5
  br label %323

323:                                              ; preds = %151, %152, %133, %.loopexit, %136, %.thread457
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

declare float @clansy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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

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

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


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