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

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

%struct.complex = type { float, float }

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

; Function Attrs: nounwind uwtable
define dso_local i32 @cgedmdq_(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, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, ptr noundef %28, ptr noundef %29, ptr noundef %30, ptr noundef %31, ptr noundef %32, ptr noundef %33, ptr noundef %34) #0 {
  %36 = alloca i32, align 4
  %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 ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %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 i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca float, align 4
  %89 = alloca i32, align 4
  %90 = alloca [1 x i8], align 1
  %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 %struct.complex, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca float, align 4
  %117 = alloca i32, align 4
  store ptr %0, ptr %37, align 8, !tbaa !5
  store ptr %1, ptr %38, align 8, !tbaa !5
  store ptr %2, ptr %39, align 8, !tbaa !5
  store ptr %3, ptr %40, align 8, !tbaa !5
  store ptr %4, ptr %41, align 8, !tbaa !5
  store ptr %5, ptr %42, align 8, !tbaa !5
  store ptr %6, ptr %43, align 8, !tbaa !5
  store ptr %7, ptr %44, align 8, !tbaa !5
  store ptr %8, ptr %45, align 8, !tbaa !5
  store ptr %9, ptr %46, align 8, !tbaa !5
  store ptr %10, ptr %47, align 8, !tbaa !5
  store ptr %11, ptr %48, align 8, !tbaa !5
  store ptr %12, ptr %49, align 8, !tbaa !5
  store ptr %13, ptr %50, align 8, !tbaa !5
  store ptr %14, ptr %51, align 8, !tbaa !5
  store ptr %15, ptr %52, align 8, !tbaa !5
  store ptr %16, ptr %53, align 8, !tbaa !5
  store ptr %17, ptr %54, align 8, !tbaa !5
  store ptr %18, ptr %55, align 8, !tbaa !5
  store ptr %19, ptr %56, align 8, !tbaa !5
  store ptr %20, ptr %57, align 8, !tbaa !5
  store ptr %21, ptr %58, align 8, !tbaa !5
  store ptr %22, ptr %59, align 8, !tbaa !5
  store ptr %23, ptr %60, align 8, !tbaa !5
  store ptr %24, ptr %61, align 8, !tbaa !5
  store ptr %25, ptr %62, align 8, !tbaa !5
  store ptr %26, ptr %63, align 8, !tbaa !5
  store ptr %27, ptr %64, align 8, !tbaa !5
  store ptr %28, ptr %65, align 8, !tbaa !5
  store ptr %29, ptr %66, align 8, !tbaa !5
  store ptr %30, ptr %67, align 8, !tbaa !5
  store ptr %31, ptr %68, align 8, !tbaa !5
  store ptr %32, ptr %69, align 8, !tbaa !5
  store ptr %33, ptr %70, align 8, !tbaa !5
  store ptr %34, ptr %71, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #3
  %118 = load ptr, ptr %47, align 8, !tbaa !5
  %119 = load i32, ptr %118, align 4, !tbaa !9
  store i32 %119, ptr %72, align 4, !tbaa !9
  %120 = load i32, ptr %72, align 4, !tbaa !9
  %121 = mul nsw i32 %120, 1
  %122 = add nsw i32 1, %121
  store i32 %122, ptr %73, align 4, !tbaa !9
  %123 = load i32, ptr %73, align 4, !tbaa !9
  %124 = load ptr, ptr %46, 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 %46, align 8, !tbaa !5
  %128 = load ptr, ptr %49, align 8, !tbaa !5
  %129 = load i32, ptr %128, align 4, !tbaa !9
  store i32 %129, ptr %74, align 4, !tbaa !9
  %130 = load i32, ptr %74, align 4, !tbaa !9
  %131 = mul nsw i32 %130, 1
  %132 = add nsw i32 1, %131
  store i32 %132, ptr %75, align 4, !tbaa !9
  %133 = load i32, ptr %75, align 4, !tbaa !9
  %134 = load ptr, ptr %48, align 8, !tbaa !5
  %135 = sext i32 %133 to i64
  %136 = sub i64 0, %135
  %137 = getelementptr inbounds %struct.complex, ptr %134, i64 %136
  store ptr %137, ptr %48, align 8, !tbaa !5
  %138 = load ptr, ptr %51, align 8, !tbaa !5
  %139 = load i32, ptr %138, align 4, !tbaa !9
  store i32 %139, ptr %76, align 4, !tbaa !9
  %140 = load i32, ptr %76, align 4, !tbaa !9
  %141 = mul nsw i32 %140, 1
  %142 = add nsw i32 1, %141
  store i32 %142, ptr %77, align 4, !tbaa !9
  %143 = load i32, ptr %77, align 4, !tbaa !9
  %144 = load ptr, ptr %50, align 8, !tbaa !5
  %145 = sext i32 %143 to i64
  %146 = sub i64 0, %145
  %147 = getelementptr inbounds %struct.complex, ptr %144, i64 %146
  store ptr %147, ptr %50, align 8, !tbaa !5
  %148 = load ptr, ptr %55, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.complex, ptr %148, i32 -1
  store ptr %149, ptr %55, align 8, !tbaa !5
  %150 = load ptr, ptr %57, align 8, !tbaa !5
  %151 = load i32, ptr %150, align 4, !tbaa !9
  store i32 %151, ptr %78, align 4, !tbaa !9
  %152 = load i32, ptr %78, align 4, !tbaa !9
  %153 = mul nsw i32 %152, 1
  %154 = add nsw i32 1, %153
  store i32 %154, ptr %79, align 4, !tbaa !9
  %155 = load i32, ptr %79, align 4, !tbaa !9
  %156 = load ptr, ptr %56, align 8, !tbaa !5
  %157 = sext i32 %155 to i64
  %158 = sub i64 0, %157
  %159 = getelementptr inbounds %struct.complex, ptr %156, i64 %158
  store ptr %159, ptr %56, align 8, !tbaa !5
  %160 = load ptr, ptr %58, align 8, !tbaa !5
  %161 = getelementptr inbounds float, ptr %160, i32 -1
  store ptr %161, ptr %58, align 8, !tbaa !5
  %162 = load ptr, ptr %60, align 8, !tbaa !5
  %163 = load i32, ptr %162, align 4, !tbaa !9
  store i32 %163, ptr %80, align 4, !tbaa !9
  %164 = load i32, ptr %80, align 4, !tbaa !9
  %165 = mul nsw i32 %164, 1
  %166 = add nsw i32 1, %165
  store i32 %166, ptr %81, align 4, !tbaa !9
  %167 = load i32, ptr %81, align 4, !tbaa !9
  %168 = load ptr, ptr %59, align 8, !tbaa !5
  %169 = sext i32 %167 to i64
  %170 = sub i64 0, %169
  %171 = getelementptr inbounds %struct.complex, ptr %168, i64 %170
  store ptr %171, ptr %59, align 8, !tbaa !5
  %172 = load ptr, ptr %62, align 8, !tbaa !5
  %173 = load i32, ptr %172, align 4, !tbaa !9
  store i32 %173, ptr %82, align 4, !tbaa !9
  %174 = load i32, ptr %82, align 4, !tbaa !9
  %175 = mul nsw i32 %174, 1
  %176 = add nsw i32 1, %175
  store i32 %176, ptr %83, align 4, !tbaa !9
  %177 = load i32, ptr %83, align 4, !tbaa !9
  %178 = load ptr, ptr %61, align 8, !tbaa !5
  %179 = sext i32 %177 to i64
  %180 = sub i64 0, %179
  %181 = getelementptr inbounds %struct.complex, ptr %178, i64 %180
  store ptr %181, ptr %61, align 8, !tbaa !5
  %182 = load ptr, ptr %64, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !9
  store i32 %183, ptr %84, align 4, !tbaa !9
  %184 = load i32, ptr %84, align 4, !tbaa !9
  %185 = mul nsw i32 %184, 1
  %186 = add nsw i32 1, %185
  store i32 %186, ptr %85, align 4, !tbaa !9
  %187 = load i32, ptr %85, align 4, !tbaa !9
  %188 = load ptr, ptr %63, align 8, !tbaa !5
  %189 = sext i32 %187 to i64
  %190 = sub i64 0, %189
  %191 = getelementptr inbounds %struct.complex, ptr %188, i64 %190
  store ptr %191, ptr %63, align 8, !tbaa !5
  %192 = load ptr, ptr %65, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.complex, ptr %192, i32 -1
  store ptr %193, ptr %65, align 8, !tbaa !5
  %194 = load ptr, ptr %67, align 8, !tbaa !5
  %195 = getelementptr inbounds float, ptr %194, i32 -1
  store ptr %195, ptr %67, align 8, !tbaa !5
  %196 = load ptr, ptr %69, align 8, !tbaa !5
  %197 = getelementptr inbounds i32, ptr %196, i32 -1
  store ptr %197, ptr %69, align 8, !tbaa !5
  store float 1.000000e+00, ptr %116, align 4, !tbaa !11
  store float 0.000000e+00, ptr %88, align 4, !tbaa !11
  %198 = getelementptr inbounds %struct.complex, ptr %96, i32 0, i32 0
  store float 0.000000e+00, ptr %198, align 4, !tbaa !13
  %199 = getelementptr inbounds %struct.complex, ptr %96, i32 0, i32 1
  store float 0.000000e+00, ptr %199, align 4, !tbaa !15
  %200 = load ptr, ptr %39, align 8, !tbaa !5
  %201 = call i32 @lsame_(ptr noundef %200, ptr noundef @.str)
  store i32 %201, ptr %113, align 4, !tbaa !9
  %202 = load ptr, ptr %37, align 8, !tbaa !5
  %203 = call i32 @lsame_(ptr noundef %202, ptr noundef @.str.1)
  %204 = icmp ne i32 %203, 0
  br i1 %204, label %209, label %205

205:                                              ; preds = %35
  %206 = load ptr, ptr %37, align 8, !tbaa !5
  %207 = call i32 @lsame_(ptr noundef %206, ptr noundef @.str.2)
  %208 = icmp ne i32 %207, 0
  br label %209

209:                                              ; preds = %205, %35
  %210 = phi i1 [ true, %35 ], [ %208, %205 ]
  %211 = zext i1 %210 to i32
  store i32 %211, ptr %99, align 4, !tbaa !9
  %212 = load ptr, ptr %37, align 8, !tbaa !5
  %213 = call i32 @lsame_(ptr noundef %212, ptr noundef @.str.3)
  store i32 %213, ptr %100, align 4, !tbaa !9
  %214 = load ptr, ptr %38, align 8, !tbaa !5
  %215 = call i32 @lsame_(ptr noundef %214, ptr noundef @.str.4)
  store i32 %215, ptr %102, align 4, !tbaa !9
  %216 = load ptr, ptr %38, align 8, !tbaa !5
  %217 = call i32 @lsame_(ptr noundef %216, ptr noundef @.str.5)
  store i32 %217, ptr %103, align 4, !tbaa !9
  %218 = load ptr, ptr %38, align 8, !tbaa !5
  %219 = call i32 @lsame_(ptr noundef %218, ptr noundef @.str.6)
  store i32 %219, ptr %115, align 4, !tbaa !9
  %220 = load ptr, ptr %42, align 8, !tbaa !5
  %221 = call i32 @lsame_(ptr noundef %220, ptr noundef @.str)
  store i32 %221, ptr %105, align 4, !tbaa !9
  %222 = load ptr, ptr %42, align 8, !tbaa !5
  %223 = call i32 @lsame_(ptr noundef %222, ptr noundef @.str.7)
  store i32 %223, ptr %95, align 4, !tbaa !9
  %224 = load ptr, ptr %40, align 8, !tbaa !5
  %225 = call i32 @lsame_(ptr noundef %224, ptr noundef @.str.6)
  store i32 %225, ptr %92, align 4, !tbaa !9
  %226 = load ptr, ptr %41, align 8, !tbaa !5
  %227 = call i32 @lsame_(ptr noundef %226, ptr noundef @.str)
  store i32 %227, ptr %114, align 4, !tbaa !9
  %228 = load ptr, ptr %44, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = load ptr, ptr %45, align 8, !tbaa !5
  %231 = load i32, ptr %230, align 4, !tbaa !9
  %232 = icmp sle i32 %229, %231
  br i1 %232, label %233, label %236

233:                                              ; preds = %209
  %234 = load ptr, ptr %44, align 8, !tbaa !5
  %235 = load i32, ptr %234, align 4, !tbaa !9
  br label %239

236:                                              ; preds = %209
  %237 = load ptr, ptr %45, align 8, !tbaa !5
  %238 = load i32, ptr %237, align 4, !tbaa !9
  br label %239

239:                                              ; preds = %236, %233
  %240 = phi i32 [ %235, %233 ], [ %238, %236 ]
  store i32 %240, ptr %91, align 4, !tbaa !9
  %241 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 0, ptr %241, align 4, !tbaa !9
  %242 = load ptr, ptr %68, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = icmp eq i32 %243, -1
  br i1 %244, label %249, label %245

245:                                              ; preds = %239
  %246 = load ptr, ptr %70, align 8, !tbaa !5
  %247 = load i32, ptr %246, align 4, !tbaa !9
  %248 = icmp eq i32 %247, -1
  br label %249

249:                                              ; preds = %245, %239
  %250 = phi i1 [ true, %239 ], [ %248, %245 ]
  %251 = zext i1 %250 to i32
  store i32 %251, ptr %112, align 4, !tbaa !9
  %252 = load i32, ptr %99, align 4, !tbaa !9
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %263, label %254

254:                                              ; preds = %249
  %255 = load i32, ptr %100, align 4, !tbaa !9
  %256 = icmp ne i32 %255, 0
  br i1 %256, label %263, label %257

257:                                              ; preds = %254
  %258 = load ptr, ptr %37, align 8, !tbaa !5
  %259 = call i32 @lsame_(ptr noundef %258, ptr noundef @.str.8)
  %260 = icmp ne i32 %259, 0
  br i1 %260, label %263, label %261

261:                                              ; preds = %257
  %262 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -1, ptr %262, align 4, !tbaa !9
  br label %471

263:                                              ; preds = %257, %254, %249
  %264 = load i32, ptr %102, align 4, !tbaa !9
  %265 = icmp ne i32 %264, 0
  br i1 %265, label %278, label %266

266:                                              ; preds = %263
  %267 = load i32, ptr %103, align 4, !tbaa !9
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %278, label %269

269:                                              ; preds = %266
  %270 = load i32, ptr %115, align 4, !tbaa !9
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %278, label %272

272:                                              ; preds = %269
  %273 = load ptr, ptr %38, align 8, !tbaa !5
  %274 = call i32 @lsame_(ptr noundef %273, ptr noundef @.str.8)
  %275 = icmp ne i32 %274, 0
  br i1 %275, label %278, label %276

276:                                              ; preds = %272
  %277 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -2, ptr %277, align 4, !tbaa !9
  br label %470

278:                                              ; preds = %272, %269, %266, %263
  %279 = load i32, ptr %113, align 4, !tbaa !9
  %280 = icmp ne i32 %279, 0
  br i1 %280, label %285, label %281

281:                                              ; preds = %278
  %282 = load ptr, ptr %39, align 8, !tbaa !5
  %283 = call i32 @lsame_(ptr noundef %282, ptr noundef @.str.8)
  %284 = icmp ne i32 %283, 0
  br i1 %284, label %285, label %292

285:                                              ; preds = %281, %278
  %286 = load i32, ptr %113, align 4, !tbaa !9
  %287 = icmp ne i32 %286, 0
  br i1 %287, label %288, label %294

288:                                              ; preds = %285
  %289 = load ptr, ptr %38, align 8, !tbaa !5
  %290 = call i32 @lsame_(ptr noundef %289, ptr noundef @.str.8)
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %292, label %294

292:                                              ; preds = %288, %281
  %293 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -3, ptr %293, align 4, !tbaa !9
  br label %469

294:                                              ; preds = %288, %285
  %295 = load i32, ptr %92, align 4, !tbaa !9
  %296 = icmp ne i32 %295, 0
  br i1 %296, label %303, label %297

297:                                              ; preds = %294
  %298 = load ptr, ptr %40, align 8, !tbaa !5
  %299 = call i32 @lsame_(ptr noundef %298, ptr noundef @.str.8)
  %300 = icmp ne i32 %299, 0
  br i1 %300, label %303, label %301

301:                                              ; preds = %297
  %302 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -4, ptr %302, align 4, !tbaa !9
  br label %468

303:                                              ; preds = %297, %294
  %304 = load i32, ptr %114, align 4, !tbaa !9
  %305 = icmp ne i32 %304, 0
  br i1 %305, label %312, label %306

306:                                              ; preds = %303
  %307 = load ptr, ptr %41, align 8, !tbaa !5
  %308 = call i32 @lsame_(ptr noundef %307, ptr noundef @.str.8)
  %309 = icmp ne i32 %308, 0
  br i1 %309, label %312, label %310

310:                                              ; preds = %306
  %311 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -5, ptr %311, align 4, !tbaa !9
  br label %467

312:                                              ; preds = %306, %303
  %313 = load i32, ptr %105, align 4, !tbaa !9
  %314 = icmp ne i32 %313, 0
  br i1 %314, label %324, label %315

315:                                              ; preds = %312
  %316 = load i32, ptr %95, align 4, !tbaa !9
  %317 = icmp ne i32 %316, 0
  br i1 %317, label %324, label %318

318:                                              ; preds = %315
  %319 = load ptr, ptr %42, align 8, !tbaa !5
  %320 = call i32 @lsame_(ptr noundef %319, ptr noundef @.str.8)
  %321 = icmp ne i32 %320, 0
  br i1 %321, label %324, label %322

322:                                              ; preds = %318
  %323 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -6, ptr %323, align 4, !tbaa !9
  br label %466

324:                                              ; preds = %318, %315, %312
  %325 = load ptr, ptr %43, align 8, !tbaa !5
  %326 = load i32, ptr %325, align 4, !tbaa !9
  %327 = icmp eq i32 %326, 1
  br i1 %327, label %342, label %328

328:                                              ; preds = %324
  %329 = load ptr, ptr %43, align 8, !tbaa !5
  %330 = load i32, ptr %329, align 4, !tbaa !9
  %331 = icmp eq i32 %330, 2
  br i1 %331, label %342, label %332

332:                                              ; preds = %328
  %333 = load ptr, ptr %43, align 8, !tbaa !5
  %334 = load i32, ptr %333, align 4, !tbaa !9
  %335 = icmp eq i32 %334, 3
  br i1 %335, label %342, label %336

336:                                              ; preds = %332
  %337 = load ptr, ptr %43, align 8, !tbaa !5
  %338 = load i32, ptr %337, align 4, !tbaa !9
  %339 = icmp eq i32 %338, 4
  br i1 %339, label %342, label %340

340:                                              ; preds = %336
  %341 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -7, ptr %341, align 4, !tbaa !9
  br label %465

342:                                              ; preds = %336, %332, %328, %324
  %343 = load ptr, ptr %44, align 8, !tbaa !5
  %344 = load i32, ptr %343, align 4, !tbaa !9
  %345 = icmp slt i32 %344, 0
  br i1 %345, label %346, label %348

346:                                              ; preds = %342
  %347 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -8, ptr %347, align 4, !tbaa !9
  br label %464

348:                                              ; preds = %342
  %349 = load ptr, ptr %45, align 8, !tbaa !5
  %350 = load i32, ptr %349, align 4, !tbaa !9
  %351 = icmp slt i32 %350, 0
  br i1 %351, label %359, label %352

352:                                              ; preds = %348
  %353 = load ptr, ptr %45, align 8, !tbaa !5
  %354 = load i32, ptr %353, align 4, !tbaa !9
  %355 = load ptr, ptr %44, align 8, !tbaa !5
  %356 = load i32, ptr %355, align 4, !tbaa !9
  %357 = add nsw i32 %356, 1
  %358 = icmp sgt i32 %354, %357
  br i1 %358, label %359, label %361

359:                                              ; preds = %352, %348
  %360 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -9, ptr %360, align 4, !tbaa !9
  br label %463

361:                                              ; preds = %352
  %362 = load ptr, ptr %47, align 8, !tbaa !5
  %363 = load i32, ptr %362, align 4, !tbaa !9
  %364 = load ptr, ptr %44, align 8, !tbaa !5
  %365 = load i32, ptr %364, align 4, !tbaa !9
  %366 = icmp slt i32 %363, %365
  br i1 %366, label %367, label %369

367:                                              ; preds = %361
  %368 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -11, ptr %368, align 4, !tbaa !9
  br label %462

369:                                              ; preds = %361
  %370 = load ptr, ptr %49, align 8, !tbaa !5
  %371 = load i32, ptr %370, align 4, !tbaa !9
  %372 = load i32, ptr %91, align 4, !tbaa !9
  %373 = icmp slt i32 %371, %372
  br i1 %373, label %374, label %376

374:                                              ; preds = %369
  %375 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -13, ptr %375, align 4, !tbaa !9
  br label %461

376:                                              ; preds = %369
  %377 = load ptr, ptr %51, align 8, !tbaa !5
  %378 = load i32, ptr %377, align 4, !tbaa !9
  %379 = load i32, ptr %91, align 4, !tbaa !9
  %380 = icmp slt i32 %378, %379
  br i1 %380, label %381, label %383

381:                                              ; preds = %376
  %382 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -15, ptr %382, align 4, !tbaa !9
  br label %460

383:                                              ; preds = %376
  %384 = load ptr, ptr %52, align 8, !tbaa !5
  %385 = load i32, ptr %384, align 4, !tbaa !9
  %386 = icmp eq i32 %385, -2
  br i1 %386, label %403, label %387

387:                                              ; preds = %383
  %388 = load ptr, ptr %52, align 8, !tbaa !5
  %389 = load i32, ptr %388, align 4, !tbaa !9
  %390 = icmp eq i32 %389, -1
  br i1 %390, label %403, label %391

391:                                              ; preds = %387
  %392 = load ptr, ptr %52, align 8, !tbaa !5
  %393 = load i32, ptr %392, align 4, !tbaa !9
  %394 = icmp sge i32 %393, 1
  br i1 %394, label %395, label %401

395:                                              ; preds = %391
  %396 = load ptr, ptr %52, align 8, !tbaa !5
  %397 = load i32, ptr %396, align 4, !tbaa !9
  %398 = load ptr, ptr %45, align 8, !tbaa !5
  %399 = load i32, ptr %398, align 4, !tbaa !9
  %400 = icmp sle i32 %397, %399
  br i1 %400, label %403, label %401

401:                                              ; preds = %395, %391
  %402 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -16, ptr %402, align 4, !tbaa !9
  br label %459

403:                                              ; preds = %395, %387, %383
  %404 = load ptr, ptr %53, align 8, !tbaa !5
  %405 = load float, ptr %404, align 4, !tbaa !11
  %406 = load float, ptr %88, align 4, !tbaa !11
  %407 = fcmp olt float %405, %406
  br i1 %407, label %413, label %408

408:                                              ; preds = %403
  %409 = load ptr, ptr %53, align 8, !tbaa !5
  %410 = load float, ptr %409, align 4, !tbaa !11
  %411 = load float, ptr %116, align 4, !tbaa !11
  %412 = fcmp oge float %410, %411
  br i1 %412, label %413, label %415

413:                                              ; preds = %408, %403
  %414 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -17, ptr %414, align 4, !tbaa !9
  br label %458

415:                                              ; preds = %408
  %416 = load ptr, ptr %57, align 8, !tbaa !5
  %417 = load i32, ptr %416, align 4, !tbaa !9
  %418 = load ptr, ptr %44, align 8, !tbaa !5
  %419 = load i32, ptr %418, align 4, !tbaa !9
  %420 = icmp slt i32 %417, %419
  br i1 %420, label %421, label %423

421:                                              ; preds = %415
  %422 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -21, ptr %422, align 4, !tbaa !9
  br label %457

423:                                              ; preds = %415
  %424 = load i32, ptr %105, align 4, !tbaa !9
  %425 = icmp ne i32 %424, 0
  br i1 %425, label %429, label %426

426:                                              ; preds = %423
  %427 = load i32, ptr %95, align 4, !tbaa !9
  %428 = icmp ne i32 %427, 0
  br i1 %428, label %429, label %436

429:                                              ; preds = %426, %423
  %430 = load ptr, ptr %60, align 8, !tbaa !5
  %431 = load i32, ptr %430, align 4, !tbaa !9
  %432 = load i32, ptr %91, align 4, !tbaa !9
  %433 = icmp slt i32 %431, %432
  br i1 %433, label %434, label %436

434:                                              ; preds = %429
  %435 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -24, ptr %435, align 4, !tbaa !9
  br label %456

436:                                              ; preds = %429, %426
  %437 = load ptr, ptr %62, align 8, !tbaa !5
  %438 = load i32, ptr %437, align 4, !tbaa !9
  %439 = load ptr, ptr %45, align 8, !tbaa !5
  %440 = load i32, ptr %439, align 4, !tbaa !9
  %441 = sub nsw i32 %440, 1
  %442 = icmp slt i32 %438, %441
  br i1 %442, label %443, label %445

443:                                              ; preds = %436
  %444 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -26, ptr %444, align 4, !tbaa !9
  br label %455

445:                                              ; preds = %436
  %446 = load ptr, ptr %64, align 8, !tbaa !5
  %447 = load i32, ptr %446, align 4, !tbaa !9
  %448 = load ptr, ptr %45, align 8, !tbaa !5
  %449 = load i32, ptr %448, align 4, !tbaa !9
  %450 = sub nsw i32 %449, 1
  %451 = icmp slt i32 %447, %450
  br i1 %451, label %452, label %454

452:                                              ; preds = %445
  %453 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -28, ptr %453, align 4, !tbaa !9
  br label %454

454:                                              ; preds = %452, %445
  br label %455

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

456:                                              ; preds = %455, %434
  br label %457

457:                                              ; preds = %456, %421
  br label %458

458:                                              ; preds = %457, %413
  br label %459

459:                                              ; preds = %458, %401
  br label %460

460:                                              ; preds = %459, %381
  br label %461

461:                                              ; preds = %460, %374
  br label %462

462:                                              ; preds = %461, %367
  br label %463

463:                                              ; preds = %462, %359
  br label %464

464:                                              ; preds = %463, %346
  br label %465

465:                                              ; preds = %464, %340
  br label %466

466:                                              ; preds = %465, %322
  br label %467

467:                                              ; preds = %466, %310
  br label %468

468:                                              ; preds = %467, %301
  br label %469

469:                                              ; preds = %468, %292
  br label %470

470:                                              ; preds = %469, %276
  br label %471

471:                                              ; preds = %470, %261
  %472 = load i32, ptr %102, align 4, !tbaa !9
  %473 = icmp ne i32 %472, 0
  br i1 %473, label %480, label %474

474:                                              ; preds = %471
  %475 = load i32, ptr %103, align 4, !tbaa !9
  %476 = icmp ne i32 %475, 0
  br i1 %476, label %480, label %477

477:                                              ; preds = %474
  %478 = load i32, ptr %115, align 4, !tbaa !9
  %479 = icmp ne i32 %478, 0
  br i1 %479, label %480, label %482

480:                                              ; preds = %477, %474, %471
  %481 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  store i8 86, ptr %481, align 1, !tbaa !16
  br label %484

482:                                              ; preds = %477
  %483 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  store i8 78, ptr %483, align 1, !tbaa !16
  br label %484

484:                                              ; preds = %482, %480
  %485 = load ptr, ptr %71, align 8, !tbaa !5
  %486 = load i32, ptr %485, align 4, !tbaa !9
  %487 = icmp eq i32 %486, 0
  br i1 %487, label %488, label %845

488:                                              ; preds = %484
  %489 = load ptr, ptr %45, align 8, !tbaa !5
  %490 = load i32, ptr %489, align 4, !tbaa !9
  %491 = icmp eq i32 %490, 0
  br i1 %491, label %496, label %492

492:                                              ; preds = %488
  %493 = load ptr, ptr %45, align 8, !tbaa !5
  %494 = load i32, ptr %493, align 4, !tbaa !9
  %495 = icmp eq i32 %494, 1
  br i1 %495, label %496, label %510

496:                                              ; preds = %492, %488
  %497 = load i32, ptr %112, align 4, !tbaa !9
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %499, label %506

499:                                              ; preds = %496
  %500 = load ptr, ptr %69, align 8, !tbaa !5
  %501 = getelementptr inbounds i32, ptr %500, i64 1
  store i32 1, ptr %501, align 4, !tbaa !9
  %502 = load ptr, ptr %67, align 8, !tbaa !5
  %503 = getelementptr inbounds float, ptr %502, i64 1
  store float 2.000000e+00, ptr %503, align 4, !tbaa !11
  %504 = load ptr, ptr %67, align 8, !tbaa !5
  %505 = getelementptr inbounds float, ptr %504, i64 2
  store float 2.000000e+00, ptr %505, align 4, !tbaa !11
  br label %508

506:                                              ; preds = %496
  %507 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 0, ptr %507, align 4, !tbaa !9
  br label %508

508:                                              ; preds = %506, %499
  %509 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 1, ptr %509, align 4, !tbaa !9
  store i32 0, ptr %36, align 4
  store i32 1, ptr %117, align 4
  br label %1193

510:                                              ; preds = %492
  store i32 2, ptr %109, align 4, !tbaa !9
  store i32 2, ptr %106, align 4, !tbaa !9
  store i32 2, ptr %108, align 4, !tbaa !9
  store i32 1, ptr %101, align 4, !tbaa !9
  %511 = load ptr, ptr %45, align 8, !tbaa !5
  %512 = load i32, ptr %511, align 4, !tbaa !9
  %513 = icmp sge i32 1, %512
  br i1 %513, label %514, label %515

514:                                              ; preds = %510
  br label %518

515:                                              ; preds = %510
  %516 = load ptr, ptr %45, align 8, !tbaa !5
  %517 = load i32, ptr %516, align 4, !tbaa !9
  br label %518

518:                                              ; preds = %515, %514
  %519 = phi i32 [ 1, %514 ], [ %517, %515 ]
  store i32 %519, ptr %93, align 4, !tbaa !9
  %520 = load i32, ptr %106, align 4, !tbaa !9
  store i32 %520, ptr %86, align 4, !tbaa !9
  %521 = load i32, ptr %91, align 4, !tbaa !9
  %522 = load i32, ptr %93, align 4, !tbaa !9
  %523 = add nsw i32 %521, %522
  store i32 %523, ptr %87, align 4, !tbaa !9
  %524 = load i32, ptr %86, align 4, !tbaa !9
  %525 = load i32, ptr %87, align 4, !tbaa !9
  %526 = icmp sge i32 %524, %525
  br i1 %526, label %527, label %529

527:                                              ; preds = %518
  %528 = load i32, ptr %86, align 4, !tbaa !9
  br label %531

529:                                              ; preds = %518
  %530 = load i32, ptr %87, align 4, !tbaa !9
  br label %531

531:                                              ; preds = %529, %527
  %532 = phi i32 [ %528, %527 ], [ %530, %529 ]
  store i32 %532, ptr %106, align 4, !tbaa !9
  %533 = load i32, ptr %112, align 4, !tbaa !9
  %534 = icmp ne i32 %533, 0
  br i1 %534, label %535, label %566

535:                                              ; preds = %531
  %536 = load ptr, ptr %44, align 8, !tbaa !5
  %537 = load ptr, ptr %45, align 8, !tbaa !5
  %538 = load ptr, ptr %46, align 8, !tbaa !5
  %539 = load i32, ptr %73, align 4, !tbaa !9
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds %struct.complex, ptr %538, i64 %540
  %542 = load ptr, ptr %47, align 8, !tbaa !5
  %543 = load ptr, ptr %65, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.complex, ptr %543, i64 1
  %545 = load ptr, ptr %65, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.complex, ptr %545, i64 1
  %547 = call i32 @cgeqrf_(ptr noundef %536, ptr noundef %537, ptr noundef %541, ptr noundef %542, ptr noundef %544, ptr noundef %546, ptr noundef @c_n1, ptr noundef %89)
  %548 = load ptr, ptr %65, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.complex, ptr %548, i64 1
  %550 = getelementptr inbounds %struct.complex, ptr %549, i32 0, i32 0
  %551 = load float, ptr %550, align 4, !tbaa !13
  %552 = fptosi float %551 to i32
  store i32 %552, ptr %94, align 4, !tbaa !9
  %553 = load i32, ptr %108, align 4, !tbaa !9
  store i32 %553, ptr %86, align 4, !tbaa !9
  %554 = load i32, ptr %91, align 4, !tbaa !9
  %555 = load i32, ptr %94, align 4, !tbaa !9
  %556 = add nsw i32 %554, %555
  store i32 %556, ptr %87, align 4, !tbaa !9
  %557 = load i32, ptr %86, align 4, !tbaa !9
  %558 = load i32, ptr %87, align 4, !tbaa !9
  %559 = icmp sge i32 %557, %558
  br i1 %559, label %560, label %562

560:                                              ; preds = %535
  %561 = load i32, ptr %86, align 4, !tbaa !9
  br label %564

562:                                              ; preds = %535
  %563 = load i32, ptr %87, align 4, !tbaa !9
  br label %564

564:                                              ; preds = %562, %560
  %565 = phi i32 [ %561, %560 ], [ %563, %562 ]
  store i32 %565, ptr %108, align 4, !tbaa !9
  br label %566

566:                                              ; preds = %564, %531
  %567 = load ptr, ptr %45, align 8, !tbaa !5
  %568 = load i32, ptr %567, align 4, !tbaa !9
  %569 = sub nsw i32 %568, 1
  store i32 %569, ptr %86, align 4, !tbaa !9
  %570 = load ptr, ptr %37, align 8, !tbaa !5
  %571 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %572 = load ptr, ptr %39, align 8, !tbaa !5
  %573 = load ptr, ptr %42, align 8, !tbaa !5
  %574 = load ptr, ptr %43, align 8, !tbaa !5
  %575 = load ptr, ptr %48, align 8, !tbaa !5
  %576 = load i32, ptr %75, align 4, !tbaa !9
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds %struct.complex, ptr %575, i64 %577
  %579 = load ptr, ptr %49, align 8, !tbaa !5
  %580 = load ptr, ptr %50, align 8, !tbaa !5
  %581 = load i32, ptr %77, align 4, !tbaa !9
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds %struct.complex, ptr %580, i64 %582
  %584 = load ptr, ptr %51, align 8, !tbaa !5
  %585 = load ptr, ptr %52, align 8, !tbaa !5
  %586 = load ptr, ptr %53, align 8, !tbaa !5
  %587 = load ptr, ptr %54, align 8, !tbaa !5
  %588 = load ptr, ptr %55, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.complex, ptr %588, i64 1
  %590 = load ptr, ptr %56, align 8, !tbaa !5
  %591 = load i32, ptr %79, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds %struct.complex, ptr %590, i64 %592
  %594 = load ptr, ptr %57, align 8, !tbaa !5
  %595 = load ptr, ptr %58, align 8, !tbaa !5
  %596 = getelementptr inbounds float, ptr %595, i64 1
  %597 = load ptr, ptr %59, align 8, !tbaa !5
  %598 = load i32, ptr %81, align 4, !tbaa !9
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds %struct.complex, ptr %597, i64 %599
  %601 = load ptr, ptr %60, align 8, !tbaa !5
  %602 = load ptr, ptr %61, align 8, !tbaa !5
  %603 = load i32, ptr %83, align 4, !tbaa !9
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds %struct.complex, ptr %602, i64 %604
  %606 = load ptr, ptr %62, align 8, !tbaa !5
  %607 = load ptr, ptr %63, align 8, !tbaa !5
  %608 = load i32, ptr %85, align 4, !tbaa !9
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds %struct.complex, ptr %607, i64 %609
  %611 = load ptr, ptr %64, align 8, !tbaa !5
  %612 = load ptr, ptr %65, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct.complex, ptr %612, i64 1
  %614 = load ptr, ptr %66, align 8, !tbaa !5
  %615 = load ptr, ptr %67, align 8, !tbaa !5
  %616 = getelementptr inbounds float, ptr %615, i64 1
  %617 = load ptr, ptr %69, align 8, !tbaa !5
  %618 = getelementptr inbounds i32, ptr %617, i64 1
  %619 = load ptr, ptr %70, align 8, !tbaa !5
  %620 = call i32 @cgedmd_(ptr noundef %570, ptr noundef %571, ptr noundef %572, ptr noundef %573, ptr noundef %574, ptr noundef %91, ptr noundef %86, ptr noundef %578, ptr noundef %579, ptr noundef %583, ptr noundef %584, ptr noundef %585, ptr noundef %586, ptr noundef %587, ptr noundef %589, ptr noundef %593, ptr noundef %594, ptr noundef %596, ptr noundef %600, ptr noundef %601, ptr noundef %605, ptr noundef %606, ptr noundef %610, ptr noundef %611, ptr noundef %613, ptr noundef %614, ptr noundef %616, ptr noundef @c_n1, ptr noundef %618, ptr noundef %619, ptr noundef %89)
  %621 = load ptr, ptr %65, align 8, !tbaa !5
  %622 = getelementptr inbounds %struct.complex, ptr %621, i64 1
  %623 = getelementptr inbounds %struct.complex, ptr %622, i32 0, i32 0
  %624 = load float, ptr %623, align 4, !tbaa !13
  %625 = fptosi float %624 to i32
  store i32 %625, ptr %97, align 4, !tbaa !9
  %626 = load i32, ptr %106, align 4, !tbaa !9
  store i32 %626, ptr %86, align 4, !tbaa !9
  %627 = load i32, ptr %91, align 4, !tbaa !9
  %628 = load i32, ptr %97, align 4, !tbaa !9
  %629 = add nsw i32 %627, %628
  store i32 %629, ptr %87, align 4, !tbaa !9
  %630 = load i32, ptr %86, align 4, !tbaa !9
  %631 = load i32, ptr %87, align 4, !tbaa !9
  %632 = icmp sge i32 %630, %631
  br i1 %632, label %633, label %635

633:                                              ; preds = %566
  %634 = load i32, ptr %86, align 4, !tbaa !9
  br label %637

635:                                              ; preds = %566
  %636 = load i32, ptr %87, align 4, !tbaa !9
  br label %637

637:                                              ; preds = %635, %633
  %638 = phi i32 [ %634, %633 ], [ %636, %635 ]
  store i32 %638, ptr %106, align 4, !tbaa !9
  %639 = load i32, ptr %109, align 4, !tbaa !9
  store i32 %639, ptr %86, align 4, !tbaa !9
  %640 = load ptr, ptr %67, align 8, !tbaa !5
  %641 = getelementptr inbounds float, ptr %640, i64 1
  %642 = load float, ptr %641, align 4, !tbaa !11
  %643 = fptosi float %642 to i32
  store i32 %643, ptr %87, align 4, !tbaa !9
  %644 = load i32, ptr %86, align 4, !tbaa !9
  %645 = load i32, ptr %87, align 4, !tbaa !9
  %646 = icmp sge i32 %644, %645
  br i1 %646, label %647, label %649

647:                                              ; preds = %637
  %648 = load i32, ptr %86, align 4, !tbaa !9
  br label %651

649:                                              ; preds = %637
  %650 = load i32, ptr %87, align 4, !tbaa !9
  br label %651

651:                                              ; preds = %649, %647
  %652 = phi i32 [ %648, %647 ], [ %650, %649 ]
  store i32 %652, ptr %109, align 4, !tbaa !9
  %653 = load i32, ptr %101, align 4, !tbaa !9
  %654 = load ptr, ptr %69, align 8, !tbaa !5
  %655 = getelementptr inbounds i32, ptr %654, i64 1
  %656 = load i32, ptr %655, align 4, !tbaa !9
  %657 = icmp sge i32 %653, %656
  br i1 %657, label %658, label %660

658:                                              ; preds = %651
  %659 = load i32, ptr %101, align 4, !tbaa !9
  br label %664

660:                                              ; preds = %651
  %661 = load ptr, ptr %69, align 8, !tbaa !5
  %662 = getelementptr inbounds i32, ptr %661, i64 1
  %663 = load i32, ptr %662, align 4, !tbaa !9
  br label %664

664:                                              ; preds = %660, %658
  %665 = phi i32 [ %659, %658 ], [ %663, %660 ]
  store i32 %665, ptr %101, align 4, !tbaa !9
  %666 = load i32, ptr %112, align 4, !tbaa !9
  %667 = icmp ne i32 %666, 0
  br i1 %667, label %668, label %687

668:                                              ; preds = %664
  %669 = load ptr, ptr %65, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.complex, ptr %669, i64 2
  %671 = getelementptr inbounds %struct.complex, ptr %670, i32 0, i32 0
  %672 = load float, ptr %671, align 4, !tbaa !13
  %673 = fptosi float %672 to i32
  store i32 %673, ptr %98, align 4, !tbaa !9
  %674 = load i32, ptr %108, align 4, !tbaa !9
  store i32 %674, ptr %86, align 4, !tbaa !9
  %675 = load i32, ptr %91, align 4, !tbaa !9
  %676 = load i32, ptr %98, align 4, !tbaa !9
  %677 = add nsw i32 %675, %676
  store i32 %677, ptr %87, align 4, !tbaa !9
  %678 = load i32, ptr %86, align 4, !tbaa !9
  %679 = load i32, ptr %87, align 4, !tbaa !9
  %680 = icmp sge i32 %678, %679
  br i1 %680, label %681, label %683

681:                                              ; preds = %668
  %682 = load i32, ptr %86, align 4, !tbaa !9
  br label %685

683:                                              ; preds = %668
  %684 = load i32, ptr %87, align 4, !tbaa !9
  br label %685

685:                                              ; preds = %683, %681
  %686 = phi i32 [ %682, %681 ], [ %684, %683 ]
  store i32 %686, ptr %108, align 4, !tbaa !9
  br label %687

687:                                              ; preds = %685, %664
  %688 = load i32, ptr %102, align 4, !tbaa !9
  %689 = icmp ne i32 %688, 0
  br i1 %689, label %693, label %690

690:                                              ; preds = %687
  %691 = load i32, ptr %103, align 4, !tbaa !9
  %692 = icmp ne i32 %691, 0
  br i1 %692, label %693, label %755

693:                                              ; preds = %690, %687
  %694 = load ptr, ptr %45, align 8, !tbaa !5
  %695 = load i32, ptr %694, align 4, !tbaa !9
  %696 = icmp sge i32 1, %695
  br i1 %696, label %697, label %698

697:                                              ; preds = %693
  br label %701

698:                                              ; preds = %693
  %699 = load ptr, ptr %45, align 8, !tbaa !5
  %700 = load i32, ptr %699, align 4, !tbaa !9
  br label %701

701:                                              ; preds = %698, %697
  %702 = phi i32 [ 1, %697 ], [ %700, %698 ]
  store i32 %702, ptr %110, align 4, !tbaa !9
  %703 = load i32, ptr %106, align 4, !tbaa !9
  store i32 %703, ptr %86, align 4, !tbaa !9
  %704 = load i32, ptr %91, align 4, !tbaa !9
  %705 = load i32, ptr %110, align 4, !tbaa !9
  %706 = add nsw i32 %704, %705
  store i32 %706, ptr %87, align 4, !tbaa !9
  %707 = load i32, ptr %86, align 4, !tbaa !9
  %708 = load i32, ptr %87, align 4, !tbaa !9
  %709 = icmp sge i32 %707, %708
  br i1 %709, label %710, label %712

710:                                              ; preds = %701
  %711 = load i32, ptr %86, align 4, !tbaa !9
  br label %714

712:                                              ; preds = %701
  %713 = load i32, ptr %87, align 4, !tbaa !9
  br label %714

714:                                              ; preds = %712, %710
  %715 = phi i32 [ %711, %710 ], [ %713, %712 ]
  store i32 %715, ptr %106, align 4, !tbaa !9
  %716 = load i32, ptr %112, align 4, !tbaa !9
  %717 = icmp ne i32 %716, 0
  br i1 %717, label %718, label %754

718:                                              ; preds = %714
  %719 = load ptr, ptr %44, align 8, !tbaa !5
  %720 = load ptr, ptr %45, align 8, !tbaa !5
  %721 = load ptr, ptr %46, align 8, !tbaa !5
  %722 = load i32, ptr %73, align 4, !tbaa !9
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds %struct.complex, ptr %721, i64 %723
  %725 = load ptr, ptr %47, align 8, !tbaa !5
  %726 = load ptr, ptr %65, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.complex, ptr %726, i64 1
  %728 = load ptr, ptr %56, align 8, !tbaa !5
  %729 = load i32, ptr %79, align 4, !tbaa !9
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds %struct.complex, ptr %728, i64 %730
  %732 = load ptr, ptr %57, align 8, !tbaa !5
  %733 = load ptr, ptr %65, align 8, !tbaa !5
  %734 = getelementptr inbounds %struct.complex, ptr %733, i64 1
  %735 = call i32 @cunmqr_(ptr noundef @.str.9, ptr noundef @.str.8, ptr noundef %719, ptr noundef %720, ptr noundef %91, ptr noundef %724, ptr noundef %725, ptr noundef %727, ptr noundef %731, ptr noundef %732, ptr noundef %734, ptr noundef @c_n1, ptr noundef %89)
  %736 = load ptr, ptr %65, align 8, !tbaa !5
  %737 = getelementptr inbounds %struct.complex, ptr %736, i64 1
  %738 = getelementptr inbounds %struct.complex, ptr %737, i32 0, i32 0
  %739 = load float, ptr %738, align 4, !tbaa !13
  %740 = fptosi float %739 to i32
  store i32 %740, ptr %111, align 4, !tbaa !9
  %741 = load i32, ptr %108, align 4, !tbaa !9
  store i32 %741, ptr %86, align 4, !tbaa !9
  %742 = load i32, ptr %91, align 4, !tbaa !9
  %743 = load i32, ptr %111, align 4, !tbaa !9
  %744 = add nsw i32 %742, %743
  store i32 %744, ptr %87, align 4, !tbaa !9
  %745 = load i32, ptr %86, align 4, !tbaa !9
  %746 = load i32, ptr %87, align 4, !tbaa !9
  %747 = icmp sge i32 %745, %746
  br i1 %747, label %748, label %750

748:                                              ; preds = %718
  %749 = load i32, ptr %86, align 4, !tbaa !9
  br label %752

750:                                              ; preds = %718
  %751 = load i32, ptr %87, align 4, !tbaa !9
  br label %752

752:                                              ; preds = %750, %748
  %753 = phi i32 [ %749, %748 ], [ %751, %750 ]
  store i32 %753, ptr %108, align 4, !tbaa !9
  br label %754

754:                                              ; preds = %752, %714
  br label %755

755:                                              ; preds = %754, %690
  %756 = load i32, ptr %92, align 4, !tbaa !9
  %757 = icmp ne i32 %756, 0
  br i1 %757, label %758, label %814

758:                                              ; preds = %755
  %759 = load ptr, ptr %45, align 8, !tbaa !5
  %760 = load i32, ptr %759, align 4, !tbaa !9
  %761 = icmp sge i32 1, %760
  br i1 %761, label %762, label %763

762:                                              ; preds = %758
  br label %766

763:                                              ; preds = %758
  %764 = load ptr, ptr %45, align 8, !tbaa !5
  %765 = load i32, ptr %764, align 4, !tbaa !9
  br label %766

766:                                              ; preds = %763, %762
  %767 = phi i32 [ 1, %762 ], [ %765, %763 ]
  store i32 %767, ptr %104, align 4, !tbaa !9
  %768 = load i32, ptr %106, align 4, !tbaa !9
  store i32 %768, ptr %86, align 4, !tbaa !9
  %769 = load i32, ptr %91, align 4, !tbaa !9
  %770 = load i32, ptr %104, align 4, !tbaa !9
  %771 = add nsw i32 %769, %770
  store i32 %771, ptr %87, align 4, !tbaa !9
  %772 = load i32, ptr %86, align 4, !tbaa !9
  %773 = load i32, ptr %87, align 4, !tbaa !9
  %774 = icmp sge i32 %772, %773
  br i1 %774, label %775, label %777

775:                                              ; preds = %766
  %776 = load i32, ptr %86, align 4, !tbaa !9
  br label %779

777:                                              ; preds = %766
  %778 = load i32, ptr %87, align 4, !tbaa !9
  br label %779

779:                                              ; preds = %777, %775
  %780 = phi i32 [ %776, %775 ], [ %778, %777 ]
  store i32 %780, ptr %106, align 4, !tbaa !9
  %781 = load i32, ptr %112, align 4, !tbaa !9
  %782 = icmp ne i32 %781, 0
  br i1 %782, label %783, label %813

783:                                              ; preds = %779
  %784 = load ptr, ptr %44, align 8, !tbaa !5
  %785 = load ptr, ptr %46, align 8, !tbaa !5
  %786 = load i32, ptr %73, align 4, !tbaa !9
  %787 = sext i32 %786 to i64
  %788 = getelementptr inbounds %struct.complex, ptr %785, i64 %787
  %789 = load ptr, ptr %47, align 8, !tbaa !5
  %790 = load ptr, ptr %65, align 8, !tbaa !5
  %791 = getelementptr inbounds %struct.complex, ptr %790, i64 1
  %792 = load ptr, ptr %65, align 8, !tbaa !5
  %793 = getelementptr inbounds %struct.complex, ptr %792, i64 1
  %794 = call i32 @cungqr_(ptr noundef %784, ptr noundef %91, ptr noundef %91, ptr noundef %788, ptr noundef %789, ptr noundef %791, ptr noundef %793, ptr noundef @c_n1, ptr noundef %89)
  %795 = load ptr, ptr %65, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.complex, ptr %795, i64 1
  %797 = getelementptr inbounds %struct.complex, ptr %796, i32 0, i32 0
  %798 = load float, ptr %797, align 4, !tbaa !13
  %799 = fptosi float %798 to i32
  store i32 %799, ptr %107, align 4, !tbaa !9
  %800 = load i32, ptr %108, align 4, !tbaa !9
  store i32 %800, ptr %86, align 4, !tbaa !9
  %801 = load i32, ptr %91, align 4, !tbaa !9
  %802 = load i32, ptr %107, align 4, !tbaa !9
  %803 = add nsw i32 %801, %802
  store i32 %803, ptr %87, align 4, !tbaa !9
  %804 = load i32, ptr %86, align 4, !tbaa !9
  %805 = load i32, ptr %87, align 4, !tbaa !9
  %806 = icmp sge i32 %804, %805
  br i1 %806, label %807, label %809

807:                                              ; preds = %783
  %808 = load i32, ptr %86, align 4, !tbaa !9
  br label %811

809:                                              ; preds = %783
  %810 = load i32, ptr %87, align 4, !tbaa !9
  br label %811

811:                                              ; preds = %809, %807
  %812 = phi i32 [ %808, %807 ], [ %810, %809 ]
  store i32 %812, ptr %108, align 4, !tbaa !9
  br label %813

813:                                              ; preds = %811, %779
  br label %814

814:                                              ; preds = %813, %755
  %815 = load ptr, ptr %70, align 8, !tbaa !5
  %816 = load i32, ptr %815, align 4, !tbaa !9
  %817 = load i32, ptr %101, align 4, !tbaa !9
  %818 = icmp slt i32 %816, %817
  br i1 %818, label %819, label %824

819:                                              ; preds = %814
  %820 = load i32, ptr %112, align 4, !tbaa !9
  %821 = icmp ne i32 %820, 0
  br i1 %821, label %824, label %822

822:                                              ; preds = %819
  %823 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -34, ptr %823, align 4, !tbaa !9
  br label %824

824:                                              ; preds = %822, %819, %814
  %825 = load ptr, ptr %68, align 8, !tbaa !5
  %826 = load i32, ptr %825, align 4, !tbaa !9
  %827 = load i32, ptr %109, align 4, !tbaa !9
  %828 = icmp slt i32 %826, %827
  br i1 %828, label %829, label %834

829:                                              ; preds = %824
  %830 = load i32, ptr %112, align 4, !tbaa !9
  %831 = icmp ne i32 %830, 0
  br i1 %831, label %834, label %832

832:                                              ; preds = %829
  %833 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -32, ptr %833, align 4, !tbaa !9
  br label %834

834:                                              ; preds = %832, %829, %824
  %835 = load ptr, ptr %66, align 8, !tbaa !5
  %836 = load i32, ptr %835, align 4, !tbaa !9
  %837 = load i32, ptr %106, align 4, !tbaa !9
  %838 = icmp slt i32 %836, %837
  br i1 %838, label %839, label %844

839:                                              ; preds = %834
  %840 = load i32, ptr %112, align 4, !tbaa !9
  %841 = icmp ne i32 %840, 0
  br i1 %841, label %844, label %842

842:                                              ; preds = %839
  %843 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 -30, ptr %843, align 4, !tbaa !9
  br label %844

844:                                              ; preds = %842, %839, %834
  br label %845

845:                                              ; preds = %844, %484
  %846 = load ptr, ptr %71, align 8, !tbaa !5
  %847 = load i32, ptr %846, align 4, !tbaa !9
  %848 = icmp ne i32 %847, 0
  br i1 %848, label %849, label %854

849:                                              ; preds = %845
  %850 = load ptr, ptr %71, align 8, !tbaa !5
  %851 = load i32, ptr %850, align 4, !tbaa !9
  %852 = sub nsw i32 0, %851
  store i32 %852, ptr %86, align 4, !tbaa !9
  %853 = call i32 @xerbla_(ptr noundef @.str.10, ptr noundef %86)
  store i32 0, ptr %36, align 4
  store i32 1, ptr %117, align 4
  br label %1193

854:                                              ; preds = %845
  %855 = load i32, ptr %112, align 4, !tbaa !9
  %856 = icmp ne i32 %855, 0
  br i1 %856, label %857, label %885

857:                                              ; preds = %854
  %858 = load i32, ptr %101, align 4, !tbaa !9
  %859 = load ptr, ptr %69, align 8, !tbaa !5
  %860 = getelementptr inbounds i32, ptr %859, i64 1
  store i32 %858, ptr %860, align 4, !tbaa !9
  %861 = load i32, ptr %106, align 4, !tbaa !9
  %862 = sitofp i32 %861 to float
  %863 = load ptr, ptr %65, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.complex, ptr %863, i64 1
  %865 = getelementptr inbounds %struct.complex, ptr %864, i32 0, i32 0
  store float %862, ptr %865, align 4, !tbaa !13
  %866 = load ptr, ptr %65, align 8, !tbaa !5
  %867 = getelementptr inbounds %struct.complex, ptr %866, i64 1
  %868 = getelementptr inbounds %struct.complex, ptr %867, i32 0, i32 1
  store float 0.000000e+00, ptr %868, align 4, !tbaa !15
  %869 = load i32, ptr %108, align 4, !tbaa !9
  %870 = sitofp i32 %869 to float
  %871 = load ptr, ptr %65, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.complex, ptr %871, i64 2
  %873 = getelementptr inbounds %struct.complex, ptr %872, i32 0, i32 0
  store float %870, ptr %873, align 4, !tbaa !13
  %874 = load ptr, ptr %65, align 8, !tbaa !5
  %875 = getelementptr inbounds %struct.complex, ptr %874, i64 2
  %876 = getelementptr inbounds %struct.complex, ptr %875, i32 0, i32 1
  store float 0.000000e+00, ptr %876, align 4, !tbaa !15
  %877 = load i32, ptr %109, align 4, !tbaa !9
  %878 = sitofp i32 %877 to float
  %879 = load ptr, ptr %67, align 8, !tbaa !5
  %880 = getelementptr inbounds float, ptr %879, i64 1
  store float %878, ptr %880, align 4, !tbaa !11
  %881 = load i32, ptr %109, align 4, !tbaa !9
  %882 = sitofp i32 %881 to float
  %883 = load ptr, ptr %67, align 8, !tbaa !5
  %884 = getelementptr inbounds float, ptr %883, i64 2
  store float %882, ptr %884, align 4, !tbaa !11
  store i32 0, ptr %36, align 4
  store i32 1, ptr %117, align 4
  br label %1193

885:                                              ; preds = %854
  br label %886

886:                                              ; preds = %885
  %887 = load ptr, ptr %66, align 8, !tbaa !5
  %888 = load i32, ptr %887, align 4, !tbaa !9
  %889 = load i32, ptr %91, align 4, !tbaa !9
  %890 = sub nsw i32 %888, %889
  store i32 %890, ptr %86, align 4, !tbaa !9
  %891 = load ptr, ptr %44, align 8, !tbaa !5
  %892 = load ptr, ptr %45, align 8, !tbaa !5
  %893 = load ptr, ptr %46, align 8, !tbaa !5
  %894 = load i32, ptr %73, align 4, !tbaa !9
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds %struct.complex, ptr %893, i64 %895
  %897 = load ptr, ptr %47, align 8, !tbaa !5
  %898 = load ptr, ptr %65, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.complex, ptr %898, i64 1
  %900 = load ptr, ptr %65, align 8, !tbaa !5
  %901 = load i32, ptr %91, align 4, !tbaa !9
  %902 = add nsw i32 %901, 1
  %903 = sext i32 %902 to i64
  %904 = getelementptr inbounds %struct.complex, ptr %900, i64 %903
  %905 = call i32 @cgeqrf_(ptr noundef %891, ptr noundef %892, ptr noundef %896, ptr noundef %897, ptr noundef %899, ptr noundef %904, ptr noundef %86, ptr noundef %89)
  %906 = load ptr, ptr %45, align 8, !tbaa !5
  %907 = load i32, ptr %906, align 4, !tbaa !9
  %908 = sub nsw i32 %907, 1
  store i32 %908, ptr %86, align 4, !tbaa !9
  %909 = load ptr, ptr %48, align 8, !tbaa !5
  %910 = load i32, ptr %75, align 4, !tbaa !9
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds %struct.complex, ptr %909, i64 %911
  %913 = load ptr, ptr %49, align 8, !tbaa !5
  %914 = call i32 @claset_(ptr noundef @.str.9, ptr noundef %91, ptr noundef %86, ptr noundef %96, ptr noundef %96, ptr noundef %912, ptr noundef %913)
  %915 = load ptr, ptr %45, align 8, !tbaa !5
  %916 = load i32, ptr %915, align 4, !tbaa !9
  %917 = sub nsw i32 %916, 1
  store i32 %917, ptr %86, align 4, !tbaa !9
  %918 = load ptr, ptr %46, align 8, !tbaa !5
  %919 = load i32, ptr %73, align 4, !tbaa !9
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds %struct.complex, ptr %918, i64 %920
  %922 = load ptr, ptr %47, align 8, !tbaa !5
  %923 = load ptr, ptr %48, align 8, !tbaa !5
  %924 = load i32, ptr %75, align 4, !tbaa !9
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds %struct.complex, ptr %923, i64 %925
  %927 = load ptr, ptr %49, align 8, !tbaa !5
  %928 = call i32 @clacpy_(ptr noundef @.str.11, ptr noundef %91, ptr noundef %86, ptr noundef %921, ptr noundef %922, ptr noundef %926, ptr noundef %927)
  %929 = load ptr, ptr %45, align 8, !tbaa !5
  %930 = load i32, ptr %929, align 4, !tbaa !9
  %931 = sub nsw i32 %930, 1
  store i32 %931, ptr %86, align 4, !tbaa !9
  %932 = load ptr, ptr %46, align 8, !tbaa !5
  %933 = load i32, ptr %72, align 4, !tbaa !9
  %934 = shl i32 %933, 1
  %935 = add nsw i32 %934, 1
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds %struct.complex, ptr %932, i64 %936
  %938 = load ptr, ptr %47, align 8, !tbaa !5
  %939 = load ptr, ptr %50, align 8, !tbaa !5
  %940 = load i32, ptr %77, align 4, !tbaa !9
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds %struct.complex, ptr %939, i64 %941
  %943 = load ptr, ptr %51, align 8, !tbaa !5
  %944 = call i32 @clacpy_(ptr noundef @.str.12, ptr noundef %91, ptr noundef %86, ptr noundef %937, ptr noundef %938, ptr noundef %942, ptr noundef %943)
  %945 = load ptr, ptr %44, align 8, !tbaa !5
  %946 = load i32, ptr %945, align 4, !tbaa !9
  %947 = icmp sge i32 %946, 3
  br i1 %947, label %948, label %961

948:                                              ; preds = %886
  %949 = load i32, ptr %91, align 4, !tbaa !9
  %950 = sub nsw i32 %949, 2
  store i32 %950, ptr %86, align 4, !tbaa !9
  %951 = load ptr, ptr %45, align 8, !tbaa !5
  %952 = load i32, ptr %951, align 4, !tbaa !9
  %953 = sub nsw i32 %952, 2
  store i32 %953, ptr %87, align 4, !tbaa !9
  %954 = load ptr, ptr %50, align 8, !tbaa !5
  %955 = load i32, ptr %76, align 4, !tbaa !9
  %956 = add nsw i32 %955, 3
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds %struct.complex, ptr %954, i64 %957
  %959 = load ptr, ptr %51, align 8, !tbaa !5
  %960 = call i32 @claset_(ptr noundef @.str.9, ptr noundef %86, ptr noundef %87, ptr noundef %96, ptr noundef %96, ptr noundef %958, ptr noundef %959)
  br label %961

961:                                              ; preds = %948, %886
  %962 = load ptr, ptr %45, align 8, !tbaa !5
  %963 = load i32, ptr %962, align 4, !tbaa !9
  %964 = sub nsw i32 %963, 1
  store i32 %964, ptr %86, align 4, !tbaa !9
  %965 = load ptr, ptr %66, align 8, !tbaa !5
  %966 = load i32, ptr %965, align 4, !tbaa !9
  %967 = load i32, ptr %91, align 4, !tbaa !9
  %968 = sub nsw i32 %966, %967
  store i32 %968, ptr %87, align 4, !tbaa !9
  %969 = load ptr, ptr %37, align 8, !tbaa !5
  %970 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %971 = load ptr, ptr %39, align 8, !tbaa !5
  %972 = load ptr, ptr %42, align 8, !tbaa !5
  %973 = load ptr, ptr %43, align 8, !tbaa !5
  %974 = load ptr, ptr %48, align 8, !tbaa !5
  %975 = load i32, ptr %75, align 4, !tbaa !9
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds %struct.complex, ptr %974, i64 %976
  %978 = load ptr, ptr %49, align 8, !tbaa !5
  %979 = load ptr, ptr %50, align 8, !tbaa !5
  %980 = load i32, ptr %77, align 4, !tbaa !9
  %981 = sext i32 %980 to i64
  %982 = getelementptr inbounds %struct.complex, ptr %979, i64 %981
  %983 = load ptr, ptr %51, align 8, !tbaa !5
  %984 = load ptr, ptr %52, align 8, !tbaa !5
  %985 = load ptr, ptr %53, align 8, !tbaa !5
  %986 = load ptr, ptr %54, align 8, !tbaa !5
  %987 = load ptr, ptr %55, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.complex, ptr %987, i64 1
  %989 = load ptr, ptr %56, align 8, !tbaa !5
  %990 = load i32, ptr %79, align 4, !tbaa !9
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds %struct.complex, ptr %989, i64 %991
  %993 = load ptr, ptr %57, align 8, !tbaa !5
  %994 = load ptr, ptr %58, align 8, !tbaa !5
  %995 = getelementptr inbounds float, ptr %994, i64 1
  %996 = load ptr, ptr %59, align 8, !tbaa !5
  %997 = load i32, ptr %81, align 4, !tbaa !9
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds %struct.complex, ptr %996, i64 %998
  %1000 = load ptr, ptr %60, align 8, !tbaa !5
  %1001 = load ptr, ptr %61, align 8, !tbaa !5
  %1002 = load i32, ptr %83, align 4, !tbaa !9
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds %struct.complex, ptr %1001, i64 %1003
  %1005 = load ptr, ptr %62, align 8, !tbaa !5
  %1006 = load ptr, ptr %63, align 8, !tbaa !5
  %1007 = load i32, ptr %85, align 4, !tbaa !9
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds %struct.complex, ptr %1006, i64 %1008
  %1010 = load ptr, ptr %64, align 8, !tbaa !5
  %1011 = load ptr, ptr %65, align 8, !tbaa !5
  %1012 = load i32, ptr %91, align 4, !tbaa !9
  %1013 = add nsw i32 %1012, 1
  %1014 = sext i32 %1013 to i64
  %1015 = getelementptr inbounds %struct.complex, ptr %1011, i64 %1014
  %1016 = load ptr, ptr %67, align 8, !tbaa !5
  %1017 = getelementptr inbounds float, ptr %1016, i64 1
  %1018 = load ptr, ptr %68, align 8, !tbaa !5
  %1019 = load ptr, ptr %69, align 8, !tbaa !5
  %1020 = getelementptr inbounds i32, ptr %1019, i64 1
  %1021 = load ptr, ptr %70, align 8, !tbaa !5
  %1022 = call i32 @cgedmd_(ptr noundef %969, ptr noundef %970, ptr noundef %971, ptr noundef %972, ptr noundef %973, ptr noundef %91, ptr noundef %86, ptr noundef %977, ptr noundef %978, ptr noundef %982, ptr noundef %983, ptr noundef %984, ptr noundef %985, ptr noundef %986, ptr noundef %988, ptr noundef %992, ptr noundef %993, ptr noundef %995, ptr noundef %999, ptr noundef %1000, ptr noundef %1004, ptr noundef %1005, ptr noundef %1009, ptr noundef %1010, ptr noundef %1015, ptr noundef %87, ptr noundef %1017, ptr noundef %1018, ptr noundef %1020, ptr noundef %1021, ptr noundef %89)
  %1023 = load i32, ptr %89, align 4, !tbaa !9
  %1024 = icmp eq i32 %1023, 2
  br i1 %1024, label %1028, label %1025

1025:                                             ; preds = %961
  %1026 = load i32, ptr %89, align 4, !tbaa !9
  %1027 = icmp eq i32 %1026, 3
  br i1 %1027, label %1028, label %1031

1028:                                             ; preds = %1025, %961
  %1029 = load i32, ptr %89, align 4, !tbaa !9
  %1030 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 %1029, ptr %1030, align 4, !tbaa !9
  store i32 0, ptr %36, align 4
  store i32 1, ptr %117, align 4
  br label %1193

1031:                                             ; preds = %1025
  %1032 = load i32, ptr %89, align 4, !tbaa !9
  %1033 = load ptr, ptr %71, align 8, !tbaa !5
  store i32 %1032, ptr %1033, align 4, !tbaa !9
  br label %1034

1034:                                             ; preds = %1031
  %1035 = load i32, ptr %102, align 4, !tbaa !9
  %1036 = icmp ne i32 %1035, 0
  br i1 %1036, label %1037, label %1082

1037:                                             ; preds = %1034
  %1038 = load ptr, ptr %44, align 8, !tbaa !5
  %1039 = load i32, ptr %1038, align 4, !tbaa !9
  %1040 = load i32, ptr %91, align 4, !tbaa !9
  %1041 = icmp sgt i32 %1039, %1040
  br i1 %1041, label %1042, label %1057

1042:                                             ; preds = %1037
  %1043 = load ptr, ptr %44, align 8, !tbaa !5
  %1044 = load i32, ptr %1043, align 4, !tbaa !9
  %1045 = load i32, ptr %91, align 4, !tbaa !9
  %1046 = sub nsw i32 %1044, %1045
  store i32 %1046, ptr %86, align 4, !tbaa !9
  %1047 = load ptr, ptr %54, align 8, !tbaa !5
  %1048 = load ptr, ptr %56, align 8, !tbaa !5
  %1049 = load i32, ptr %91, align 4, !tbaa !9
  %1050 = add nsw i32 %1049, 1
  %1051 = load i32, ptr %78, align 4, !tbaa !9
  %1052 = add nsw i32 %1050, %1051
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds %struct.complex, ptr %1048, i64 %1053
  %1055 = load ptr, ptr %57, align 8, !tbaa !5
  %1056 = call i32 @claset_(ptr noundef @.str.12, ptr noundef %86, ptr noundef %1047, ptr noundef %96, ptr noundef %96, ptr noundef %1054, ptr noundef %1055)
  br label %1057

1057:                                             ; preds = %1042, %1037
  %1058 = load ptr, ptr %66, align 8, !tbaa !5
  %1059 = load i32, ptr %1058, align 4, !tbaa !9
  %1060 = load i32, ptr %91, align 4, !tbaa !9
  %1061 = sub nsw i32 %1059, %1060
  store i32 %1061, ptr %86, align 4, !tbaa !9
  %1062 = load ptr, ptr %44, align 8, !tbaa !5
  %1063 = load ptr, ptr %54, align 8, !tbaa !5
  %1064 = load ptr, ptr %46, align 8, !tbaa !5
  %1065 = load i32, ptr %73, align 4, !tbaa !9
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds %struct.complex, ptr %1064, i64 %1066
  %1068 = load ptr, ptr %47, align 8, !tbaa !5
  %1069 = load ptr, ptr %65, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.complex, ptr %1069, i64 1
  %1071 = load ptr, ptr %56, align 8, !tbaa !5
  %1072 = load i32, ptr %79, align 4, !tbaa !9
  %1073 = sext i32 %1072 to i64
  %1074 = getelementptr inbounds %struct.complex, ptr %1071, i64 %1073
  %1075 = load ptr, ptr %57, align 8, !tbaa !5
  %1076 = load ptr, ptr %65, align 8, !tbaa !5
  %1077 = load i32, ptr %91, align 4, !tbaa !9
  %1078 = add nsw i32 %1077, 1
  %1079 = sext i32 %1078 to i64
  %1080 = getelementptr inbounds %struct.complex, ptr %1076, i64 %1079
  %1081 = call i32 @cunmqr_(ptr noundef @.str.9, ptr noundef @.str.8, ptr noundef %1062, ptr noundef %1063, ptr noundef %91, ptr noundef %1067, ptr noundef %1068, ptr noundef %1070, ptr noundef %1074, ptr noundef %1075, ptr noundef %1080, ptr noundef %86, ptr noundef %89)
  br label %1147

1082:                                             ; preds = %1034
  %1083 = load i32, ptr %103, align 4, !tbaa !9
  %1084 = icmp ne i32 %1083, 0
  br i1 %1084, label %1085, label %1146

1085:                                             ; preds = %1082
  %1086 = load ptr, ptr %45, align 8, !tbaa !5
  %1087 = load ptr, ptr %54, align 8, !tbaa !5
  %1088 = load ptr, ptr %48, align 8, !tbaa !5
  %1089 = load i32, ptr %75, align 4, !tbaa !9
  %1090 = sext i32 %1089 to i64
  %1091 = getelementptr inbounds %struct.complex, ptr %1088, i64 %1090
  %1092 = load ptr, ptr %49, align 8, !tbaa !5
  %1093 = load ptr, ptr %56, align 8, !tbaa !5
  %1094 = load i32, ptr %79, align 4, !tbaa !9
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds %struct.complex, ptr %1093, i64 %1095
  %1097 = load ptr, ptr %57, align 8, !tbaa !5
  %1098 = call i32 @clacpy_(ptr noundef @.str.12, ptr noundef %1086, ptr noundef %1087, ptr noundef %1091, ptr noundef %1092, ptr noundef %1096, ptr noundef %1097)
  %1099 = load ptr, ptr %44, align 8, !tbaa !5
  %1100 = load i32, ptr %1099, align 4, !tbaa !9
  %1101 = load ptr, ptr %45, align 8, !tbaa !5
  %1102 = load i32, ptr %1101, align 4, !tbaa !9
  %1103 = icmp sgt i32 %1100, %1102
  br i1 %1103, label %1104, label %1121

1104:                                             ; preds = %1085
  %1105 = load ptr, ptr %44, align 8, !tbaa !5
  %1106 = load i32, ptr %1105, align 4, !tbaa !9
  %1107 = load ptr, ptr %45, align 8, !tbaa !5
  %1108 = load i32, ptr %1107, align 4, !tbaa !9
  %1109 = sub nsw i32 %1106, %1108
  store i32 %1109, ptr %86, align 4, !tbaa !9
  %1110 = load ptr, ptr %54, align 8, !tbaa !5
  %1111 = load ptr, ptr %56, align 8, !tbaa !5
  %1112 = load ptr, ptr %45, align 8, !tbaa !5
  %1113 = load i32, ptr %1112, align 4, !tbaa !9
  %1114 = add nsw i32 %1113, 1
  %1115 = load i32, ptr %78, align 4, !tbaa !9
  %1116 = add nsw i32 %1114, %1115
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds %struct.complex, ptr %1111, i64 %1117
  %1119 = load ptr, ptr %57, align 8, !tbaa !5
  %1120 = call i32 @claset_(ptr noundef @.str.12, ptr noundef %86, ptr noundef %1110, ptr noundef %96, ptr noundef %96, ptr noundef %1118, ptr noundef %1119)
  br label %1121

1121:                                             ; preds = %1104, %1085
  %1122 = load ptr, ptr %66, align 8, !tbaa !5
  %1123 = load i32, ptr %1122, align 4, !tbaa !9
  %1124 = load i32, ptr %91, align 4, !tbaa !9
  %1125 = sub nsw i32 %1123, %1124
  store i32 %1125, ptr %86, align 4, !tbaa !9
  %1126 = load ptr, ptr %44, align 8, !tbaa !5
  %1127 = load ptr, ptr %54, align 8, !tbaa !5
  %1128 = load ptr, ptr %46, align 8, !tbaa !5
  %1129 = load i32, ptr %73, align 4, !tbaa !9
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds %struct.complex, ptr %1128, i64 %1130
  %1132 = load ptr, ptr %47, align 8, !tbaa !5
  %1133 = load ptr, ptr %65, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.complex, ptr %1133, i64 1
  %1135 = load ptr, ptr %56, align 8, !tbaa !5
  %1136 = load i32, ptr %79, align 4, !tbaa !9
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds %struct.complex, ptr %1135, i64 %1137
  %1139 = load ptr, ptr %57, align 8, !tbaa !5
  %1140 = load ptr, ptr %65, align 8, !tbaa !5
  %1141 = load i32, ptr %91, align 4, !tbaa !9
  %1142 = add nsw i32 %1141, 1
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds %struct.complex, ptr %1140, i64 %1143
  %1145 = call i32 @cunmqr_(ptr noundef @.str.9, ptr noundef @.str.8, ptr noundef %1126, ptr noundef %1127, ptr noundef %91, ptr noundef %1131, ptr noundef %1132, ptr noundef %1134, ptr noundef %1138, ptr noundef %1139, ptr noundef %1144, ptr noundef %86, ptr noundef %89)
  br label %1146

1146:                                             ; preds = %1121, %1082
  br label %1147

1147:                                             ; preds = %1146, %1057
  %1148 = load i32, ptr %114, align 4, !tbaa !9
  %1149 = icmp ne i32 %1148, 0
  br i1 %1149, label %1150, label %1170

1150:                                             ; preds = %1147
  %1151 = load ptr, ptr %45, align 8, !tbaa !5
  %1152 = load ptr, ptr %50, align 8, !tbaa !5
  %1153 = load i32, ptr %77, align 4, !tbaa !9
  %1154 = sext i32 %1153 to i64
  %1155 = getelementptr inbounds %struct.complex, ptr %1152, i64 %1154
  %1156 = load ptr, ptr %51, align 8, !tbaa !5
  %1157 = call i32 @claset_(ptr noundef @.str.12, ptr noundef %91, ptr noundef %1151, ptr noundef %96, ptr noundef %96, ptr noundef %1155, ptr noundef %1156)
  %1158 = load ptr, ptr %45, align 8, !tbaa !5
  %1159 = load ptr, ptr %46, align 8, !tbaa !5
  %1160 = load i32, ptr %73, align 4, !tbaa !9
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds %struct.complex, ptr %1159, i64 %1161
  %1163 = load ptr, ptr %47, align 8, !tbaa !5
  %1164 = load ptr, ptr %50, align 8, !tbaa !5
  %1165 = load i32, ptr %77, align 4, !tbaa !9
  %1166 = sext i32 %1165 to i64
  %1167 = getelementptr inbounds %struct.complex, ptr %1164, i64 %1166
  %1168 = load ptr, ptr %51, align 8, !tbaa !5
  %1169 = call i32 @clacpy_(ptr noundef @.str.11, ptr noundef %91, ptr noundef %1158, ptr noundef %1162, ptr noundef %1163, ptr noundef %1167, ptr noundef %1168)
  br label %1170

1170:                                             ; preds = %1150, %1147
  %1171 = load i32, ptr %92, align 4, !tbaa !9
  %1172 = icmp ne i32 %1171, 0
  br i1 %1172, label %1173, label %1192

1173:                                             ; preds = %1170
  %1174 = load ptr, ptr %66, align 8, !tbaa !5
  %1175 = load i32, ptr %1174, align 4, !tbaa !9
  %1176 = load i32, ptr %91, align 4, !tbaa !9
  %1177 = sub nsw i32 %1175, %1176
  store i32 %1177, ptr %86, align 4, !tbaa !9
  %1178 = load ptr, ptr %44, align 8, !tbaa !5
  %1179 = load ptr, ptr %46, align 8, !tbaa !5
  %1180 = load i32, ptr %73, align 4, !tbaa !9
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds %struct.complex, ptr %1179, i64 %1181
  %1183 = load ptr, ptr %47, align 8, !tbaa !5
  %1184 = load ptr, ptr %65, align 8, !tbaa !5
  %1185 = getelementptr inbounds %struct.complex, ptr %1184, i64 1
  %1186 = load ptr, ptr %65, align 8, !tbaa !5
  %1187 = load i32, ptr %91, align 4, !tbaa !9
  %1188 = add nsw i32 %1187, 1
  %1189 = sext i32 %1188 to i64
  %1190 = getelementptr inbounds %struct.complex, ptr %1186, i64 %1189
  %1191 = call i32 @cungqr_(ptr noundef %1178, ptr noundef %91, ptr noundef %91, ptr noundef %1182, ptr noundef %1183, ptr noundef %1185, ptr noundef %1190, ptr noundef %86, ptr noundef %89)
  br label %1192

1192:                                             ; preds = %1173, %1170
  store i32 0, ptr %36, align 4
  store i32 1, ptr %117, align 4
  br label %1193

1193:                                             ; preds = %1192, %1028, %857, %849, %508
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #3
  %1194 = load i32, ptr %36, align 4
  ret i32 %1194
}

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"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 = !{!7, !7, i64 0}


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

%struct.complex = type { float, float }

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @cgedmdq_(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, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, ptr noundef %28, ptr noundef %29, ptr noundef %30, ptr noundef %31, ptr noundef %32, ptr noundef %33, ptr nocapture noundef %34) local_unnamed_addr #0 {
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca [1 x i8], align 1
  %40 = alloca i32, align 4
  %41 = alloca %struct.complex, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #4
  %42 = load i32, ptr %10, align 4, !tbaa !5
  %narrow = xor i32 %42, -1
  %43 = sext i32 %narrow to i64
  %44 = getelementptr inbounds %struct.complex, ptr %9, i64 %43
  %45 = load i32, ptr %14, align 4, !tbaa !5
  %narrow453 = xor i32 %45, -1
  %46 = sext i32 %narrow453 to i64
  %47 = getelementptr inbounds %struct.complex, ptr %13, i64 %46
  %48 = load i32, ptr %20, align 4, !tbaa !5
  %narrow454 = xor i32 %48, -1
  %49 = sext i32 %narrow454 to i64
  %50 = getelementptr inbounds %struct.complex, ptr %19, i64 %49
  %51 = getelementptr inbounds i8, ptr %28, i64 -8
  store <2 x float> zeroinitializer, ptr %41, align 8, !tbaa !9
  %52 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #4
  %53 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %.not = icmp eq i32 %53, 0
  br i1 %.not, label %54, label %57

54:                                               ; preds = %35
  %55 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #4
  %56 = icmp ne i32 %55, 0
  br label %57

57:                                               ; preds = %54, %35
  %58 = phi i1 [ true, %35 ], [ %56, %54 ]
  %59 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #4
  %60 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #4
  %61 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.5) #4
  %62 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.6) #4
  %63 = tail call i32 @lsame_(ptr noundef %5, ptr noundef nonnull @.str) #4
  %64 = tail call i32 @lsame_(ptr noundef %5, ptr noundef nonnull @.str.7) #4
  %65 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.6) #4
  %66 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str) #4
  %67 = load i32, ptr %7, align 4, !tbaa !5
  %68 = load i32, ptr %8, align 4, !tbaa !5
  %. = tail call i32 @llvm.smin.i32(i32 %67, i32 %68)
  store i32 %., ptr %40, align 4, !tbaa !5
  store i32 0, ptr %34, align 4, !tbaa !5
  %69 = load i32, ptr %31, align 4, !tbaa !5
  %70 = icmp eq i32 %69, -1
  br i1 %70, label %74, label %71

71:                                               ; preds = %57
  %72 = load i32, ptr %33, align 4, !tbaa !5
  %73 = icmp eq i32 %72, -1
  br label %74

74:                                               ; preds = %71, %57
  %75 = phi i1 [ true, %57 ], [ %73, %71 ]
  %76 = icmp ne i32 %59, 0
  %or.cond = select i1 %58, i1 true, i1 %76
  br i1 %or.cond, label %80, label %77

77:                                               ; preds = %74
  %78 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.8) #4
  %.not434 = icmp eq i32 %78, 0
  br i1 %.not434, label %79, label %80

79:                                               ; preds = %77
  store i32 -1, ptr %34, align 4, !tbaa !5
  br label %159

80:                                               ; preds = %77, %74
  %81 = icmp ne i32 %60, 0
  %82 = icmp ne i32 %61, 0
  %or.cond3 = select i1 %81, i1 true, i1 %82
  %83 = icmp ne i32 %62, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %83
  br i1 %or.cond5, label %87, label %84

84:                                               ; preds = %80
  %85 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.8) #4
  %.not435 = icmp eq i32 %85, 0
  br i1 %.not435, label %86, label %87

86:                                               ; preds = %84
  store i32 -2, ptr %34, align 4, !tbaa !5
  br label %159

87:                                               ; preds = %84, %80
  %.not436 = icmp eq i32 %52, 0
  br i1 %.not436, label %88, label %.critedge

88:                                               ; preds = %87
  %89 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.8) #4
  %.not437 = icmp eq i32 %89, 0
  br i1 %.not437, label %91, label %92

.critedge:                                        ; preds = %87
  %90 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.8) #4
  %.not438 = icmp eq i32 %90, 0
  br i1 %.not438, label %92, label %91

91:                                               ; preds = %.critedge, %88
  store i32 -3, ptr %34, align 4, !tbaa !5
  br label %159

92:                                               ; preds = %88, %.critedge
  %.not439 = icmp eq i32 %65, 0
  br i1 %.not439, label %93, label %96

93:                                               ; preds = %92
  %94 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.8) #4
  %.not440 = icmp eq i32 %94, 0
  br i1 %.not440, label %95, label %96

95:                                               ; preds = %93
  store i32 -4, ptr %34, align 4, !tbaa !5
  br label %159

96:                                               ; preds = %93, %92
  %.not441 = icmp eq i32 %66, 0
  br i1 %.not441, label %97, label %100

97:                                               ; preds = %96
  %98 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.8) #4
  %.not442 = icmp eq i32 %98, 0
  br i1 %.not442, label %99, label %100

99:                                               ; preds = %97
  store i32 -5, ptr %34, align 4, !tbaa !5
  br label %159

100:                                              ; preds = %97, %96
  %101 = icmp ne i32 %63, 0
  %102 = icmp ne i32 %64, 0
  %or.cond7 = select i1 %101, i1 true, i1 %102
  br i1 %or.cond7, label %106, label %103

103:                                              ; preds = %100
  %104 = tail call i32 @lsame_(ptr noundef %5, ptr noundef nonnull @.str.8) #4
  %.not443 = icmp eq i32 %104, 0
  br i1 %.not443, label %105, label %106

105:                                              ; preds = %103
  store i32 -6, ptr %34, align 4, !tbaa !5
  br label %159

106:                                              ; preds = %103, %100
  %107 = load i32, ptr %6, align 4, !tbaa !5
  %.off = add i32 %107, -1
  %switch = icmp ult i32 %.off, 4
  br i1 %switch, label %109, label %108

108:                                              ; preds = %106
  store i32 -7, ptr %34, align 4, !tbaa !5
  br label %159

109:                                              ; preds = %106
  %110 = load i32, ptr %7, align 4, !tbaa !5
  %111 = icmp slt i32 %110, 0
  br i1 %111, label %112, label %113

112:                                              ; preds = %109
  store i32 -8, ptr %34, align 4, !tbaa !5
  br label %159

113:                                              ; preds = %109
  %114 = load i32, ptr %8, align 4, !tbaa !5
  %115 = icmp slt i32 %114, 0
  %116 = add nuw nsw i32 %110, 1
  %117 = icmp sgt i32 %114, %116
  %or.cond458 = select i1 %115, i1 true, i1 %117
  br i1 %or.cond458, label %118, label %119

118:                                              ; preds = %113
  store i32 -9, ptr %34, align 4, !tbaa !5
  br label %159

119:                                              ; preds = %113
  %120 = load i32, ptr %10, align 4, !tbaa !5
  %121 = icmp slt i32 %120, %110
  br i1 %121, label %122, label %123

122:                                              ; preds = %119
  store i32 -11, ptr %34, align 4, !tbaa !5
  br label %159

123:                                              ; preds = %119
  %124 = load i32, ptr %12, align 4, !tbaa !5
  %125 = icmp slt i32 %124, %.
  br i1 %125, label %126, label %127

126:                                              ; preds = %123
  store i32 -13, ptr %34, align 4, !tbaa !5
  br label %159

127:                                              ; preds = %123
  %128 = load i32, ptr %14, align 4, !tbaa !5
  %129 = icmp slt i32 %128, %.
  br i1 %129, label %130, label %131

130:                                              ; preds = %127
  store i32 -15, ptr %34, align 4, !tbaa !5
  br label %159

131:                                              ; preds = %127
  %132 = load i32, ptr %15, align 4, !tbaa !5
  %switch466 = icmp ugt i32 %132, -3
  br i1 %switch466, label %136, label %133

133:                                              ; preds = %131
  %134 = icmp slt i32 %132, 1
  %.not444 = icmp sgt i32 %132, %114
  %or.cond459 = or i1 %134, %.not444
  br i1 %or.cond459, label %135, label %136

135:                                              ; preds = %133
  store i32 -16, ptr %34, align 4, !tbaa !5
  br label %159

136:                                              ; preds = %131, %133
  %137 = load float, ptr %16, align 4, !tbaa !9
  %138 = fcmp uge float %137, 0.000000e+00
  %139 = fcmp ult float %137, 1.000000e+00
  %or.cond460 = and i1 %138, %139
  br i1 %or.cond460, label %141, label %140

140:                                              ; preds = %136
  store i32 -17, ptr %34, align 4, !tbaa !5
  br label %159

141:                                              ; preds = %136
  %142 = load i32, ptr %20, align 4, !tbaa !5
  %143 = icmp slt i32 %142, %110
  br i1 %143, label %144, label %145

144:                                              ; preds = %141
  store i32 -21, ptr %34, align 4, !tbaa !5
  br label %159

145:                                              ; preds = %141
  br i1 %or.cond7, label %146, label %150

146:                                              ; preds = %145
  %147 = load i32, ptr %23, align 4, !tbaa !5
  %148 = icmp slt i32 %147, %.
  br i1 %148, label %149, label %150

149:                                              ; preds = %146
  store i32 -24, ptr %34, align 4, !tbaa !5
  br label %159

150:                                              ; preds = %145, %146
  %151 = load i32, ptr %25, align 4, !tbaa !5
  %152 = add nsw i32 %114, -1
  %153 = icmp slt i32 %151, %152
  br i1 %153, label %154, label %155

154:                                              ; preds = %150
  store i32 -26, ptr %34, align 4, !tbaa !5
  br label %159

155:                                              ; preds = %150
  %156 = load i32, ptr %27, align 4, !tbaa !5
  %157 = icmp slt i32 %156, %152
  br i1 %157, label %158, label %._crit_edge

._crit_edge:                                      ; preds = %155
  %.pre = load i32, ptr %34, align 4, !tbaa !5
  br label %159

158:                                              ; preds = %155
  store i32 -28, ptr %34, align 4, !tbaa !5
  br label %159

159:                                              ; preds = %._crit_edge, %86, %95, %105, %112, %122, %130, %140, %149, %158, %154, %144, %135, %126, %118, %108, %99, %91, %79
  %160 = phi i32 [ %.pre, %._crit_edge ], [ -2, %86 ], [ -4, %95 ], [ -6, %105 ], [ -8, %112 ], [ -11, %122 ], [ -15, %130 ], [ -17, %140 ], [ -24, %149 ], [ -28, %158 ], [ -26, %154 ], [ -21, %144 ], [ -16, %135 ], [ -13, %126 ], [ -9, %118 ], [ -7, %108 ], [ -5, %99 ], [ -3, %91 ], [ -1, %79 ]
  %161 = icmp ne i32 %60, 0
  %162 = icmp ne i32 %61, 0
  %or.cond11 = select i1 %161, i1 true, i1 %162
  %163 = icmp ne i32 %62, 0
  %or.cond13 = select i1 %or.cond11, i1 true, i1 %163
  %.461 = select i1 %or.cond13, i8 86, i8 78
  store i8 %.461, ptr %39, align 1, !tbaa !11
  %164 = icmp eq i32 %160, 0
  br i1 %164, label %165, label %.thread485

165:                                              ; preds = %159
  %166 = load i32, ptr %8, align 4, !tbaa !5
  %switch467 = icmp ult i32 %166, 2
  br i1 %switch467, label %167, label %171

167:                                              ; preds = %165
  br i1 %75, label %168, label %169

168:                                              ; preds = %167
  store i32 1, ptr %32, align 4, !tbaa !5
  store <2 x float> <float 2.000000e+00, float 2.000000e+00>, ptr %30, align 4, !tbaa !9
  br label %170

169:                                              ; preds = %167
  store i32 0, ptr %17, align 4, !tbaa !5
  br label %170

170:                                              ; preds = %169, %168
  store i32 1, ptr %34, align 4, !tbaa !5
  br label %340

171:                                              ; preds = %165
  %spec.select = tail call i32 @llvm.smax.i32(i32 %166, i32 1)
  store i32 2, ptr %36, align 4, !tbaa !5
  %172 = add nsw i32 %., %spec.select
  br i1 %75, label %173, label %180

173:                                              ; preds = %171
  %174 = call i32 @cgeqrf_(ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %28, ptr noundef %28, ptr noundef nonnull @c_n1, ptr noundef nonnull %38) #4
  %175 = load float, ptr %28, align 4, !tbaa !12
  %176 = fptosi float %175 to i32
  %177 = load i32, ptr %40, align 4, !tbaa !5
  %178 = add nsw i32 %177, %176
  store i32 %178, ptr %37, align 4, !tbaa !5
  %179 = call i32 @llvm.smax.i32(i32 %178, i32 2)
  %.pre503 = load i32, ptr %8, align 4, !tbaa !5
  br label %180

180:                                              ; preds = %173, %171
  %181 = phi i32 [ %.pre503, %173 ], [ %166, %171 ]
  %.0410 = phi i32 [ %179, %173 ], [ 2, %171 ]
  %182 = add nsw i32 %181, -1
  store i32 %182, ptr %36, align 4, !tbaa !5
  %183 = call i32 @cgedmd_(ptr noundef %0, ptr noundef nonnull %39, ptr noundef %2, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %40, ptr noundef nonnull %36, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %21, ptr noundef %22, ptr noundef nonnull %23, ptr noundef %24, ptr noundef nonnull %25, ptr noundef %26, ptr noundef nonnull %27, ptr noundef %28, ptr noundef %29, ptr noundef %30, ptr noundef nonnull @c_n1, ptr noundef %32, ptr noundef %33, ptr noundef nonnull %38) #4
  %184 = load float, ptr %28, align 4, !tbaa !12
  %185 = fptosi float %184 to i32
  %186 = load i32, ptr %40, align 4, !tbaa !5
  %187 = add nsw i32 %186, %185
  %188 = call i32 @llvm.smax.i32(i32 %172, i32 %187)
  %189 = call i32 @llvm.smax.i32(i32 %188, i32 2)
  %190 = load float, ptr %30, align 4, !tbaa !9
  %191 = fptosi float %190 to i32
  %192 = call i32 @llvm.smax.i32(i32 %191, i32 2)
  %193 = load i32, ptr %32, align 4, !tbaa !5
  %.462 = call i32 @llvm.smax.i32(i32 %193, i32 1)
  br i1 %75, label %194, label %200

194:                                              ; preds = %180
  %195 = getelementptr inbounds i8, ptr %28, i64 8
  %196 = load float, ptr %195, align 4, !tbaa !12
  %197 = fptosi float %196 to i32
  %198 = add nsw i32 %186, %197
  store i32 %198, ptr %37, align 4, !tbaa !5
  %199 = call i32 @llvm.smax.i32(i32 %.0410, i32 %198)
  br label %200

200:                                              ; preds = %194, %180
  %.1 = phi i32 [ %199, %194 ], [ %.0410, %180 ]
  br i1 %or.cond11, label %201, label %212

201:                                              ; preds = %200
  %202 = load i32, ptr %8, align 4, !tbaa !5
  %spec.select463 = call i32 @llvm.smax.i32(i32 %202, i32 1)
  store i32 %189, ptr %36, align 4, !tbaa !5
  %203 = add nsw i32 %spec.select463, %186
  %204 = call i32 @llvm.smax.i32(i32 %189, i32 %203)
  br i1 %75, label %205, label %212

205:                                              ; preds = %201
  %206 = call i32 @cunmqr_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.8, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %40, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef %19, ptr noundef nonnull %20, ptr noundef nonnull %28, ptr noundef nonnull @c_n1, ptr noundef nonnull %38) #4
  %207 = load float, ptr %28, align 4, !tbaa !12
  %208 = fptosi float %207 to i32
  %209 = load i32, ptr %40, align 4, !tbaa !5
  %210 = add nsw i32 %209, %208
  %211 = call i32 @llvm.smax.i32(i32 %.1, i32 %210)
  br label %212

212:                                              ; preds = %201, %205, %200
  %213 = phi i32 [ %209, %205 ], [ %186, %201 ], [ %186, %200 ]
  %.0411 = phi i32 [ %204, %205 ], [ %204, %201 ], [ %189, %200 ]
  %.2 = phi i32 [ %211, %205 ], [ %.1, %201 ], [ %.1, %200 ]
  %.not449 = icmp eq i32 %65, 0
  br i1 %.not449, label %218, label %214

214:                                              ; preds = %212
  %215 = load i32, ptr %8, align 4, !tbaa !5
  %spec.select464 = call i32 @llvm.smax.i32(i32 %215, i32 1)
  store i32 %.0411, ptr %36, align 4, !tbaa !5
  %216 = add nsw i32 %213, %spec.select464
  %217 = call i32 @llvm.smax.i32(i32 %.0411, i32 %216)
  br i1 %75, label %.thread491, label %218

218:                                              ; preds = %214, %212
  %.1412 = phi i32 [ %217, %214 ], [ %.0411, %212 ]
  %219 = load i32, ptr %33, align 4, !tbaa !5
  %220 = icmp sge i32 %219, %.462
  %or.cond17 = select i1 %220, i1 true, i1 %75
  br i1 %or.cond17, label %222, label %221

221:                                              ; preds = %218
  store i32 -34, ptr %34, align 4, !tbaa !5
  br label %222

222:                                              ; preds = %221, %218
  %223 = load i32, ptr %31, align 4, !tbaa !5
  %224 = icmp sge i32 %223, %192
  %or.cond19 = select i1 %224, i1 true, i1 %75
  br i1 %or.cond19, label %226, label %225

225:                                              ; preds = %222
  store i32 -32, ptr %34, align 4, !tbaa !5
  br label %226

226:                                              ; preds = %225, %222
  %227 = load i32, ptr %29, align 4, !tbaa !5
  %228 = icmp sge i32 %227, %.1412
  %or.cond21 = select i1 %228, i1 true, i1 %75
  br i1 %or.cond21, label %230, label %229

229:                                              ; preds = %226
  store i32 -30, ptr %34, align 4, !tbaa !5
  br label %.thread485

230:                                              ; preds = %226
  %.pr = load i32, ptr %34, align 4, !tbaa !5
  %.not452 = icmp eq i32 %.pr, 0
  br i1 %.not452, label %240, label %.thread485

.thread491:                                       ; preds = %214
  %231 = call i32 @cungqr_(ptr noundef nonnull %7, ptr noundef nonnull %40, ptr noundef nonnull %40, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef nonnull %28, ptr noundef nonnull @c_n1, ptr noundef nonnull %38) #4
  %232 = load float, ptr %28, align 4, !tbaa !12
  %233 = fptosi float %232 to i32
  %234 = load i32, ptr %40, align 4, !tbaa !5
  %235 = add nsw i32 %234, %233
  %236 = call i32 @llvm.smax.i32(i32 %.2, i32 %235)
  %.pr494 = load i32, ptr %34, align 4, !tbaa !5
  %.not452495 = icmp eq i32 %.pr494, 0
  br i1 %.not452495, label %.thread498, label %.thread485

.thread485:                                       ; preds = %159, %229, %.thread491, %230
  %237 = phi i32 [ %.pr, %230 ], [ %.pr494, %.thread491 ], [ %160, %159 ], [ -30, %229 ]
  %238 = sub nsw i32 0, %237
  store i32 %238, ptr %36, align 4, !tbaa !5
  %239 = call i32 @xerbla_(ptr noundef nonnull @.str.10, ptr noundef nonnull %36) #4
  br label %340

240:                                              ; preds = %230
  br i1 %75, label %.thread498, label %248

.thread498:                                       ; preds = %.thread491, %240
  %.2413.ph496502 = phi i32 [ %.1412, %240 ], [ %217, %.thread491 ]
  %.4.ph497501 = phi i32 [ %.2, %240 ], [ %236, %.thread491 ]
  store i32 %.462, ptr %32, align 4, !tbaa !5
  %241 = uitofp nneg i32 %.2413.ph496502 to float
  store float %241, ptr %28, align 4, !tbaa !12
  %242 = getelementptr inbounds i8, ptr %28, i64 4
  store float 0.000000e+00, ptr %242, align 4, !tbaa !14
  %243 = uitofp nneg i32 %.4.ph497501 to float
  %244 = getelementptr inbounds i8, ptr %28, i64 8
  store float %243, ptr %244, align 4, !tbaa !12
  %245 = getelementptr inbounds i8, ptr %28, i64 12
  store float 0.000000e+00, ptr %245, align 4, !tbaa !14
  %246 = uitofp nneg i32 %192 to float
  store float %246, ptr %30, align 4, !tbaa !9
  %247 = getelementptr inbounds i8, ptr %30, i64 4
  store float %246, ptr %247, align 4, !tbaa !9
  br label %340

248:                                              ; preds = %240
  %249 = sub nsw i32 %227, %213
  store i32 %249, ptr %36, align 4, !tbaa !5
  %250 = sext i32 %213 to i64
  %251 = getelementptr %struct.complex, ptr %51, i64 %250
  %252 = getelementptr i8, ptr %251, i64 8
  %253 = call i32 @cgeqrf_(ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef %252, ptr noundef nonnull %36, ptr noundef nonnull %38) #4
  %254 = load i32, ptr %8, align 4, !tbaa !5
  %255 = add nsw i32 %254, -1
  store i32 %255, ptr %36, align 4, !tbaa !5
  %256 = call i32 @claset_(ptr noundef nonnull @.str.9, ptr noundef nonnull %40, ptr noundef nonnull %36, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef %11, ptr noundef %12) #4
  %257 = load i32, ptr %8, align 4, !tbaa !5
  %258 = add nsw i32 %257, -1
  store i32 %258, ptr %36, align 4, !tbaa !5
  %259 = call i32 @clacpy_(ptr noundef nonnull @.str.11, ptr noundef nonnull %40, ptr noundef nonnull %36, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef %12) #4
  %260 = load i32, ptr %8, align 4, !tbaa !5
  %261 = add nsw i32 %260, -1
  store i32 %261, ptr %36, align 4, !tbaa !5
  %262 = shl i32 %42, 1
  %263 = or disjoint i32 %262, 1
  %264 = sext i32 %263 to i64
  %265 = getelementptr inbounds %struct.complex, ptr %44, i64 %264
  %266 = call i32 @clacpy_(ptr noundef nonnull @.str.12, ptr noundef nonnull %40, ptr noundef nonnull %36, ptr noundef nonnull %265, ptr noundef nonnull %10, ptr noundef %13, ptr noundef nonnull %14) #4
  %267 = load i32, ptr %7, align 4, !tbaa !5
  %268 = icmp sgt i32 %267, 2
  br i1 %268, label %269, label %278

269:                                              ; preds = %248
  %270 = load i32, ptr %40, align 4, !tbaa !5
  %271 = add nsw i32 %270, -2
  store i32 %271, ptr %36, align 4, !tbaa !5
  %272 = load i32, ptr %8, align 4, !tbaa !5
  %273 = add nsw i32 %272, -2
  store i32 %273, ptr %37, align 4, !tbaa !5
  %274 = sext i32 %45 to i64
  %275 = getelementptr %struct.complex, ptr %47, i64 %274
  %276 = getelementptr i8, ptr %275, i64 24
  %277 = call i32 @claset_(ptr noundef nonnull @.str.9, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef %276, ptr noundef nonnull %14) #4
  br label %278

278:                                              ; preds = %269, %248
  %279 = load i32, ptr %8, align 4, !tbaa !5
  %280 = add nsw i32 %279, -1
  store i32 %280, ptr %36, align 4, !tbaa !5
  %281 = load i32, ptr %29, align 4, !tbaa !5
  %282 = load i32, ptr %40, align 4, !tbaa !5
  %283 = sub nsw i32 %281, %282
  store i32 %283, ptr %37, align 4, !tbaa !5
  %284 = sext i32 %282 to i64
  %285 = getelementptr %struct.complex, ptr %51, i64 %284
  %286 = getelementptr i8, ptr %285, i64 8
  %287 = call i32 @cgedmd_(ptr noundef %0, ptr noundef nonnull %39, ptr noundef %2, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %40, ptr noundef nonnull %36, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, ptr noundef %286, ptr noundef nonnull %37, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %38) #4
  %288 = load i32, ptr %38, align 4
  %289 = and i32 %288, -2
  %or.cond23 = icmp eq i32 %289, 2
  store i32 %288, ptr %34, align 4, !tbaa !5
  br i1 %or.cond23, label %340, label %290

290:                                              ; preds = %278
  br i1 %161, label %291, label %306

291:                                              ; preds = %290
  %292 = load i32, ptr %7, align 4, !tbaa !5
  %293 = load i32, ptr %40, align 4, !tbaa !5
  %294 = icmp sgt i32 %292, %293
  br i1 %294, label %295, label %302

295:                                              ; preds = %291
  %296 = sub nsw i32 %292, %293
  store i32 %296, ptr %36, align 4, !tbaa !5
  %297 = add i32 %48, 1
  %298 = add i32 %297, %293
  %299 = sext i32 %298 to i64
  %300 = getelementptr inbounds %struct.complex, ptr %50, i64 %299
  %301 = call i32 @claset_(ptr noundef nonnull @.str.12, ptr noundef nonnull %36, ptr noundef %17, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef %300, ptr noundef nonnull %20) #4
  %.pre504 = load i32, ptr %40, align 4, !tbaa !5
  br label %302

302:                                              ; preds = %295, %291
  %303 = phi i32 [ %.pre504, %295 ], [ %293, %291 ]
  %304 = load i32, ptr %29, align 4, !tbaa !5
  %305 = sub nsw i32 %304, %303
  br label %.sink.split

306:                                              ; preds = %290
  br i1 %162, label %307, label %327

307:                                              ; preds = %306
  %308 = call i32 @clacpy_(ptr noundef nonnull @.str.12, ptr noundef nonnull %8, ptr noundef %17, ptr noundef %11, ptr noundef %12, ptr noundef %19, ptr noundef nonnull %20) #4
  %309 = load i32, ptr %7, align 4, !tbaa !5
  %310 = load i32, ptr %8, align 4, !tbaa !5
  %311 = icmp sgt i32 %309, %310
  br i1 %311, label %312, label %319

312:                                              ; preds = %307
  %313 = sub nsw i32 %309, %310
  store i32 %313, ptr %36, align 4, !tbaa !5
  %314 = add i32 %48, 1
  %315 = add i32 %314, %310
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds %struct.complex, ptr %50, i64 %316
  %318 = call i32 @claset_(ptr noundef nonnull @.str.12, ptr noundef nonnull %36, ptr noundef %17, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef %317, ptr noundef nonnull %20) #4
  br label %319

319:                                              ; preds = %312, %307
  %320 = load i32, ptr %29, align 4, !tbaa !5
  %321 = load i32, ptr %40, align 4, !tbaa !5
  %322 = sub nsw i32 %320, %321
  br label %.sink.split

.sink.split:                                      ; preds = %302, %319
  %storemerge = phi i32 [ %322, %319 ], [ %305, %302 ]
  %.sink506 = phi i32 [ %321, %319 ], [ %303, %302 ]
  store i32 %storemerge, ptr %36, align 4, !tbaa !5
  %323 = sext i32 %.sink506 to i64
  %324 = getelementptr %struct.complex, ptr %51, i64 %323
  %325 = getelementptr i8, ptr %324, i64 8
  %326 = call i32 @cunmqr_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.8, ptr noundef nonnull %7, ptr noundef %17, ptr noundef nonnull %40, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %325, ptr noundef nonnull %36, ptr noundef nonnull %38) #4
  br label %327

327:                                              ; preds = %.sink.split, %306
  %.not455 = icmp eq i32 %66, 0
  br i1 %.not455, label %331, label %328

328:                                              ; preds = %327
  %329 = call i32 @claset_(ptr noundef nonnull @.str.12, ptr noundef nonnull %40, ptr noundef nonnull %8, ptr noundef nonnull %41, ptr noundef nonnull %41, ptr noundef %13, ptr noundef nonnull %14) #4
  %330 = call i32 @clacpy_(ptr noundef nonnull @.str.11, ptr noundef nonnull %40, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %13, ptr noundef nonnull %14) #4
  br label %331

331:                                              ; preds = %328, %327
  br i1 %.not449, label %340, label %332

332:                                              ; preds = %331
  %333 = load i32, ptr %29, align 4, !tbaa !5
  %334 = load i32, ptr %40, align 4, !tbaa !5
  %335 = sub nsw i32 %333, %334
  store i32 %335, ptr %36, align 4, !tbaa !5
  %336 = sext i32 %334 to i64
  %337 = getelementptr %struct.complex, ptr %51, i64 %336
  %338 = getelementptr i8, ptr %337, i64 8
  %339 = call i32 @cungqr_(ptr noundef nonnull %7, ptr noundef nonnull %40, ptr noundef nonnull %40, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %28, ptr noundef %338, ptr noundef nonnull %36, ptr noundef nonnull %38) #4
  br label %340

340:                                              ; preds = %278, %331, %332, %.thread498, %.thread485, %170
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #4
  ret i32 0
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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