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

; 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
@c__1 = external hidden global i64, align 8
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 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
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b29 = external hidden global float, align 4
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1

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

144:                                              ; preds = %17
  store i64 1, ptr %92, align 8, !tbaa !9
  store i64 0, ptr %70, align 8, !tbaa !9
  br label %152

145:                                              ; preds = %17
  %146 = load ptr, ptr %19, align 8, !tbaa !5
  %147 = call i64 @lsame_(ptr noundef %146, ptr noundef @.str.1)
  %148 = icmp ne i64 %147, 0
  br i1 %148, label %149, label %150

149:                                              ; preds = %145
  store i64 2, ptr %92, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %151

150:                                              ; preds = %145
  store i64 -1, ptr %92, align 8, !tbaa !9
  store i64 0, ptr %70, align 8, !tbaa !9
  br label %151

151:                                              ; preds = %150, %149
  br label %152

152:                                              ; preds = %151, %144
  %153 = load ptr, ptr %20, align 8, !tbaa !5
  %154 = call i64 @lsame_(ptr noundef %153, ptr noundef @.str)
  %155 = icmp ne i64 %154, 0
  br i1 %155, label %156, label %157

156:                                              ; preds = %152
  store i64 1, ptr %95, align 8, !tbaa !9
  store i64 0, ptr %71, align 8, !tbaa !9
  br label %164

157:                                              ; preds = %152
  %158 = load ptr, ptr %20, align 8, !tbaa !5
  %159 = call i64 @lsame_(ptr noundef %158, ptr noundef @.str.1)
  %160 = icmp ne i64 %159, 0
  br i1 %160, label %161, label %162

161:                                              ; preds = %157
  store i64 2, ptr %95, align 8, !tbaa !9
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %163

162:                                              ; preds = %157
  store i64 -1, ptr %95, align 8, !tbaa !9
  store i64 0, ptr %71, align 8, !tbaa !9
  br label %163

163:                                              ; preds = %162, %161
  br label %164

164:                                              ; preds = %163, %156
  %165 = load i64, ptr %70, align 8, !tbaa !9
  %166 = icmp ne i64 %165, 0
  br i1 %166, label %170, label %167

167:                                              ; preds = %164
  %168 = load i64, ptr %71, align 8, !tbaa !9
  %169 = icmp ne i64 %168, 0
  br label %170

170:                                              ; preds = %167, %164
  %171 = phi i1 [ true, %164 ], [ %169, %167 ]
  %172 = zext i1 %171 to i32
  %173 = sext i32 %172 to i64
  store i64 %173, ptr %64, align 8, !tbaa !9
  %174 = load ptr, ptr %21, align 8, !tbaa !5
  %175 = load i64, ptr %174, align 8, !tbaa !9
  %176 = shl i64 %175, 1
  store i64 %176, ptr %44, align 8, !tbaa !9
  %177 = load i64, ptr %44, align 8, !tbaa !9
  %178 = icmp sge i64 %177, 1
  br i1 %178, label %179, label %181

179:                                              ; preds = %170
  %180 = load i64, ptr %44, align 8, !tbaa !9
  br label %182

181:                                              ; preds = %170
  br label %182

182:                                              ; preds = %181, %179
  %183 = phi i64 [ %180, %179 ], [ 1, %181 ]
  store i64 %183, ptr %96, align 8, !tbaa !9
  %184 = load i64, ptr %96, align 8, !tbaa !9
  store i64 %184, ptr %98, align 8, !tbaa !9
  %185 = load i64, ptr %98, align 8, !tbaa !9
  %186 = sitofp i64 %185 to float
  %187 = load ptr, ptr %32, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.complex, ptr %187, i64 1
  %189 = getelementptr inbounds %struct.complex, ptr %188, i32 0, i32 0
  store float %186, ptr %189, align 4, !tbaa !11
  %190 = load ptr, ptr %32, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.complex, ptr %190, i64 1
  %192 = getelementptr inbounds %struct.complex, ptr %191, i32 0, i32 1
  store float 0.000000e+00, ptr %192, align 4, !tbaa !14
  %193 = load ptr, ptr %33, align 8, !tbaa !5
  %194 = load i64, ptr %193, align 8, !tbaa !9
  %195 = icmp eq i64 %194, -1
  %196 = zext i1 %195 to i32
  %197 = sext i32 %196 to i64
  store i64 %197, ptr %99, align 8, !tbaa !9
  %198 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 0, ptr %198, align 8, !tbaa !9
  %199 = load i64, ptr %92, align 8, !tbaa !9
  %200 = icmp sle i64 %199, 0
  br i1 %200, label %201, label %203

201:                                              ; preds = %182
  %202 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -1, ptr %202, align 8, !tbaa !9
  br label %291

203:                                              ; preds = %182
  %204 = load i64, ptr %95, align 8, !tbaa !9
  %205 = icmp sle i64 %204, 0
  br i1 %205, label %206, label %208

206:                                              ; preds = %203
  %207 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -2, ptr %207, align 8, !tbaa !9
  br label %290

208:                                              ; preds = %203
  %209 = load ptr, ptr %21, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  %211 = icmp slt i64 %210, 0
  br i1 %211, label %212, label %214

212:                                              ; preds = %208
  %213 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -3, ptr %213, align 8, !tbaa !9
  br label %289

214:                                              ; preds = %208
  %215 = load ptr, ptr %23, align 8, !tbaa !5
  %216 = load i64, ptr %215, align 8, !tbaa !9
  %217 = load ptr, ptr %21, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = icmp sge i64 1, %218
  br i1 %219, label %220, label %221

220:                                              ; preds = %214
  br label %224

221:                                              ; preds = %214
  %222 = load ptr, ptr %21, align 8, !tbaa !5
  %223 = load i64, ptr %222, align 8, !tbaa !9
  br label %224

224:                                              ; preds = %221, %220
  %225 = phi i64 [ 1, %220 ], [ %223, %221 ]
  %226 = icmp slt i64 %216, %225
  br i1 %226, label %227, label %229

227:                                              ; preds = %224
  %228 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -5, ptr %228, align 8, !tbaa !9
  br label %288

229:                                              ; preds = %224
  %230 = load ptr, ptr %25, align 8, !tbaa !5
  %231 = load i64, ptr %230, align 8, !tbaa !9
  %232 = load ptr, ptr %21, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  %234 = icmp sge i64 1, %233
  br i1 %234, label %235, label %236

235:                                              ; preds = %229
  br label %239

236:                                              ; preds = %229
  %237 = load ptr, ptr %21, align 8, !tbaa !5
  %238 = load i64, ptr %237, align 8, !tbaa !9
  br label %239

239:                                              ; preds = %236, %235
  %240 = phi i64 [ 1, %235 ], [ %238, %236 ]
  %241 = icmp slt i64 %231, %240
  br i1 %241, label %242, label %244

242:                                              ; preds = %239
  %243 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -7, ptr %243, align 8, !tbaa !9
  br label %287

244:                                              ; preds = %239
  %245 = load ptr, ptr %29, align 8, !tbaa !5
  %246 = load i64, ptr %245, align 8, !tbaa !9
  %247 = icmp slt i64 %246, 1
  br i1 %247, label %257, label %248

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

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

257:                                              ; preds = %251, %244
  %258 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -11, ptr %258, align 8, !tbaa !9
  br label %286

259:                                              ; preds = %251, %248
  %260 = load ptr, ptr %31, align 8, !tbaa !5
  %261 = load i64, ptr %260, align 8, !tbaa !9
  %262 = icmp slt i64 %261, 1
  br i1 %262, label %272, label %263

263:                                              ; preds = %259
  %264 = load i64, ptr %71, align 8, !tbaa !9
  %265 = icmp ne i64 %264, 0
  br i1 %265, label %266, label %274

266:                                              ; preds = %263
  %267 = load ptr, ptr %31, align 8, !tbaa !5
  %268 = load i64, ptr %267, align 8, !tbaa !9
  %269 = load ptr, ptr %21, align 8, !tbaa !5
  %270 = load i64, ptr %269, align 8, !tbaa !9
  %271 = icmp slt i64 %268, %270
  br i1 %271, label %272, label %274

272:                                              ; preds = %266, %259
  %273 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -13, ptr %273, align 8, !tbaa !9
  br label %285

274:                                              ; preds = %266, %263
  %275 = load ptr, ptr %33, align 8, !tbaa !5
  %276 = load i64, ptr %275, align 8, !tbaa !9
  %277 = load i64, ptr %96, align 8, !tbaa !9
  %278 = icmp slt i64 %276, %277
  br i1 %278, label %279, label %284

279:                                              ; preds = %274
  %280 = load i64, ptr %99, align 8, !tbaa !9
  %281 = icmp ne i64 %280, 0
  br i1 %281, label %284, label %282

282:                                              ; preds = %279
  %283 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -15, ptr %283, align 8, !tbaa !9
  br label %284

284:                                              ; preds = %282, %279, %274
  br label %285

285:                                              ; preds = %284, %272
  br label %286

286:                                              ; preds = %285, %257
  br label %287

287:                                              ; preds = %286, %242
  br label %288

288:                                              ; preds = %287, %227
  br label %289

289:                                              ; preds = %288, %212
  br label %290

290:                                              ; preds = %289, %206
  br label %291

291:                                              ; preds = %290, %201
  %292 = load ptr, ptr %35, align 8, !tbaa !5
  %293 = load i64, ptr %292, align 8, !tbaa !9
  %294 = icmp eq i64 %293, 0
  br i1 %294, label %295, label %350

295:                                              ; preds = %291
  %296 = load ptr, ptr %21, align 8, !tbaa !5
  %297 = load ptr, ptr %21, align 8, !tbaa !5
  %298 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %296, ptr noundef %297, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %298, ptr %58, align 8, !tbaa !9
  %299 = load ptr, ptr %21, align 8, !tbaa !5
  %300 = load ptr, ptr %21, align 8, !tbaa !5
  %301 = load ptr, ptr %21, align 8, !tbaa !5
  %302 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %299, ptr noundef %300, ptr noundef %301, ptr noundef @c_n1)
  store i64 %302, ptr %59, align 8, !tbaa !9
  %303 = load ptr, ptr %21, align 8, !tbaa !5
  %304 = load ptr, ptr %21, align 8, !tbaa !5
  %305 = load ptr, ptr %21, align 8, !tbaa !5
  %306 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.3, ptr noundef %303, ptr noundef %304, ptr noundef %305, ptr noundef @c_n1)
  store i64 %306, ptr %60, align 8, !tbaa !9
  %307 = load i64, ptr %58, align 8, !tbaa !9
  %308 = load i64, ptr %59, align 8, !tbaa !9
  %309 = icmp sge i64 %307, %308
  br i1 %309, label %310, label %312

310:                                              ; preds = %295
  %311 = load i64, ptr %58, align 8, !tbaa !9
  br label %314

312:                                              ; preds = %295
  %313 = load i64, ptr %59, align 8, !tbaa !9
  br label %314

314:                                              ; preds = %312, %310
  %315 = phi i64 [ %311, %310 ], [ %313, %312 ]
  store i64 %315, ptr %44, align 8, !tbaa !9
  %316 = load i64, ptr %44, align 8, !tbaa !9
  %317 = load i64, ptr %60, align 8, !tbaa !9
  %318 = icmp sge i64 %316, %317
  br i1 %318, label %319, label %321

319:                                              ; preds = %314
  %320 = load i64, ptr %44, align 8, !tbaa !9
  br label %323

321:                                              ; preds = %314
  %322 = load i64, ptr %60, align 8, !tbaa !9
  br label %323

323:                                              ; preds = %321, %319
  %324 = phi i64 [ %320, %319 ], [ %322, %321 ]
  store i64 %324, ptr %55, align 8, !tbaa !9
  %325 = load ptr, ptr %21, align 8, !tbaa !5
  %326 = load i64, ptr %325, align 8, !tbaa !9
  %327 = shl i64 %326, 1
  store i64 %327, ptr %44, align 8, !tbaa !9
  %328 = load ptr, ptr %21, align 8, !tbaa !5
  %329 = load i64, ptr %328, align 8, !tbaa !9
  %330 = load i64, ptr %55, align 8, !tbaa !9
  %331 = add nsw i64 %330, 1
  %332 = mul nsw i64 %329, %331
  store i64 %332, ptr %45, align 8, !tbaa !9
  %333 = load i64, ptr %44, align 8, !tbaa !9
  %334 = load i64, ptr %45, align 8, !tbaa !9
  %335 = icmp sge i64 %333, %334
  br i1 %335, label %336, label %338

336:                                              ; preds = %323
  %337 = load i64, ptr %44, align 8, !tbaa !9
  br label %340

338:                                              ; preds = %323
  %339 = load i64, ptr %45, align 8, !tbaa !9
  br label %340

340:                                              ; preds = %338, %336
  %341 = phi i64 [ %337, %336 ], [ %339, %338 ]
  store i64 %341, ptr %72, align 8, !tbaa !9
  %342 = load i64, ptr %72, align 8, !tbaa !9
  %343 = sitofp i64 %342 to float
  %344 = load ptr, ptr %32, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.complex, ptr %344, i64 1
  %346 = getelementptr inbounds %struct.complex, ptr %345, i32 0, i32 0
  store float %343, ptr %346, align 4, !tbaa !11
  %347 = load ptr, ptr %32, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.complex, ptr %347, i64 1
  %349 = getelementptr inbounds %struct.complex, ptr %348, i32 0, i32 1
  store float 0.000000e+00, ptr %349, align 4, !tbaa !14
  br label %350

350:                                              ; preds = %340, %291
  %351 = load ptr, ptr %35, align 8, !tbaa !5
  %352 = load i64, ptr %351, align 8, !tbaa !9
  %353 = icmp ne i64 %352, 0
  br i1 %353, label %354, label %359

354:                                              ; preds = %350
  %355 = load ptr, ptr %35, align 8, !tbaa !5
  %356 = load i64, ptr %355, align 8, !tbaa !9
  %357 = sub nsw i64 0, %356
  store i64 %357, ptr %44, align 8, !tbaa !9
  %358 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %44)
  store i32 0, ptr %18, align 4
  store i32 1, ptr %100, align 4
  br label %1727

359:                                              ; preds = %350
  %360 = load i64, ptr %99, align 8, !tbaa !9
  %361 = icmp ne i64 %360, 0
  br i1 %361, label %362, label %363

362:                                              ; preds = %359
  store i32 0, ptr %18, align 4
  store i32 1, ptr %100, align 4
  br label %1727

363:                                              ; preds = %359
  br label %364

364:                                              ; preds = %363
  %365 = load ptr, ptr %21, align 8, !tbaa !5
  %366 = load i64, ptr %365, align 8, !tbaa !9
  %367 = icmp eq i64 %366, 0
  br i1 %367, label %368, label %369

368:                                              ; preds = %364
  store i32 0, ptr %18, align 4
  store i32 1, ptr %100, align 4
  br label %1727

369:                                              ; preds = %364
  %370 = call double @slamch_(ptr noundef @.str.7)
  %371 = call double @slamch_(ptr noundef @.str.8)
  %372 = fmul double %370, %371
  %373 = fptrunc double %372 to float
  store float %373, ptr %63, align 4, !tbaa !15
  %374 = call double @slamch_(ptr noundef @.str.9)
  %375 = fptrunc double %374 to float
  store float %375, ptr %88, align 4, !tbaa !15
  %376 = load float, ptr %88, align 4, !tbaa !15
  %377 = load float, ptr %88, align 4, !tbaa !15
  %378 = fadd float %377, %376
  store float %378, ptr %88, align 4, !tbaa !15
  %379 = load float, ptr %88, align 4, !tbaa !15
  %380 = fdiv float 1.000000e+00, %379
  store float %380, ptr %89, align 4, !tbaa !15
  %381 = load ptr, ptr %21, align 8, !tbaa !5
  %382 = load ptr, ptr %21, align 8, !tbaa !5
  %383 = load ptr, ptr %22, align 8, !tbaa !5
  %384 = load i64, ptr %37, align 8, !tbaa !9
  %385 = getelementptr inbounds %struct.complex, ptr %383, i64 %384
  %386 = load ptr, ptr %23, align 8, !tbaa !5
  %387 = load ptr, ptr %34, align 8, !tbaa !5
  %388 = getelementptr inbounds float, ptr %387, i64 1
  %389 = call double @clange_(ptr noundef @.str.10, ptr noundef %381, ptr noundef %382, ptr noundef %385, ptr noundef %386, ptr noundef %388)
  %390 = fptrunc double %389 to float
  store float %390, ptr %66, align 4, !tbaa !15
  %391 = load float, ptr %66, align 4, !tbaa !15
  store float %391, ptr %73, align 4, !tbaa !15
  store float 1.000000e+00, ptr %74, align 4, !tbaa !15
  %392 = load float, ptr %66, align 4, !tbaa !15
  %393 = fcmp olt float %392, 1.000000e+00
  br i1 %393, label %394, label %405

394:                                              ; preds = %369
  %395 = load float, ptr %89, align 4, !tbaa !15
  %396 = load float, ptr %66, align 4, !tbaa !15
  %397 = fmul float %395, %396
  %398 = fcmp olt float %397, 1.000000e+00
  br i1 %398, label %399, label %404

399:                                              ; preds = %394
  %400 = load float, ptr %88, align 4, !tbaa !15
  store float %400, ptr %73, align 4, !tbaa !15
  %401 = load float, ptr %89, align 4, !tbaa !15
  %402 = load float, ptr %66, align 4, !tbaa !15
  %403 = fmul float %401, %402
  store float %403, ptr %74, align 4, !tbaa !15
  br label %404

404:                                              ; preds = %399, %394
  br label %405

405:                                              ; preds = %404, %369
  %406 = load float, ptr %66, align 4, !tbaa !15
  %407 = fcmp ogt float %406, 0.000000e+00
  br i1 %407, label %408, label %424

408:                                              ; preds = %405
  %409 = load ptr, ptr %21, align 8, !tbaa !5
  %410 = load ptr, ptr %21, align 8, !tbaa !5
  %411 = load ptr, ptr %22, align 8, !tbaa !5
  %412 = load i64, ptr %37, align 8, !tbaa !9
  %413 = getelementptr inbounds %struct.complex, ptr %411, i64 %412
  %414 = load ptr, ptr %23, align 8, !tbaa !5
  %415 = call i32 @clascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %66, ptr noundef @c_b29, ptr noundef %409, ptr noundef %410, ptr noundef %413, ptr noundef %414, ptr noundef %82)
  %416 = load i64, ptr %82, align 8, !tbaa !9
  %417 = icmp ne i64 %416, 0
  br i1 %417, label %418, label %423

418:                                              ; preds = %408
  %419 = load ptr, ptr %21, align 8, !tbaa !5
  %420 = load i64, ptr %419, align 8, !tbaa !9
  %421 = add nsw i64 %420, 10
  %422 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %421, ptr %422, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %100, align 4
  br label %1727

423:                                              ; preds = %408
  br label %424

424:                                              ; preds = %423, %405
  %425 = load ptr, ptr %21, align 8, !tbaa !5
  %426 = load ptr, ptr %21, align 8, !tbaa !5
  %427 = load ptr, ptr %24, align 8, !tbaa !5
  %428 = load i64, ptr %39, align 8, !tbaa !9
  %429 = getelementptr inbounds %struct.complex, ptr %427, i64 %428
  %430 = load ptr, ptr %25, align 8, !tbaa !5
  %431 = load ptr, ptr %34, align 8, !tbaa !5
  %432 = getelementptr inbounds float, ptr %431, i64 1
  %433 = call double @clange_(ptr noundef @.str.10, ptr noundef %425, ptr noundef %426, ptr noundef %429, ptr noundef %430, ptr noundef %432)
  %434 = fptrunc double %433 to float
  store float %434, ptr %67, align 4, !tbaa !15
  %435 = load float, ptr %67, align 4, !tbaa !15
  store float %435, ptr %75, align 4, !tbaa !15
  store float 1.000000e+00, ptr %76, align 4, !tbaa !15
  %436 = load float, ptr %67, align 4, !tbaa !15
  %437 = fcmp olt float %436, 1.000000e+00
  br i1 %437, label %438, label %449

438:                                              ; preds = %424
  %439 = load float, ptr %89, align 4, !tbaa !15
  %440 = load float, ptr %67, align 4, !tbaa !15
  %441 = fmul float %439, %440
  %442 = fcmp olt float %441, 1.000000e+00
  br i1 %442, label %443, label %448

443:                                              ; preds = %438
  %444 = load float, ptr %88, align 4, !tbaa !15
  store float %444, ptr %75, align 4, !tbaa !15
  %445 = load float, ptr %89, align 4, !tbaa !15
  %446 = load float, ptr %67, align 4, !tbaa !15
  %447 = fmul float %445, %446
  store float %447, ptr %76, align 4, !tbaa !15
  br label %448

448:                                              ; preds = %443, %438
  br label %449

449:                                              ; preds = %448, %424
  %450 = load float, ptr %67, align 4, !tbaa !15
  %451 = fcmp ogt float %450, 0.000000e+00
  br i1 %451, label %452, label %468

452:                                              ; preds = %449
  %453 = load ptr, ptr %21, align 8, !tbaa !5
  %454 = load ptr, ptr %21, align 8, !tbaa !5
  %455 = load ptr, ptr %24, align 8, !tbaa !5
  %456 = load i64, ptr %39, align 8, !tbaa !9
  %457 = getelementptr inbounds %struct.complex, ptr %455, i64 %456
  %458 = load ptr, ptr %25, align 8, !tbaa !5
  %459 = call i32 @clascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %67, ptr noundef @c_b29, ptr noundef %453, ptr noundef %454, ptr noundef %457, ptr noundef %458, ptr noundef %82)
  %460 = load i64, ptr %82, align 8, !tbaa !9
  %461 = icmp ne i64 %460, 0
  br i1 %461, label %462, label %467

462:                                              ; preds = %452
  %463 = load ptr, ptr %21, align 8, !tbaa !5
  %464 = load i64, ptr %463, align 8, !tbaa !9
  %465 = add nsw i64 %464, 10
  %466 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %465, ptr %466, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %100, align 4
  br label %1727

467:                                              ; preds = %452
  br label %468

468:                                              ; preds = %467, %449
  store i64 1, ptr %81, align 8, !tbaa !9
  %469 = load ptr, ptr %21, align 8, !tbaa !5
  %470 = load i64, ptr %469, align 8, !tbaa !9
  %471 = add nsw i64 %470, 1
  store i64 %471, ptr %93, align 8, !tbaa !9
  %472 = load i64, ptr %93, align 8, !tbaa !9
  %473 = load ptr, ptr %21, align 8, !tbaa !5
  %474 = load i64, ptr %473, align 8, !tbaa !9
  %475 = add nsw i64 %472, %474
  store i64 %475, ptr %97, align 8, !tbaa !9
  %476 = load ptr, ptr %21, align 8, !tbaa !5
  %477 = load ptr, ptr %22, align 8, !tbaa !5
  %478 = load i64, ptr %37, align 8, !tbaa !9
  %479 = getelementptr inbounds %struct.complex, ptr %477, i64 %478
  %480 = load ptr, ptr %23, align 8, !tbaa !5
  %481 = load ptr, ptr %24, align 8, !tbaa !5
  %482 = load i64, ptr %39, align 8, !tbaa !9
  %483 = getelementptr inbounds %struct.complex, ptr %481, i64 %482
  %484 = load ptr, ptr %25, align 8, !tbaa !5
  %485 = load ptr, ptr %34, align 8, !tbaa !5
  %486 = load i64, ptr %81, align 8, !tbaa !9
  %487 = getelementptr inbounds float, ptr %485, i64 %486
  %488 = load ptr, ptr %34, align 8, !tbaa !5
  %489 = load i64, ptr %93, align 8, !tbaa !9
  %490 = getelementptr inbounds float, ptr %488, i64 %489
  %491 = load ptr, ptr %34, align 8, !tbaa !5
  %492 = load i64, ptr %97, align 8, !tbaa !9
  %493 = getelementptr inbounds float, ptr %491, i64 %492
  %494 = call i32 @cggbal_(ptr noundef @.str.12, ptr noundef %476, ptr noundef %479, ptr noundef %480, ptr noundef %483, ptr noundef %484, ptr noundef %62, ptr noundef %61, ptr noundef %487, ptr noundef %490, ptr noundef %493, ptr noundef %82)
  %495 = load i64, ptr %82, align 8, !tbaa !9
  %496 = icmp ne i64 %495, 0
  br i1 %496, label %497, label %502

497:                                              ; preds = %468
  %498 = load ptr, ptr %21, align 8, !tbaa !5
  %499 = load i64, ptr %498, align 8, !tbaa !9
  %500 = add nsw i64 %499, 1
  %501 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %500, ptr %501, align 8, !tbaa !9
  br label %1718

502:                                              ; preds = %468
  %503 = load i64, ptr %61, align 8, !tbaa !9
  %504 = add nsw i64 %503, 1
  %505 = load i64, ptr %62, align 8, !tbaa !9
  %506 = sub nsw i64 %504, %505
  store i64 %506, ptr %85, align 8, !tbaa !9
  %507 = load i64, ptr %64, align 8, !tbaa !9
  %508 = icmp ne i64 %507, 0
  br i1 %508, label %509, label %515

509:                                              ; preds = %502
  %510 = load ptr, ptr %21, align 8, !tbaa !5
  %511 = load i64, ptr %510, align 8, !tbaa !9
  %512 = add nsw i64 %511, 1
  %513 = load i64, ptr %62, align 8, !tbaa !9
  %514 = sub nsw i64 %512, %513
  store i64 %514, ptr %83, align 8, !tbaa !9
  br label %517

515:                                              ; preds = %502
  %516 = load i64, ptr %85, align 8, !tbaa !9
  store i64 %516, ptr %83, align 8, !tbaa !9
  br label %517

517:                                              ; preds = %515, %509
  store i64 1, ptr %68, align 8, !tbaa !9
  %518 = load i64, ptr %68, align 8, !tbaa !9
  %519 = load i64, ptr %85, align 8, !tbaa !9
  %520 = add nsw i64 %518, %519
  store i64 %520, ptr %84, align 8, !tbaa !9
  %521 = load ptr, ptr %33, align 8, !tbaa !5
  %522 = load i64, ptr %521, align 8, !tbaa !9
  %523 = add nsw i64 %522, 1
  %524 = load i64, ptr %84, align 8, !tbaa !9
  %525 = sub nsw i64 %523, %524
  store i64 %525, ptr %44, align 8, !tbaa !9
  %526 = load ptr, ptr %24, align 8, !tbaa !5
  %527 = load i64, ptr %62, align 8, !tbaa !9
  %528 = load i64, ptr %62, align 8, !tbaa !9
  %529 = load i64, ptr %38, align 8, !tbaa !9
  %530 = mul nsw i64 %528, %529
  %531 = add nsw i64 %527, %530
  %532 = getelementptr inbounds %struct.complex, ptr %526, i64 %531
  %533 = load ptr, ptr %25, align 8, !tbaa !5
  %534 = load ptr, ptr %32, align 8, !tbaa !5
  %535 = load i64, ptr %68, align 8, !tbaa !9
  %536 = getelementptr inbounds %struct.complex, ptr %534, i64 %535
  %537 = load ptr, ptr %32, align 8, !tbaa !5
  %538 = load i64, ptr %84, align 8, !tbaa !9
  %539 = getelementptr inbounds %struct.complex, ptr %537, i64 %538
  %540 = call i32 @cgeqrf_(ptr noundef %85, ptr noundef %83, ptr noundef %532, ptr noundef %533, ptr noundef %536, ptr noundef %539, ptr noundef %44, ptr noundef %82)
  %541 = load i64, ptr %82, align 8, !tbaa !9
  %542 = icmp sge i64 %541, 0
  br i1 %542, label %543, label %564

543:                                              ; preds = %517
  %544 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %544, ptr %46, align 8, !tbaa !9
  %545 = load i64, ptr %98, align 8, !tbaa !9
  store i64 %545, ptr %44, align 8, !tbaa !9
  %546 = load ptr, ptr %32, align 8, !tbaa !5
  %547 = load i64, ptr %46, align 8, !tbaa !9
  %548 = getelementptr inbounds %struct.complex, ptr %546, i64 %547
  %549 = getelementptr inbounds %struct.complex, ptr %548, i32 0, i32 0
  %550 = load float, ptr %549, align 4, !tbaa !11
  %551 = fptosi float %550 to i64
  %552 = load i64, ptr %84, align 8, !tbaa !9
  %553 = add nsw i64 %551, %552
  %554 = sub nsw i64 %553, 1
  store i64 %554, ptr %45, align 8, !tbaa !9
  %555 = load i64, ptr %44, align 8, !tbaa !9
  %556 = load i64, ptr %45, align 8, !tbaa !9
  %557 = icmp sge i64 %555, %556
  br i1 %557, label %558, label %560

558:                                              ; preds = %543
  %559 = load i64, ptr %44, align 8, !tbaa !9
  br label %562

560:                                              ; preds = %543
  %561 = load i64, ptr %45, align 8, !tbaa !9
  br label %562

562:                                              ; preds = %560, %558
  %563 = phi i64 [ %559, %558 ], [ %561, %560 ]
  store i64 %563, ptr %98, align 8, !tbaa !9
  br label %564

564:                                              ; preds = %562, %517
  %565 = load i64, ptr %82, align 8, !tbaa !9
  %566 = icmp ne i64 %565, 0
  br i1 %566, label %567, label %572

567:                                              ; preds = %564
  %568 = load ptr, ptr %21, align 8, !tbaa !5
  %569 = load i64, ptr %568, align 8, !tbaa !9
  %570 = add nsw i64 %569, 2
  %571 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %570, ptr %571, align 8, !tbaa !9
  br label %1718

572:                                              ; preds = %564
  %573 = load ptr, ptr %33, align 8, !tbaa !5
  %574 = load i64, ptr %573, align 8, !tbaa !9
  %575 = add nsw i64 %574, 1
  %576 = load i64, ptr %84, align 8, !tbaa !9
  %577 = sub nsw i64 %575, %576
  store i64 %577, ptr %44, align 8, !tbaa !9
  %578 = load ptr, ptr %24, align 8, !tbaa !5
  %579 = load i64, ptr %62, align 8, !tbaa !9
  %580 = load i64, ptr %62, align 8, !tbaa !9
  %581 = load i64, ptr %38, align 8, !tbaa !9
  %582 = mul nsw i64 %580, %581
  %583 = add nsw i64 %579, %582
  %584 = getelementptr inbounds %struct.complex, ptr %578, i64 %583
  %585 = load ptr, ptr %25, align 8, !tbaa !5
  %586 = load ptr, ptr %32, align 8, !tbaa !5
  %587 = load i64, ptr %68, align 8, !tbaa !9
  %588 = getelementptr inbounds %struct.complex, ptr %586, i64 %587
  %589 = load ptr, ptr %22, align 8, !tbaa !5
  %590 = load i64, ptr %62, align 8, !tbaa !9
  %591 = load i64, ptr %62, align 8, !tbaa !9
  %592 = load i64, ptr %36, align 8, !tbaa !9
  %593 = mul nsw i64 %591, %592
  %594 = add nsw i64 %590, %593
  %595 = getelementptr inbounds %struct.complex, ptr %589, i64 %594
  %596 = load ptr, ptr %23, align 8, !tbaa !5
  %597 = load ptr, ptr %32, align 8, !tbaa !5
  %598 = load i64, ptr %84, align 8, !tbaa !9
  %599 = getelementptr inbounds %struct.complex, ptr %597, i64 %598
  %600 = call i32 @cunmqr_(ptr noundef @.str.13, ptr noundef @.str.14, ptr noundef %85, ptr noundef %83, ptr noundef %85, ptr noundef %584, ptr noundef %585, ptr noundef %588, ptr noundef %595, ptr noundef %596, ptr noundef %599, ptr noundef %44, ptr noundef %82)
  %601 = load i64, ptr %82, align 8, !tbaa !9
  %602 = icmp sge i64 %601, 0
  br i1 %602, label %603, label %624

603:                                              ; preds = %572
  %604 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %604, ptr %46, align 8, !tbaa !9
  %605 = load i64, ptr %98, align 8, !tbaa !9
  store i64 %605, ptr %44, align 8, !tbaa !9
  %606 = load ptr, ptr %32, align 8, !tbaa !5
  %607 = load i64, ptr %46, align 8, !tbaa !9
  %608 = getelementptr inbounds %struct.complex, ptr %606, i64 %607
  %609 = getelementptr inbounds %struct.complex, ptr %608, i32 0, i32 0
  %610 = load float, ptr %609, align 4, !tbaa !11
  %611 = fptosi float %610 to i64
  %612 = load i64, ptr %84, align 8, !tbaa !9
  %613 = add nsw i64 %611, %612
  %614 = sub nsw i64 %613, 1
  store i64 %614, ptr %45, align 8, !tbaa !9
  %615 = load i64, ptr %44, align 8, !tbaa !9
  %616 = load i64, ptr %45, align 8, !tbaa !9
  %617 = icmp sge i64 %615, %616
  br i1 %617, label %618, label %620

618:                                              ; preds = %603
  %619 = load i64, ptr %44, align 8, !tbaa !9
  br label %622

620:                                              ; preds = %603
  %621 = load i64, ptr %45, align 8, !tbaa !9
  br label %622

622:                                              ; preds = %620, %618
  %623 = phi i64 [ %619, %618 ], [ %621, %620 ]
  store i64 %623, ptr %98, align 8, !tbaa !9
  br label %624

624:                                              ; preds = %622, %572
  %625 = load i64, ptr %82, align 8, !tbaa !9
  %626 = icmp ne i64 %625, 0
  br i1 %626, label %627, label %632

627:                                              ; preds = %624
  %628 = load ptr, ptr %21, align 8, !tbaa !5
  %629 = load i64, ptr %628, align 8, !tbaa !9
  %630 = add nsw i64 %629, 3
  %631 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %630, ptr %631, align 8, !tbaa !9
  br label %1718

632:                                              ; preds = %624
  %633 = load i64, ptr %70, align 8, !tbaa !9
  %634 = icmp ne i64 %633, 0
  br i1 %634, label %635, label %718

635:                                              ; preds = %632
  %636 = load ptr, ptr %21, align 8, !tbaa !5
  %637 = load ptr, ptr %21, align 8, !tbaa !5
  %638 = load ptr, ptr %28, align 8, !tbaa !5
  %639 = load i64, ptr %41, align 8, !tbaa !9
  %640 = getelementptr inbounds %struct.complex, ptr %638, i64 %639
  %641 = load ptr, ptr %29, align 8, !tbaa !5
  %642 = call i32 @claset_(ptr noundef @.str.15, ptr noundef %636, ptr noundef %637, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %640, ptr noundef %641)
  %643 = load i64, ptr %85, align 8, !tbaa !9
  %644 = sub nsw i64 %643, 1
  store i64 %644, ptr %44, align 8, !tbaa !9
  %645 = load i64, ptr %85, align 8, !tbaa !9
  %646 = sub nsw i64 %645, 1
  store i64 %646, ptr %45, align 8, !tbaa !9
  %647 = load ptr, ptr %24, align 8, !tbaa !5
  %648 = load i64, ptr %62, align 8, !tbaa !9
  %649 = add nsw i64 %648, 1
  %650 = load i64, ptr %62, align 8, !tbaa !9
  %651 = load i64, ptr %38, align 8, !tbaa !9
  %652 = mul nsw i64 %650, %651
  %653 = add nsw i64 %649, %652
  %654 = getelementptr inbounds %struct.complex, ptr %647, i64 %653
  %655 = load ptr, ptr %25, align 8, !tbaa !5
  %656 = load ptr, ptr %28, align 8, !tbaa !5
  %657 = load i64, ptr %62, align 8, !tbaa !9
  %658 = add nsw i64 %657, 1
  %659 = load i64, ptr %62, align 8, !tbaa !9
  %660 = load i64, ptr %40, align 8, !tbaa !9
  %661 = mul nsw i64 %659, %660
  %662 = add nsw i64 %658, %661
  %663 = getelementptr inbounds %struct.complex, ptr %656, i64 %662
  %664 = load ptr, ptr %29, align 8, !tbaa !5
  %665 = call i32 @clacpy_(ptr noundef @.str.13, ptr noundef %44, ptr noundef %45, ptr noundef %654, ptr noundef %655, ptr noundef %663, ptr noundef %664)
  %666 = load ptr, ptr %33, align 8, !tbaa !5
  %667 = load i64, ptr %666, align 8, !tbaa !9
  %668 = add nsw i64 %667, 1
  %669 = load i64, ptr %84, align 8, !tbaa !9
  %670 = sub nsw i64 %668, %669
  store i64 %670, ptr %44, align 8, !tbaa !9
  %671 = load ptr, ptr %28, align 8, !tbaa !5
  %672 = load i64, ptr %62, align 8, !tbaa !9
  %673 = load i64, ptr %62, align 8, !tbaa !9
  %674 = load i64, ptr %40, align 8, !tbaa !9
  %675 = mul nsw i64 %673, %674
  %676 = add nsw i64 %672, %675
  %677 = getelementptr inbounds %struct.complex, ptr %671, i64 %676
  %678 = load ptr, ptr %29, align 8, !tbaa !5
  %679 = load ptr, ptr %32, align 8, !tbaa !5
  %680 = load i64, ptr %68, align 8, !tbaa !9
  %681 = getelementptr inbounds %struct.complex, ptr %679, i64 %680
  %682 = load ptr, ptr %32, align 8, !tbaa !5
  %683 = load i64, ptr %84, align 8, !tbaa !9
  %684 = getelementptr inbounds %struct.complex, ptr %682, i64 %683
  %685 = call i32 @cungqr_(ptr noundef %85, ptr noundef %85, ptr noundef %85, ptr noundef %677, ptr noundef %678, ptr noundef %681, ptr noundef %684, ptr noundef %44, ptr noundef %82)
  %686 = load i64, ptr %82, align 8, !tbaa !9
  %687 = icmp sge i64 %686, 0
  br i1 %687, label %688, label %709

688:                                              ; preds = %635
  %689 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %689, ptr %46, align 8, !tbaa !9
  %690 = load i64, ptr %98, align 8, !tbaa !9
  store i64 %690, ptr %44, align 8, !tbaa !9
  %691 = load ptr, ptr %32, align 8, !tbaa !5
  %692 = load i64, ptr %46, align 8, !tbaa !9
  %693 = getelementptr inbounds %struct.complex, ptr %691, i64 %692
  %694 = getelementptr inbounds %struct.complex, ptr %693, i32 0, i32 0
  %695 = load float, ptr %694, align 4, !tbaa !11
  %696 = fptosi float %695 to i64
  %697 = load i64, ptr %84, align 8, !tbaa !9
  %698 = add nsw i64 %696, %697
  %699 = sub nsw i64 %698, 1
  store i64 %699, ptr %45, align 8, !tbaa !9
  %700 = load i64, ptr %44, align 8, !tbaa !9
  %701 = load i64, ptr %45, align 8, !tbaa !9
  %702 = icmp sge i64 %700, %701
  br i1 %702, label %703, label %705

703:                                              ; preds = %688
  %704 = load i64, ptr %44, align 8, !tbaa !9
  br label %707

705:                                              ; preds = %688
  %706 = load i64, ptr %45, align 8, !tbaa !9
  br label %707

707:                                              ; preds = %705, %703
  %708 = phi i64 [ %704, %703 ], [ %706, %705 ]
  store i64 %708, ptr %98, align 8, !tbaa !9
  br label %709

709:                                              ; preds = %707, %635
  %710 = load i64, ptr %82, align 8, !tbaa !9
  %711 = icmp ne i64 %710, 0
  br i1 %711, label %712, label %717

712:                                              ; preds = %709
  %713 = load ptr, ptr %21, align 8, !tbaa !5
  %714 = load i64, ptr %713, align 8, !tbaa !9
  %715 = add nsw i64 %714, 4
  %716 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %715, ptr %716, align 8, !tbaa !9
  br label %1718

717:                                              ; preds = %709
  br label %718

718:                                              ; preds = %717, %632
  %719 = load i64, ptr %71, align 8, !tbaa !9
  %720 = icmp ne i64 %719, 0
  br i1 %720, label %721, label %729

721:                                              ; preds = %718
  %722 = load ptr, ptr %21, align 8, !tbaa !5
  %723 = load ptr, ptr %21, align 8, !tbaa !5
  %724 = load ptr, ptr %30, align 8, !tbaa !5
  %725 = load i64, ptr %43, align 8, !tbaa !9
  %726 = getelementptr inbounds %struct.complex, ptr %724, i64 %725
  %727 = load ptr, ptr %31, align 8, !tbaa !5
  %728 = call i32 @claset_(ptr noundef @.str.15, ptr noundef %722, ptr noundef %723, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %726, ptr noundef %727)
  br label %729

729:                                              ; preds = %721, %718
  %730 = load i64, ptr %64, align 8, !tbaa !9
  %731 = icmp ne i64 %730, 0
  br i1 %731, label %732, label %753

732:                                              ; preds = %729
  %733 = load ptr, ptr %19, align 8, !tbaa !5
  %734 = load ptr, ptr %20, align 8, !tbaa !5
  %735 = load ptr, ptr %21, align 8, !tbaa !5
  %736 = load ptr, ptr %22, align 8, !tbaa !5
  %737 = load i64, ptr %37, align 8, !tbaa !9
  %738 = getelementptr inbounds %struct.complex, ptr %736, i64 %737
  %739 = load ptr, ptr %23, align 8, !tbaa !5
  %740 = load ptr, ptr %24, align 8, !tbaa !5
  %741 = load i64, ptr %39, align 8, !tbaa !9
  %742 = getelementptr inbounds %struct.complex, ptr %740, i64 %741
  %743 = load ptr, ptr %25, align 8, !tbaa !5
  %744 = load ptr, ptr %28, align 8, !tbaa !5
  %745 = load i64, ptr %41, align 8, !tbaa !9
  %746 = getelementptr inbounds %struct.complex, ptr %744, i64 %745
  %747 = load ptr, ptr %29, align 8, !tbaa !5
  %748 = load ptr, ptr %30, align 8, !tbaa !5
  %749 = load i64, ptr %43, align 8, !tbaa !9
  %750 = getelementptr inbounds %struct.complex, ptr %748, i64 %749
  %751 = load ptr, ptr %31, align 8, !tbaa !5
  %752 = call i32 @cgghrd_(ptr noundef %733, ptr noundef %734, ptr noundef %735, ptr noundef %62, ptr noundef %61, ptr noundef %738, ptr noundef %739, ptr noundef %742, ptr noundef %743, ptr noundef %746, ptr noundef %747, ptr noundef %750, ptr noundef %751, ptr noundef %82)
  br label %779

753:                                              ; preds = %729
  %754 = load ptr, ptr %22, align 8, !tbaa !5
  %755 = load i64, ptr %62, align 8, !tbaa !9
  %756 = load i64, ptr %62, align 8, !tbaa !9
  %757 = load i64, ptr %36, align 8, !tbaa !9
  %758 = mul nsw i64 %756, %757
  %759 = add nsw i64 %755, %758
  %760 = getelementptr inbounds %struct.complex, ptr %754, i64 %759
  %761 = load ptr, ptr %23, align 8, !tbaa !5
  %762 = load ptr, ptr %24, align 8, !tbaa !5
  %763 = load i64, ptr %62, align 8, !tbaa !9
  %764 = load i64, ptr %62, align 8, !tbaa !9
  %765 = load i64, ptr %38, align 8, !tbaa !9
  %766 = mul nsw i64 %764, %765
  %767 = add nsw i64 %763, %766
  %768 = getelementptr inbounds %struct.complex, ptr %762, i64 %767
  %769 = load ptr, ptr %25, align 8, !tbaa !5
  %770 = load ptr, ptr %28, align 8, !tbaa !5
  %771 = load i64, ptr %41, align 8, !tbaa !9
  %772 = getelementptr inbounds %struct.complex, ptr %770, i64 %771
  %773 = load ptr, ptr %29, align 8, !tbaa !5
  %774 = load ptr, ptr %30, align 8, !tbaa !5
  %775 = load i64, ptr %43, align 8, !tbaa !9
  %776 = getelementptr inbounds %struct.complex, ptr %774, i64 %775
  %777 = load ptr, ptr %31, align 8, !tbaa !5
  %778 = call i32 @cgghrd_(ptr noundef @.str, ptr noundef @.str, ptr noundef %85, ptr noundef @c__1, ptr noundef %85, ptr noundef %760, ptr noundef %761, ptr noundef %768, ptr noundef %769, ptr noundef %772, ptr noundef %773, ptr noundef %776, ptr noundef %777, ptr noundef %82)
  br label %779

779:                                              ; preds = %753, %732
  %780 = load i64, ptr %82, align 8, !tbaa !9
  %781 = icmp ne i64 %780, 0
  br i1 %781, label %782, label %787

782:                                              ; preds = %779
  %783 = load ptr, ptr %21, align 8, !tbaa !5
  %784 = load i64, ptr %783, align 8, !tbaa !9
  %785 = add nsw i64 %784, 5
  %786 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %785, ptr %786, align 8, !tbaa !9
  br label %1718

787:                                              ; preds = %779
  %788 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %788, ptr %84, align 8, !tbaa !9
  %789 = load i64, ptr %64, align 8, !tbaa !9
  %790 = icmp ne i64 %789, 0
  br i1 %790, label %791, label %793

791:                                              ; preds = %787
  %792 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  store i8 83, ptr %792, align 1, !tbaa !16
  br label %795

793:                                              ; preds = %787
  %794 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  store i8 69, ptr %794, align 1, !tbaa !16
  br label %795

795:                                              ; preds = %793, %791
  %796 = load ptr, ptr %33, align 8, !tbaa !5
  %797 = load i64, ptr %796, align 8, !tbaa !9
  %798 = add nsw i64 %797, 1
  %799 = load i64, ptr %84, align 8, !tbaa !9
  %800 = sub nsw i64 %798, %799
  store i64 %800, ptr %44, align 8, !tbaa !9
  %801 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %802 = load ptr, ptr %19, align 8, !tbaa !5
  %803 = load ptr, ptr %20, align 8, !tbaa !5
  %804 = load ptr, ptr %21, align 8, !tbaa !5
  %805 = load ptr, ptr %22, align 8, !tbaa !5
  %806 = load i64, ptr %37, align 8, !tbaa !9
  %807 = getelementptr inbounds %struct.complex, ptr %805, i64 %806
  %808 = load ptr, ptr %23, align 8, !tbaa !5
  %809 = load ptr, ptr %24, align 8, !tbaa !5
  %810 = load i64, ptr %39, align 8, !tbaa !9
  %811 = getelementptr inbounds %struct.complex, ptr %809, i64 %810
  %812 = load ptr, ptr %25, align 8, !tbaa !5
  %813 = load ptr, ptr %26, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.complex, ptr %813, i64 1
  %815 = load ptr, ptr %27, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.complex, ptr %815, i64 1
  %817 = load ptr, ptr %28, align 8, !tbaa !5
  %818 = load i64, ptr %41, align 8, !tbaa !9
  %819 = getelementptr inbounds %struct.complex, ptr %817, i64 %818
  %820 = load ptr, ptr %29, align 8, !tbaa !5
  %821 = load ptr, ptr %30, align 8, !tbaa !5
  %822 = load i64, ptr %43, align 8, !tbaa !9
  %823 = getelementptr inbounds %struct.complex, ptr %821, i64 %822
  %824 = load ptr, ptr %31, align 8, !tbaa !5
  %825 = load ptr, ptr %32, align 8, !tbaa !5
  %826 = load i64, ptr %84, align 8, !tbaa !9
  %827 = getelementptr inbounds %struct.complex, ptr %825, i64 %826
  %828 = load ptr, ptr %34, align 8, !tbaa !5
  %829 = load i64, ptr %97, align 8, !tbaa !9
  %830 = getelementptr inbounds float, ptr %828, i64 %829
  %831 = call i32 @chgeqz_(ptr noundef %801, ptr noundef %802, ptr noundef %803, ptr noundef %804, ptr noundef %62, ptr noundef %61, ptr noundef %807, ptr noundef %808, ptr noundef %811, ptr noundef %812, ptr noundef %814, ptr noundef %816, ptr noundef %819, ptr noundef %820, ptr noundef %823, ptr noundef %824, ptr noundef %827, ptr noundef %44, ptr noundef %830, ptr noundef %82)
  %832 = load i64, ptr %82, align 8, !tbaa !9
  %833 = icmp sge i64 %832, 0
  br i1 %833, label %834, label %855

834:                                              ; preds = %795
  %835 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %835, ptr %46, align 8, !tbaa !9
  %836 = load i64, ptr %98, align 8, !tbaa !9
  store i64 %836, ptr %44, align 8, !tbaa !9
  %837 = load ptr, ptr %32, align 8, !tbaa !5
  %838 = load i64, ptr %46, align 8, !tbaa !9
  %839 = getelementptr inbounds %struct.complex, ptr %837, i64 %838
  %840 = getelementptr inbounds %struct.complex, ptr %839, i32 0, i32 0
  %841 = load float, ptr %840, align 4, !tbaa !11
  %842 = fptosi float %841 to i64
  %843 = load i64, ptr %84, align 8, !tbaa !9
  %844 = add nsw i64 %842, %843
  %845 = sub nsw i64 %844, 1
  store i64 %845, ptr %45, align 8, !tbaa !9
  %846 = load i64, ptr %44, align 8, !tbaa !9
  %847 = load i64, ptr %45, align 8, !tbaa !9
  %848 = icmp sge i64 %846, %847
  br i1 %848, label %849, label %851

849:                                              ; preds = %834
  %850 = load i64, ptr %44, align 8, !tbaa !9
  br label %853

851:                                              ; preds = %834
  %852 = load i64, ptr %45, align 8, !tbaa !9
  br label %853

853:                                              ; preds = %851, %849
  %854 = phi i64 [ %850, %849 ], [ %852, %851 ]
  store i64 %854, ptr %98, align 8, !tbaa !9
  br label %855

855:                                              ; preds = %853, %795
  %856 = load i64, ptr %82, align 8, !tbaa !9
  %857 = icmp ne i64 %856, 0
  br i1 %857, label %858, label %893

858:                                              ; preds = %855
  %859 = load i64, ptr %82, align 8, !tbaa !9
  %860 = icmp sgt i64 %859, 0
  br i1 %860, label %861, label %869

861:                                              ; preds = %858
  %862 = load i64, ptr %82, align 8, !tbaa !9
  %863 = load ptr, ptr %21, align 8, !tbaa !5
  %864 = load i64, ptr %863, align 8, !tbaa !9
  %865 = icmp sle i64 %862, %864
  br i1 %865, label %866, label %869

866:                                              ; preds = %861
  %867 = load i64, ptr %82, align 8, !tbaa !9
  %868 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %867, ptr %868, align 8, !tbaa !9
  br label %892

869:                                              ; preds = %861, %858
  %870 = load i64, ptr %82, align 8, !tbaa !9
  %871 = load ptr, ptr %21, align 8, !tbaa !5
  %872 = load i64, ptr %871, align 8, !tbaa !9
  %873 = icmp sgt i64 %870, %872
  br i1 %873, label %874, label %886

874:                                              ; preds = %869
  %875 = load i64, ptr %82, align 8, !tbaa !9
  %876 = load ptr, ptr %21, align 8, !tbaa !5
  %877 = load i64, ptr %876, align 8, !tbaa !9
  %878 = shl i64 %877, 1
  %879 = icmp sle i64 %875, %878
  br i1 %879, label %880, label %886

880:                                              ; preds = %874
  %881 = load i64, ptr %82, align 8, !tbaa !9
  %882 = load ptr, ptr %21, align 8, !tbaa !5
  %883 = load i64, ptr %882, align 8, !tbaa !9
  %884 = sub nsw i64 %881, %883
  %885 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %884, ptr %885, align 8, !tbaa !9
  br label %891

886:                                              ; preds = %874, %869
  %887 = load ptr, ptr %21, align 8, !tbaa !5
  %888 = load i64, ptr %887, align 8, !tbaa !9
  %889 = add nsw i64 %888, 6
  %890 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %889, ptr %890, align 8, !tbaa !9
  br label %891

891:                                              ; preds = %886, %880
  br label %892

892:                                              ; preds = %891, %866
  br label %1718

893:                                              ; preds = %855
  %894 = load i64, ptr %64, align 8, !tbaa !9
  %895 = icmp ne i64 %894, 0
  br i1 %895, label %896, label %1259

896:                                              ; preds = %893
  %897 = load i64, ptr %70, align 8, !tbaa !9
  %898 = icmp ne i64 %897, 0
  br i1 %898, label %899, label %907

899:                                              ; preds = %896
  %900 = load i64, ptr %71, align 8, !tbaa !9
  %901 = icmp ne i64 %900, 0
  br i1 %901, label %902, label %904

902:                                              ; preds = %899
  %903 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  store i8 66, ptr %903, align 1, !tbaa !16
  br label %906

904:                                              ; preds = %899
  %905 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  store i8 76, ptr %905, align 1, !tbaa !16
  br label %906

906:                                              ; preds = %904, %902
  br label %909

907:                                              ; preds = %896
  %908 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  store i8 82, ptr %908, align 1, !tbaa !16
  br label %909

909:                                              ; preds = %907, %906
  %910 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %911 = getelementptr inbounds [1 x i64], ptr %91, i64 0, i64 0
  %912 = load ptr, ptr %21, align 8, !tbaa !5
  %913 = load ptr, ptr %22, align 8, !tbaa !5
  %914 = load i64, ptr %37, align 8, !tbaa !9
  %915 = getelementptr inbounds %struct.complex, ptr %913, i64 %914
  %916 = load ptr, ptr %23, align 8, !tbaa !5
  %917 = load ptr, ptr %24, align 8, !tbaa !5
  %918 = load i64, ptr %39, align 8, !tbaa !9
  %919 = getelementptr inbounds %struct.complex, ptr %917, i64 %918
  %920 = load ptr, ptr %25, align 8, !tbaa !5
  %921 = load ptr, ptr %28, align 8, !tbaa !5
  %922 = load i64, ptr %41, align 8, !tbaa !9
  %923 = getelementptr inbounds %struct.complex, ptr %921, i64 %922
  %924 = load ptr, ptr %29, align 8, !tbaa !5
  %925 = load ptr, ptr %30, align 8, !tbaa !5
  %926 = load i64, ptr %43, align 8, !tbaa !9
  %927 = getelementptr inbounds %struct.complex, ptr %925, i64 %926
  %928 = load ptr, ptr %31, align 8, !tbaa !5
  %929 = load ptr, ptr %21, align 8, !tbaa !5
  %930 = load ptr, ptr %32, align 8, !tbaa !5
  %931 = load i64, ptr %84, align 8, !tbaa !9
  %932 = getelementptr inbounds %struct.complex, ptr %930, i64 %931
  %933 = load ptr, ptr %34, align 8, !tbaa !5
  %934 = load i64, ptr %97, align 8, !tbaa !9
  %935 = getelementptr inbounds float, ptr %933, i64 %934
  %936 = call i32 @ctgevc_(ptr noundef %910, ptr noundef @.str.8, ptr noundef %911, ptr noundef %912, ptr noundef %915, ptr noundef %916, ptr noundef %919, ptr noundef %920, ptr noundef %923, ptr noundef %924, ptr noundef %927, ptr noundef %928, ptr noundef %929, ptr noundef %56, ptr noundef %932, ptr noundef %935, ptr noundef %82)
  %937 = load i64, ptr %82, align 8, !tbaa !9
  %938 = icmp ne i64 %937, 0
  br i1 %938, label %939, label %944

939:                                              ; preds = %909
  %940 = load ptr, ptr %21, align 8, !tbaa !5
  %941 = load i64, ptr %940, align 8, !tbaa !9
  %942 = add nsw i64 %941, 7
  %943 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %942, ptr %943, align 8, !tbaa !9
  br label %1718

944:                                              ; preds = %909
  %945 = load i64, ptr %70, align 8, !tbaa !9
  %946 = icmp ne i64 %945, 0
  br i1 %946, label %947, label %1101

947:                                              ; preds = %944
  %948 = load ptr, ptr %21, align 8, !tbaa !5
  %949 = load ptr, ptr %34, align 8, !tbaa !5
  %950 = load i64, ptr %81, align 8, !tbaa !9
  %951 = getelementptr inbounds float, ptr %949, i64 %950
  %952 = load ptr, ptr %34, align 8, !tbaa !5
  %953 = load i64, ptr %93, align 8, !tbaa !9
  %954 = getelementptr inbounds float, ptr %952, i64 %953
  %955 = load ptr, ptr %21, align 8, !tbaa !5
  %956 = load ptr, ptr %28, align 8, !tbaa !5
  %957 = load i64, ptr %41, align 8, !tbaa !9
  %958 = getelementptr inbounds %struct.complex, ptr %956, i64 %957
  %959 = load ptr, ptr %29, align 8, !tbaa !5
  %960 = call i32 @cggbak_(ptr noundef @.str.12, ptr noundef @.str.13, ptr noundef %948, ptr noundef %62, ptr noundef %61, ptr noundef %951, ptr noundef %954, ptr noundef %955, ptr noundef %958, ptr noundef %959, ptr noundef %82)
  %961 = load i64, ptr %82, align 8, !tbaa !9
  %962 = icmp ne i64 %961, 0
  br i1 %962, label %963, label %968

963:                                              ; preds = %947
  %964 = load ptr, ptr %21, align 8, !tbaa !5
  %965 = load i64, ptr %964, align 8, !tbaa !9
  %966 = add nsw i64 %965, 8
  %967 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %966, ptr %967, align 8, !tbaa !9
  br label %1718

968:                                              ; preds = %947
  %969 = load ptr, ptr %21, align 8, !tbaa !5
  %970 = load i64, ptr %969, align 8, !tbaa !9
  store i64 %970, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %54, align 8, !tbaa !9
  br label %971

971:                                              ; preds = %1097, %968
  %972 = load i64, ptr %54, align 8, !tbaa !9
  %973 = load i64, ptr %44, align 8, !tbaa !9
  %974 = icmp sle i64 %972, %973
  br i1 %974, label %975, label %1100

975:                                              ; preds = %971
  store float 0.000000e+00, ptr %69, align 4, !tbaa !15
  %976 = load ptr, ptr %21, align 8, !tbaa !5
  %977 = load i64, ptr %976, align 8, !tbaa !9
  store i64 %977, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %978

978:                                              ; preds = %1036, %975
  %979 = load i64, ptr %57, align 8, !tbaa !9
  %980 = load i64, ptr %45, align 8, !tbaa !9
  %981 = icmp sle i64 %979, %980
  br i1 %981, label %982, label %1039

982:                                              ; preds = %978
  %983 = load i64, ptr %57, align 8, !tbaa !9
  %984 = load i64, ptr %54, align 8, !tbaa !9
  %985 = load i64, ptr %40, align 8, !tbaa !9
  %986 = mul nsw i64 %984, %985
  %987 = add nsw i64 %983, %986
  store i64 %987, ptr %46, align 8, !tbaa !9
  %988 = load float, ptr %69, align 4, !tbaa !15
  store float %988, ptr %50, align 4, !tbaa !15
  %989 = load ptr, ptr %28, align 8, !tbaa !5
  %990 = load i64, ptr %46, align 8, !tbaa !9
  %991 = getelementptr inbounds %struct.complex, ptr %989, i64 %990
  %992 = getelementptr inbounds %struct.complex, ptr %991, i32 0, i32 0
  %993 = load float, ptr %992, align 4, !tbaa !11
  store float %993, ptr %48, align 4, !tbaa !15
  %994 = load float, ptr %48, align 4, !tbaa !15
  %995 = fcmp oge float %994, 0.000000e+00
  br i1 %995, label %996, label %998

996:                                              ; preds = %982
  %997 = load float, ptr %48, align 4, !tbaa !15
  br label %1001

998:                                              ; preds = %982
  %999 = load float, ptr %48, align 4, !tbaa !15
  %1000 = fneg float %999
  br label %1001

1001:                                             ; preds = %998, %996
  %1002 = phi float [ %997, %996 ], [ %1000, %998 ]
  %1003 = fpext float %1002 to double
  %1004 = load ptr, ptr %28, align 8, !tbaa !5
  %1005 = load i64, ptr %57, align 8, !tbaa !9
  %1006 = load i64, ptr %54, align 8, !tbaa !9
  %1007 = load i64, ptr %40, align 8, !tbaa !9
  %1008 = mul nsw i64 %1006, %1007
  %1009 = add nsw i64 %1005, %1008
  %1010 = getelementptr inbounds %struct.complex, ptr %1004, i64 %1009
  %1011 = call double @r_imag(ptr noundef %1010)
  %1012 = fptrunc double %1011 to float
  store float %1012, ptr %49, align 4, !tbaa !15
  %1013 = load float, ptr %49, align 4, !tbaa !15
  %1014 = fcmp oge float %1013, 0.000000e+00
  br i1 %1014, label %1015, label %1017

1015:                                             ; preds = %1001
  %1016 = load float, ptr %49, align 4, !tbaa !15
  br label %1020

1017:                                             ; preds = %1001
  %1018 = load float, ptr %49, align 4, !tbaa !15
  %1019 = fneg float %1018
  br label %1020

1020:                                             ; preds = %1017, %1015
  %1021 = phi float [ %1016, %1015 ], [ %1019, %1017 ]
  %1022 = fpext float %1021 to double
  %1023 = fadd double %1003, %1022
  %1024 = fptrunc double %1023 to float
  store float %1024, ptr %51, align 4, !tbaa !15
  %1025 = load float, ptr %50, align 4, !tbaa !15
  %1026 = load float, ptr %51, align 4, !tbaa !15
  %1027 = fcmp oge float %1025, %1026
  br i1 %1027, label %1028, label %1030

1028:                                             ; preds = %1020
  %1029 = load float, ptr %50, align 4, !tbaa !15
  br label %1032

1030:                                             ; preds = %1020
  %1031 = load float, ptr %51, align 4, !tbaa !15
  br label %1032

1032:                                             ; preds = %1030, %1028
  %1033 = phi float [ %1029, %1028 ], [ %1031, %1030 ]
  %1034 = fpext float %1033 to double
  %1035 = fptrunc double %1034 to float
  store float %1035, ptr %69, align 4, !tbaa !15
  br label %1036

1036:                                             ; preds = %1032
  %1037 = load i64, ptr %57, align 8, !tbaa !9
  %1038 = add nsw i64 %1037, 1
  store i64 %1038, ptr %57, align 8, !tbaa !9
  br label %978, !llvm.loop !17

1039:                                             ; preds = %978
  %1040 = load float, ptr %69, align 4, !tbaa !15
  %1041 = load float, ptr %88, align 4, !tbaa !15
  %1042 = fcmp olt float %1040, %1041
  br i1 %1042, label %1043, label %1044

1043:                                             ; preds = %1039
  br label %1096

1044:                                             ; preds = %1039
  %1045 = load float, ptr %69, align 4, !tbaa !15
  %1046 = fdiv float 1.000000e+00, %1045
  store float %1046, ptr %69, align 4, !tbaa !15
  %1047 = load ptr, ptr %21, align 8, !tbaa !5
  %1048 = load i64, ptr %1047, align 8, !tbaa !9
  store i64 %1048, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1049

1049:                                             ; preds = %1092, %1044
  %1050 = load i64, ptr %57, align 8, !tbaa !9
  %1051 = load i64, ptr %45, align 8, !tbaa !9
  %1052 = icmp sle i64 %1050, %1051
  br i1 %1052, label %1053, label %1095

1053:                                             ; preds = %1049
  %1054 = load i64, ptr %57, align 8, !tbaa !9
  %1055 = load i64, ptr %54, align 8, !tbaa !9
  %1056 = load i64, ptr %40, align 8, !tbaa !9
  %1057 = mul nsw i64 %1055, %1056
  %1058 = add nsw i64 %1054, %1057
  store i64 %1058, ptr %46, align 8, !tbaa !9
  %1059 = load i64, ptr %57, align 8, !tbaa !9
  %1060 = load i64, ptr %54, align 8, !tbaa !9
  %1061 = load i64, ptr %40, align 8, !tbaa !9
  %1062 = mul nsw i64 %1060, %1061
  %1063 = add nsw i64 %1059, %1062
  store i64 %1063, ptr %47, align 8, !tbaa !9
  %1064 = load float, ptr %69, align 4, !tbaa !15
  %1065 = load ptr, ptr %28, align 8, !tbaa !5
  %1066 = load i64, ptr %47, align 8, !tbaa !9
  %1067 = getelementptr inbounds %struct.complex, ptr %1065, i64 %1066
  %1068 = getelementptr inbounds %struct.complex, ptr %1067, i32 0, i32 0
  %1069 = load float, ptr %1068, align 4, !tbaa !11
  %1070 = fmul float %1064, %1069
  %1071 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1070, ptr %1071, align 4, !tbaa !11
  %1072 = load float, ptr %69, align 4, !tbaa !15
  %1073 = load ptr, ptr %28, align 8, !tbaa !5
  %1074 = load i64, ptr %47, align 8, !tbaa !9
  %1075 = getelementptr inbounds %struct.complex, ptr %1073, i64 %1074
  %1076 = getelementptr inbounds %struct.complex, ptr %1075, i32 0, i32 1
  %1077 = load float, ptr %1076, align 4, !tbaa !14
  %1078 = fmul float %1072, %1077
  %1079 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1078, ptr %1079, align 4, !tbaa !14
  %1080 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1081 = load float, ptr %1080, align 4, !tbaa !11
  %1082 = load ptr, ptr %28, align 8, !tbaa !5
  %1083 = load i64, ptr %46, align 8, !tbaa !9
  %1084 = getelementptr inbounds %struct.complex, ptr %1082, i64 %1083
  %1085 = getelementptr inbounds %struct.complex, ptr %1084, i32 0, i32 0
  store float %1081, ptr %1085, align 4, !tbaa !11
  %1086 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1087 = load float, ptr %1086, align 4, !tbaa !14
  %1088 = load ptr, ptr %28, align 8, !tbaa !5
  %1089 = load i64, ptr %46, align 8, !tbaa !9
  %1090 = getelementptr inbounds %struct.complex, ptr %1088, i64 %1089
  %1091 = getelementptr inbounds %struct.complex, ptr %1090, i32 0, i32 1
  store float %1087, ptr %1091, align 4, !tbaa !14
  br label %1092

1092:                                             ; preds = %1053
  %1093 = load i64, ptr %57, align 8, !tbaa !9
  %1094 = add nsw i64 %1093, 1
  store i64 %1094, ptr %57, align 8, !tbaa !9
  br label %1049, !llvm.loop !19

1095:                                             ; preds = %1049
  br label %1096

1096:                                             ; preds = %1095, %1043
  br label %1097

1097:                                             ; preds = %1096
  %1098 = load i64, ptr %54, align 8, !tbaa !9
  %1099 = add nsw i64 %1098, 1
  store i64 %1099, ptr %54, align 8, !tbaa !9
  br label %971, !llvm.loop !20

1100:                                             ; preds = %971
  br label %1101

1101:                                             ; preds = %1100, %944
  %1102 = load i64, ptr %71, align 8, !tbaa !9
  %1103 = icmp ne i64 %1102, 0
  br i1 %1103, label %1104, label %1258

1104:                                             ; preds = %1101
  %1105 = load ptr, ptr %21, align 8, !tbaa !5
  %1106 = load ptr, ptr %34, align 8, !tbaa !5
  %1107 = load i64, ptr %81, align 8, !tbaa !9
  %1108 = getelementptr inbounds float, ptr %1106, i64 %1107
  %1109 = load ptr, ptr %34, align 8, !tbaa !5
  %1110 = load i64, ptr %93, align 8, !tbaa !9
  %1111 = getelementptr inbounds float, ptr %1109, i64 %1110
  %1112 = load ptr, ptr %21, align 8, !tbaa !5
  %1113 = load ptr, ptr %30, align 8, !tbaa !5
  %1114 = load i64, ptr %43, align 8, !tbaa !9
  %1115 = getelementptr inbounds %struct.complex, ptr %1113, i64 %1114
  %1116 = load ptr, ptr %31, align 8, !tbaa !5
  %1117 = call i32 @cggbak_(ptr noundef @.str.12, ptr noundef @.str.16, ptr noundef %1105, ptr noundef %62, ptr noundef %61, ptr noundef %1108, ptr noundef %1111, ptr noundef %1112, ptr noundef %1115, ptr noundef %1116, ptr noundef %82)
  %1118 = load i64, ptr %82, align 8, !tbaa !9
  %1119 = icmp ne i64 %1118, 0
  br i1 %1119, label %1120, label %1125

1120:                                             ; preds = %1104
  %1121 = load ptr, ptr %21, align 8, !tbaa !5
  %1122 = load i64, ptr %1121, align 8, !tbaa !9
  %1123 = add nsw i64 %1122, 9
  %1124 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 %1123, ptr %1124, align 8, !tbaa !9
  br label %1718

1125:                                             ; preds = %1104
  %1126 = load ptr, ptr %21, align 8, !tbaa !5
  %1127 = load i64, ptr %1126, align 8, !tbaa !9
  store i64 %1127, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %54, align 8, !tbaa !9
  br label %1128

1128:                                             ; preds = %1254, %1125
  %1129 = load i64, ptr %54, align 8, !tbaa !9
  %1130 = load i64, ptr %44, align 8, !tbaa !9
  %1131 = icmp sle i64 %1129, %1130
  br i1 %1131, label %1132, label %1257

1132:                                             ; preds = %1128
  store float 0.000000e+00, ptr %69, align 4, !tbaa !15
  %1133 = load ptr, ptr %21, align 8, !tbaa !5
  %1134 = load i64, ptr %1133, align 8, !tbaa !9
  store i64 %1134, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1135

1135:                                             ; preds = %1193, %1132
  %1136 = load i64, ptr %57, align 8, !tbaa !9
  %1137 = load i64, ptr %45, align 8, !tbaa !9
  %1138 = icmp sle i64 %1136, %1137
  br i1 %1138, label %1139, label %1196

1139:                                             ; preds = %1135
  %1140 = load i64, ptr %57, align 8, !tbaa !9
  %1141 = load i64, ptr %54, align 8, !tbaa !9
  %1142 = load i64, ptr %42, align 8, !tbaa !9
  %1143 = mul nsw i64 %1141, %1142
  %1144 = add nsw i64 %1140, %1143
  store i64 %1144, ptr %46, align 8, !tbaa !9
  %1145 = load float, ptr %69, align 4, !tbaa !15
  store float %1145, ptr %50, align 4, !tbaa !15
  %1146 = load ptr, ptr %30, align 8, !tbaa !5
  %1147 = load i64, ptr %46, align 8, !tbaa !9
  %1148 = getelementptr inbounds %struct.complex, ptr %1146, i64 %1147
  %1149 = getelementptr inbounds %struct.complex, ptr %1148, i32 0, i32 0
  %1150 = load float, ptr %1149, align 4, !tbaa !11
  store float %1150, ptr %48, align 4, !tbaa !15
  %1151 = load float, ptr %48, align 4, !tbaa !15
  %1152 = fcmp oge float %1151, 0.000000e+00
  br i1 %1152, label %1153, label %1155

1153:                                             ; preds = %1139
  %1154 = load float, ptr %48, align 4, !tbaa !15
  br label %1158

1155:                                             ; preds = %1139
  %1156 = load float, ptr %48, align 4, !tbaa !15
  %1157 = fneg float %1156
  br label %1158

1158:                                             ; preds = %1155, %1153
  %1159 = phi float [ %1154, %1153 ], [ %1157, %1155 ]
  %1160 = fpext float %1159 to double
  %1161 = load ptr, ptr %30, align 8, !tbaa !5
  %1162 = load i64, ptr %57, align 8, !tbaa !9
  %1163 = load i64, ptr %54, align 8, !tbaa !9
  %1164 = load i64, ptr %42, align 8, !tbaa !9
  %1165 = mul nsw i64 %1163, %1164
  %1166 = add nsw i64 %1162, %1165
  %1167 = getelementptr inbounds %struct.complex, ptr %1161, i64 %1166
  %1168 = call double @r_imag(ptr noundef %1167)
  %1169 = fptrunc double %1168 to float
  store float %1169, ptr %49, align 4, !tbaa !15
  %1170 = load float, ptr %49, align 4, !tbaa !15
  %1171 = fcmp oge float %1170, 0.000000e+00
  br i1 %1171, label %1172, label %1174

1172:                                             ; preds = %1158
  %1173 = load float, ptr %49, align 4, !tbaa !15
  br label %1177

1174:                                             ; preds = %1158
  %1175 = load float, ptr %49, align 4, !tbaa !15
  %1176 = fneg float %1175
  br label %1177

1177:                                             ; preds = %1174, %1172
  %1178 = phi float [ %1173, %1172 ], [ %1176, %1174 ]
  %1179 = fpext float %1178 to double
  %1180 = fadd double %1160, %1179
  %1181 = fptrunc double %1180 to float
  store float %1181, ptr %51, align 4, !tbaa !15
  %1182 = load float, ptr %50, align 4, !tbaa !15
  %1183 = load float, ptr %51, align 4, !tbaa !15
  %1184 = fcmp oge float %1182, %1183
  br i1 %1184, label %1185, label %1187

1185:                                             ; preds = %1177
  %1186 = load float, ptr %50, align 4, !tbaa !15
  br label %1189

1187:                                             ; preds = %1177
  %1188 = load float, ptr %51, align 4, !tbaa !15
  br label %1189

1189:                                             ; preds = %1187, %1185
  %1190 = phi float [ %1186, %1185 ], [ %1188, %1187 ]
  %1191 = fpext float %1190 to double
  %1192 = fptrunc double %1191 to float
  store float %1192, ptr %69, align 4, !tbaa !15
  br label %1193

1193:                                             ; preds = %1189
  %1194 = load i64, ptr %57, align 8, !tbaa !9
  %1195 = add nsw i64 %1194, 1
  store i64 %1195, ptr %57, align 8, !tbaa !9
  br label %1135, !llvm.loop !21

1196:                                             ; preds = %1135
  %1197 = load float, ptr %69, align 4, !tbaa !15
  %1198 = load float, ptr %88, align 4, !tbaa !15
  %1199 = fcmp olt float %1197, %1198
  br i1 %1199, label %1200, label %1201

1200:                                             ; preds = %1196
  br label %1253

1201:                                             ; preds = %1196
  %1202 = load float, ptr %69, align 4, !tbaa !15
  %1203 = fdiv float 1.000000e+00, %1202
  store float %1203, ptr %69, align 4, !tbaa !15
  %1204 = load ptr, ptr %21, align 8, !tbaa !5
  %1205 = load i64, ptr %1204, align 8, !tbaa !9
  store i64 %1205, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1206

1206:                                             ; preds = %1249, %1201
  %1207 = load i64, ptr %57, align 8, !tbaa !9
  %1208 = load i64, ptr %45, align 8, !tbaa !9
  %1209 = icmp sle i64 %1207, %1208
  br i1 %1209, label %1210, label %1252

1210:                                             ; preds = %1206
  %1211 = load i64, ptr %57, align 8, !tbaa !9
  %1212 = load i64, ptr %54, align 8, !tbaa !9
  %1213 = load i64, ptr %42, align 8, !tbaa !9
  %1214 = mul nsw i64 %1212, %1213
  %1215 = add nsw i64 %1211, %1214
  store i64 %1215, ptr %46, align 8, !tbaa !9
  %1216 = load i64, ptr %57, align 8, !tbaa !9
  %1217 = load i64, ptr %54, align 8, !tbaa !9
  %1218 = load i64, ptr %42, align 8, !tbaa !9
  %1219 = mul nsw i64 %1217, %1218
  %1220 = add nsw i64 %1216, %1219
  store i64 %1220, ptr %47, align 8, !tbaa !9
  %1221 = load float, ptr %69, align 4, !tbaa !15
  %1222 = load ptr, ptr %30, align 8, !tbaa !5
  %1223 = load i64, ptr %47, align 8, !tbaa !9
  %1224 = getelementptr inbounds %struct.complex, ptr %1222, i64 %1223
  %1225 = getelementptr inbounds %struct.complex, ptr %1224, i32 0, i32 0
  %1226 = load float, ptr %1225, align 4, !tbaa !11
  %1227 = fmul float %1221, %1226
  %1228 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1227, ptr %1228, align 4, !tbaa !11
  %1229 = load float, ptr %69, align 4, !tbaa !15
  %1230 = load ptr, ptr %30, align 8, !tbaa !5
  %1231 = load i64, ptr %47, align 8, !tbaa !9
  %1232 = getelementptr inbounds %struct.complex, ptr %1230, i64 %1231
  %1233 = getelementptr inbounds %struct.complex, ptr %1232, i32 0, i32 1
  %1234 = load float, ptr %1233, align 4, !tbaa !14
  %1235 = fmul float %1229, %1234
  %1236 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1235, ptr %1236, align 4, !tbaa !14
  %1237 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1238 = load float, ptr %1237, align 4, !tbaa !11
  %1239 = load ptr, ptr %30, align 8, !tbaa !5
  %1240 = load i64, ptr %46, align 8, !tbaa !9
  %1241 = getelementptr inbounds %struct.complex, ptr %1239, i64 %1240
  %1242 = getelementptr inbounds %struct.complex, ptr %1241, i32 0, i32 0
  store float %1238, ptr %1242, align 4, !tbaa !11
  %1243 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1244 = load float, ptr %1243, align 4, !tbaa !14
  %1245 = load ptr, ptr %30, align 8, !tbaa !5
  %1246 = load i64, ptr %46, align 8, !tbaa !9
  %1247 = getelementptr inbounds %struct.complex, ptr %1245, i64 %1246
  %1248 = getelementptr inbounds %struct.complex, ptr %1247, i32 0, i32 1
  store float %1244, ptr %1248, align 4, !tbaa !14
  br label %1249

1249:                                             ; preds = %1210
  %1250 = load i64, ptr %57, align 8, !tbaa !9
  %1251 = add nsw i64 %1250, 1
  store i64 %1251, ptr %57, align 8, !tbaa !9
  br label %1206, !llvm.loop !22

1252:                                             ; preds = %1206
  br label %1253

1253:                                             ; preds = %1252, %1200
  br label %1254

1254:                                             ; preds = %1253
  %1255 = load i64, ptr %54, align 8, !tbaa !9
  %1256 = add nsw i64 %1255, 1
  store i64 %1256, ptr %54, align 8, !tbaa !9
  br label %1128, !llvm.loop !23

1257:                                             ; preds = %1128
  br label %1258

1258:                                             ; preds = %1257, %1101
  br label %1259

1259:                                             ; preds = %1258, %893
  %1260 = load ptr, ptr %21, align 8, !tbaa !5
  %1261 = load i64, ptr %1260, align 8, !tbaa !9
  store i64 %1261, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %54, align 8, !tbaa !9
  br label %1262

1262:                                             ; preds = %1714, %1259
  %1263 = load i64, ptr %54, align 8, !tbaa !9
  %1264 = load i64, ptr %44, align 8, !tbaa !9
  %1265 = icmp sle i64 %1263, %1264
  br i1 %1265, label %1266, label %1717

1266:                                             ; preds = %1262
  %1267 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1267, ptr %45, align 8, !tbaa !9
  %1268 = load ptr, ptr %26, align 8, !tbaa !5
  %1269 = load i64, ptr %45, align 8, !tbaa !9
  %1270 = getelementptr inbounds %struct.complex, ptr %1268, i64 %1269
  %1271 = getelementptr inbounds %struct.complex, ptr %1270, i32 0, i32 0
  %1272 = load float, ptr %1271, align 4, !tbaa !11
  store float %1272, ptr %48, align 4, !tbaa !15
  %1273 = load float, ptr %48, align 4, !tbaa !15
  %1274 = fcmp oge float %1273, 0.000000e+00
  br i1 %1274, label %1275, label %1277

1275:                                             ; preds = %1266
  %1276 = load float, ptr %48, align 4, !tbaa !15
  br label %1280

1277:                                             ; preds = %1266
  %1278 = load float, ptr %48, align 4, !tbaa !15
  %1279 = fneg float %1278
  br label %1280

1280:                                             ; preds = %1277, %1275
  %1281 = phi float [ %1276, %1275 ], [ %1279, %1277 ]
  %1282 = fpext float %1281 to double
  %1283 = fptrunc double %1282 to float
  store float %1283, ptr %79, align 4, !tbaa !15
  %1284 = load ptr, ptr %26, align 8, !tbaa !5
  %1285 = load i64, ptr %54, align 8, !tbaa !9
  %1286 = getelementptr inbounds %struct.complex, ptr %1284, i64 %1285
  %1287 = call double @r_imag(ptr noundef %1286)
  %1288 = fptrunc double %1287 to float
  store float %1288, ptr %48, align 4, !tbaa !15
  %1289 = load float, ptr %48, align 4, !tbaa !15
  %1290 = fcmp oge float %1289, 0.000000e+00
  br i1 %1290, label %1291, label %1293

1291:                                             ; preds = %1280
  %1292 = load float, ptr %48, align 4, !tbaa !15
  br label %1296

1293:                                             ; preds = %1280
  %1294 = load float, ptr %48, align 4, !tbaa !15
  %1295 = fneg float %1294
  br label %1296

1296:                                             ; preds = %1293, %1291
  %1297 = phi float [ %1292, %1291 ], [ %1295, %1293 ]
  %1298 = fpext float %1297 to double
  %1299 = fptrunc double %1298 to float
  store float %1299, ptr %77, align 4, !tbaa !15
  %1300 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1300, ptr %45, align 8, !tbaa !9
  %1301 = load ptr, ptr %27, align 8, !tbaa !5
  %1302 = load i64, ptr %45, align 8, !tbaa !9
  %1303 = getelementptr inbounds %struct.complex, ptr %1301, i64 %1302
  %1304 = getelementptr inbounds %struct.complex, ptr %1303, i32 0, i32 0
  %1305 = load float, ptr %1304, align 4, !tbaa !11
  store float %1305, ptr %48, align 4, !tbaa !15
  %1306 = load float, ptr %48, align 4, !tbaa !15
  %1307 = fcmp oge float %1306, 0.000000e+00
  br i1 %1307, label %1308, label %1310

1308:                                             ; preds = %1296
  %1309 = load float, ptr %48, align 4, !tbaa !15
  br label %1313

1310:                                             ; preds = %1296
  %1311 = load float, ptr %48, align 4, !tbaa !15
  %1312 = fneg float %1311
  br label %1313

1313:                                             ; preds = %1310, %1308
  %1314 = phi float [ %1309, %1308 ], [ %1312, %1310 ]
  %1315 = fpext float %1314 to double
  %1316 = fptrunc double %1315 to float
  store float %1316, ptr %65, align 4, !tbaa !15
  %1317 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1317, ptr %45, align 8, !tbaa !9
  %1318 = load float, ptr %66, align 4, !tbaa !15
  %1319 = load ptr, ptr %26, align 8, !tbaa !5
  %1320 = load i64, ptr %45, align 8, !tbaa !9
  %1321 = getelementptr inbounds %struct.complex, ptr %1319, i64 %1320
  %1322 = getelementptr inbounds %struct.complex, ptr %1321, i32 0, i32 0
  %1323 = load float, ptr %1322, align 4, !tbaa !11
  %1324 = fmul float %1318, %1323
  store float %1324, ptr %87, align 4, !tbaa !15
  %1325 = load float, ptr %66, align 4, !tbaa !15
  %1326 = fpext float %1325 to double
  %1327 = load ptr, ptr %26, align 8, !tbaa !5
  %1328 = load i64, ptr %54, align 8, !tbaa !9
  %1329 = getelementptr inbounds %struct.complex, ptr %1327, i64 %1328
  %1330 = call double @r_imag(ptr noundef %1329)
  %1331 = fmul double %1326, %1330
  %1332 = fptrunc double %1331 to float
  store float %1332, ptr %86, align 4, !tbaa !15
  %1333 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1333, ptr %45, align 8, !tbaa !9
  %1334 = load float, ptr %67, align 4, !tbaa !15
  %1335 = load ptr, ptr %27, align 8, !tbaa !5
  %1336 = load i64, ptr %45, align 8, !tbaa !9
  %1337 = getelementptr inbounds %struct.complex, ptr %1335, i64 %1336
  %1338 = getelementptr inbounds %struct.complex, ptr %1337, i32 0, i32 0
  %1339 = load float, ptr %1338, align 4, !tbaa !11
  %1340 = fmul float %1334, %1339
  store float %1340, ptr %80, align 4, !tbaa !15
  store i64 0, ptr %94, align 8, !tbaa !9
  store float 1.000000e+00, ptr %78, align 4, !tbaa !15
  %1341 = load float, ptr %88, align 4, !tbaa !15
  store float %1341, ptr %48, align 4, !tbaa !15
  %1342 = load float, ptr %63, align 4, !tbaa !15
  %1343 = load float, ptr %79, align 4, !tbaa !15
  %1344 = fmul float %1342, %1343
  store float %1344, ptr %49, align 4, !tbaa !15
  %1345 = load float, ptr %48, align 4, !tbaa !15
  %1346 = load float, ptr %49, align 4, !tbaa !15
  %1347 = fcmp oge float %1345, %1346
  br i1 %1347, label %1348, label %1350

1348:                                             ; preds = %1313
  %1349 = load float, ptr %48, align 4, !tbaa !15
  br label %1352

1350:                                             ; preds = %1313
  %1351 = load float, ptr %49, align 4, !tbaa !15
  br label %1352

1352:                                             ; preds = %1350, %1348
  %1353 = phi float [ %1349, %1348 ], [ %1351, %1350 ]
  store float %1353, ptr %48, align 4, !tbaa !15
  %1354 = load float, ptr %63, align 4, !tbaa !15
  %1355 = load float, ptr %65, align 4, !tbaa !15
  %1356 = fmul float %1354, %1355
  store float %1356, ptr %49, align 4, !tbaa !15
  %1357 = load float, ptr %86, align 4, !tbaa !15
  %1358 = fcmp oge float %1357, 0.000000e+00
  br i1 %1358, label %1359, label %1361

1359:                                             ; preds = %1352
  %1360 = load float, ptr %86, align 4, !tbaa !15
  br label %1364

1361:                                             ; preds = %1352
  %1362 = load float, ptr %86, align 4, !tbaa !15
  %1363 = fneg float %1362
  br label %1364

1364:                                             ; preds = %1361, %1359
  %1365 = phi float [ %1360, %1359 ], [ %1363, %1361 ]
  %1366 = fpext float %1365 to double
  %1367 = load float, ptr %88, align 4, !tbaa !15
  %1368 = fpext float %1367 to double
  %1369 = fcmp olt double %1366, %1368
  br i1 %1369, label %1370, label %1405

1370:                                             ; preds = %1364
  %1371 = load float, ptr %77, align 4, !tbaa !15
  %1372 = fpext float %1371 to double
  %1373 = load float, ptr %48, align 4, !tbaa !15
  %1374 = load float, ptr %49, align 4, !tbaa !15
  %1375 = fcmp oge float %1373, %1374
  br i1 %1375, label %1376, label %1378

1376:                                             ; preds = %1370
  %1377 = load float, ptr %48, align 4, !tbaa !15
  br label %1380

1378:                                             ; preds = %1370
  %1379 = load float, ptr %49, align 4, !tbaa !15
  br label %1380

1380:                                             ; preds = %1378, %1376
  %1381 = phi float [ %1377, %1376 ], [ %1379, %1378 ]
  %1382 = fpext float %1381 to double
  %1383 = fcmp oge double %1372, %1382
  br i1 %1383, label %1384, label %1405

1384:                                             ; preds = %1380
  store i64 1, ptr %94, align 8, !tbaa !9
  %1385 = load float, ptr %88, align 4, !tbaa !15
  store float %1385, ptr %48, align 4, !tbaa !15
  %1386 = load float, ptr %74, align 4, !tbaa !15
  %1387 = load float, ptr %77, align 4, !tbaa !15
  %1388 = fmul float %1386, %1387
  store float %1388, ptr %49, align 4, !tbaa !15
  %1389 = load float, ptr %88, align 4, !tbaa !15
  %1390 = load float, ptr %73, align 4, !tbaa !15
  %1391 = fdiv float %1389, %1390
  %1392 = fpext float %1391 to double
  %1393 = load float, ptr %48, align 4, !tbaa !15
  %1394 = load float, ptr %49, align 4, !tbaa !15
  %1395 = fcmp oge float %1393, %1394
  br i1 %1395, label %1396, label %1398

1396:                                             ; preds = %1384
  %1397 = load float, ptr %48, align 4, !tbaa !15
  br label %1400

1398:                                             ; preds = %1384
  %1399 = load float, ptr %49, align 4, !tbaa !15
  br label %1400

1400:                                             ; preds = %1398, %1396
  %1401 = phi float [ %1397, %1396 ], [ %1399, %1398 ]
  %1402 = fpext float %1401 to double
  %1403 = fdiv double %1392, %1402
  %1404 = fptrunc double %1403 to float
  store float %1404, ptr %78, align 4, !tbaa !15
  br label %1405

1405:                                             ; preds = %1400, %1380, %1364
  %1406 = load float, ptr %88, align 4, !tbaa !15
  store float %1406, ptr %48, align 4, !tbaa !15
  %1407 = load float, ptr %63, align 4, !tbaa !15
  %1408 = load float, ptr %77, align 4, !tbaa !15
  %1409 = fmul float %1407, %1408
  store float %1409, ptr %49, align 4, !tbaa !15
  %1410 = load float, ptr %48, align 4, !tbaa !15
  %1411 = load float, ptr %49, align 4, !tbaa !15
  %1412 = fcmp oge float %1410, %1411
  br i1 %1412, label %1413, label %1415

1413:                                             ; preds = %1405
  %1414 = load float, ptr %48, align 4, !tbaa !15
  br label %1417

1415:                                             ; preds = %1405
  %1416 = load float, ptr %49, align 4, !tbaa !15
  br label %1417

1417:                                             ; preds = %1415, %1413
  %1418 = phi float [ %1414, %1413 ], [ %1416, %1415 ]
  store float %1418, ptr %48, align 4, !tbaa !15
  %1419 = load float, ptr %63, align 4, !tbaa !15
  %1420 = load float, ptr %65, align 4, !tbaa !15
  %1421 = fmul float %1419, %1420
  store float %1421, ptr %49, align 4, !tbaa !15
  %1422 = load float, ptr %87, align 4, !tbaa !15
  %1423 = fcmp oge float %1422, 0.000000e+00
  br i1 %1423, label %1424, label %1426

1424:                                             ; preds = %1417
  %1425 = load float, ptr %87, align 4, !tbaa !15
  br label %1429

1426:                                             ; preds = %1417
  %1427 = load float, ptr %87, align 4, !tbaa !15
  %1428 = fneg float %1427
  br label %1429

1429:                                             ; preds = %1426, %1424
  %1430 = phi float [ %1425, %1424 ], [ %1428, %1426 ]
  %1431 = fpext float %1430 to double
  %1432 = load float, ptr %88, align 4, !tbaa !15
  %1433 = fpext float %1432 to double
  %1434 = fcmp olt double %1431, %1433
  br i1 %1434, label %1435, label %1482

1435:                                             ; preds = %1429
  %1436 = load float, ptr %79, align 4, !tbaa !15
  %1437 = fpext float %1436 to double
  %1438 = load float, ptr %48, align 4, !tbaa !15
  %1439 = load float, ptr %49, align 4, !tbaa !15
  %1440 = fcmp oge float %1438, %1439
  br i1 %1440, label %1441, label %1443

1441:                                             ; preds = %1435
  %1442 = load float, ptr %48, align 4, !tbaa !15
  br label %1445

1443:                                             ; preds = %1435
  %1444 = load float, ptr %49, align 4, !tbaa !15
  br label %1445

1445:                                             ; preds = %1443, %1441
  %1446 = phi float [ %1442, %1441 ], [ %1444, %1443 ]
  %1447 = fpext float %1446 to double
  %1448 = fcmp oge double %1437, %1447
  br i1 %1448, label %1449, label %1482

1449:                                             ; preds = %1445
  store i64 1, ptr %94, align 8, !tbaa !9
  %1450 = load float, ptr %88, align 4, !tbaa !15
  store float %1450, ptr %50, align 4, !tbaa !15
  %1451 = load float, ptr %74, align 4, !tbaa !15
  %1452 = load float, ptr %79, align 4, !tbaa !15
  %1453 = fmul float %1451, %1452
  store float %1453, ptr %51, align 4, !tbaa !15
  %1454 = load float, ptr %78, align 4, !tbaa !15
  store float %1454, ptr %48, align 4, !tbaa !15
  %1455 = load float, ptr %88, align 4, !tbaa !15
  %1456 = load float, ptr %73, align 4, !tbaa !15
  %1457 = fdiv float %1455, %1456
  %1458 = fpext float %1457 to double
  %1459 = load float, ptr %50, align 4, !tbaa !15
  %1460 = load float, ptr %51, align 4, !tbaa !15
  %1461 = fcmp oge float %1459, %1460
  br i1 %1461, label %1462, label %1464

1462:                                             ; preds = %1449
  %1463 = load float, ptr %50, align 4, !tbaa !15
  br label %1466

1464:                                             ; preds = %1449
  %1465 = load float, ptr %51, align 4, !tbaa !15
  br label %1466

1466:                                             ; preds = %1464, %1462
  %1467 = phi float [ %1463, %1462 ], [ %1465, %1464 ]
  %1468 = fpext float %1467 to double
  %1469 = fdiv double %1458, %1468
  %1470 = fptrunc double %1469 to float
  store float %1470, ptr %49, align 4, !tbaa !15
  %1471 = load float, ptr %48, align 4, !tbaa !15
  %1472 = load float, ptr %49, align 4, !tbaa !15
  %1473 = fcmp oge float %1471, %1472
  br i1 %1473, label %1474, label %1476

1474:                                             ; preds = %1466
  %1475 = load float, ptr %48, align 4, !tbaa !15
  br label %1478

1476:                                             ; preds = %1466
  %1477 = load float, ptr %49, align 4, !tbaa !15
  br label %1478

1478:                                             ; preds = %1476, %1474
  %1479 = phi float [ %1475, %1474 ], [ %1477, %1476 ]
  %1480 = fpext float %1479 to double
  %1481 = fptrunc double %1480 to float
  store float %1481, ptr %78, align 4, !tbaa !15
  br label %1482

1482:                                             ; preds = %1478, %1445, %1429
  %1483 = load float, ptr %88, align 4, !tbaa !15
  store float %1483, ptr %48, align 4, !tbaa !15
  %1484 = load float, ptr %63, align 4, !tbaa !15
  %1485 = load float, ptr %79, align 4, !tbaa !15
  %1486 = fmul float %1484, %1485
  store float %1486, ptr %49, align 4, !tbaa !15
  %1487 = load float, ptr %48, align 4, !tbaa !15
  %1488 = load float, ptr %49, align 4, !tbaa !15
  %1489 = fcmp oge float %1487, %1488
  br i1 %1489, label %1490, label %1492

1490:                                             ; preds = %1482
  %1491 = load float, ptr %48, align 4, !tbaa !15
  br label %1494

1492:                                             ; preds = %1482
  %1493 = load float, ptr %49, align 4, !tbaa !15
  br label %1494

1494:                                             ; preds = %1492, %1490
  %1495 = phi float [ %1491, %1490 ], [ %1493, %1492 ]
  store float %1495, ptr %48, align 4, !tbaa !15
  %1496 = load float, ptr %63, align 4, !tbaa !15
  %1497 = load float, ptr %77, align 4, !tbaa !15
  %1498 = fmul float %1496, %1497
  store float %1498, ptr %49, align 4, !tbaa !15
  %1499 = load float, ptr %80, align 4, !tbaa !15
  %1500 = fcmp oge float %1499, 0.000000e+00
  br i1 %1500, label %1501, label %1503

1501:                                             ; preds = %1494
  %1502 = load float, ptr %80, align 4, !tbaa !15
  br label %1506

1503:                                             ; preds = %1494
  %1504 = load float, ptr %80, align 4, !tbaa !15
  %1505 = fneg float %1504
  br label %1506

1506:                                             ; preds = %1503, %1501
  %1507 = phi float [ %1502, %1501 ], [ %1505, %1503 ]
  %1508 = fpext float %1507 to double
  %1509 = load float, ptr %88, align 4, !tbaa !15
  %1510 = fpext float %1509 to double
  %1511 = fcmp olt double %1508, %1510
  br i1 %1511, label %1512, label %1559

1512:                                             ; preds = %1506
  %1513 = load float, ptr %65, align 4, !tbaa !15
  %1514 = fpext float %1513 to double
  %1515 = load float, ptr %48, align 4, !tbaa !15
  %1516 = load float, ptr %49, align 4, !tbaa !15
  %1517 = fcmp oge float %1515, %1516
  br i1 %1517, label %1518, label %1520

1518:                                             ; preds = %1512
  %1519 = load float, ptr %48, align 4, !tbaa !15
  br label %1522

1520:                                             ; preds = %1512
  %1521 = load float, ptr %49, align 4, !tbaa !15
  br label %1522

1522:                                             ; preds = %1520, %1518
  %1523 = phi float [ %1519, %1518 ], [ %1521, %1520 ]
  %1524 = fpext float %1523 to double
  %1525 = fcmp oge double %1514, %1524
  br i1 %1525, label %1526, label %1559

1526:                                             ; preds = %1522
  store i64 1, ptr %94, align 8, !tbaa !9
  %1527 = load float, ptr %88, align 4, !tbaa !15
  store float %1527, ptr %50, align 4, !tbaa !15
  %1528 = load float, ptr %76, align 4, !tbaa !15
  %1529 = load float, ptr %65, align 4, !tbaa !15
  %1530 = fmul float %1528, %1529
  store float %1530, ptr %51, align 4, !tbaa !15
  %1531 = load float, ptr %78, align 4, !tbaa !15
  store float %1531, ptr %48, align 4, !tbaa !15
  %1532 = load float, ptr %88, align 4, !tbaa !15
  %1533 = load float, ptr %75, align 4, !tbaa !15
  %1534 = fdiv float %1532, %1533
  %1535 = fpext float %1534 to double
  %1536 = load float, ptr %50, align 4, !tbaa !15
  %1537 = load float, ptr %51, align 4, !tbaa !15
  %1538 = fcmp oge float %1536, %1537
  br i1 %1538, label %1539, label %1541

1539:                                             ; preds = %1526
  %1540 = load float, ptr %50, align 4, !tbaa !15
  br label %1543

1541:                                             ; preds = %1526
  %1542 = load float, ptr %51, align 4, !tbaa !15
  br label %1543

1543:                                             ; preds = %1541, %1539
  %1544 = phi float [ %1540, %1539 ], [ %1542, %1541 ]
  %1545 = fpext float %1544 to double
  %1546 = fdiv double %1535, %1545
  %1547 = fptrunc double %1546 to float
  store float %1547, ptr %49, align 4, !tbaa !15
  %1548 = load float, ptr %48, align 4, !tbaa !15
  %1549 = load float, ptr %49, align 4, !tbaa !15
  %1550 = fcmp oge float %1548, %1549
  br i1 %1550, label %1551, label %1553

1551:                                             ; preds = %1543
  %1552 = load float, ptr %48, align 4, !tbaa !15
  br label %1555

1553:                                             ; preds = %1543
  %1554 = load float, ptr %49, align 4, !tbaa !15
  br label %1555

1555:                                             ; preds = %1553, %1551
  %1556 = phi float [ %1552, %1551 ], [ %1554, %1553 ]
  %1557 = fpext float %1556 to double
  %1558 = fptrunc double %1557 to float
  store float %1558, ptr %78, align 4, !tbaa !15
  br label %1559

1559:                                             ; preds = %1555, %1522, %1506
  %1560 = load i64, ptr %94, align 8, !tbaa !9
  %1561 = icmp ne i64 %1560, 0
  br i1 %1561, label %1562, label %1632

1562:                                             ; preds = %1559
  %1563 = load float, ptr %87, align 4, !tbaa !15
  %1564 = fcmp oge float %1563, 0.000000e+00
  br i1 %1564, label %1565, label %1567

1565:                                             ; preds = %1562
  %1566 = load float, ptr %87, align 4, !tbaa !15
  br label %1570

1567:                                             ; preds = %1562
  %1568 = load float, ptr %87, align 4, !tbaa !15
  %1569 = fneg float %1568
  br label %1570

1570:                                             ; preds = %1567, %1565
  %1571 = phi float [ %1566, %1565 ], [ %1569, %1567 ]
  %1572 = fpext float %1571 to double
  %1573 = fptrunc double %1572 to float
  store float %1573, ptr %48, align 4, !tbaa !15
  %1574 = load float, ptr %86, align 4, !tbaa !15
  %1575 = fcmp oge float %1574, 0.000000e+00
  br i1 %1575, label %1576, label %1578

1576:                                             ; preds = %1570
  %1577 = load float, ptr %86, align 4, !tbaa !15
  br label %1581

1578:                                             ; preds = %1570
  %1579 = load float, ptr %86, align 4, !tbaa !15
  %1580 = fneg float %1579
  br label %1581

1581:                                             ; preds = %1578, %1576
  %1582 = phi float [ %1577, %1576 ], [ %1580, %1578 ]
  %1583 = fpext float %1582 to double
  %1584 = fptrunc double %1583 to float
  store float %1584, ptr %49, align 4, !tbaa !15
  %1585 = load float, ptr %48, align 4, !tbaa !15
  %1586 = load float, ptr %49, align 4, !tbaa !15
  %1587 = fcmp oge float %1585, %1586
  br i1 %1587, label %1588, label %1590

1588:                                             ; preds = %1581
  %1589 = load float, ptr %48, align 4, !tbaa !15
  br label %1592

1590:                                             ; preds = %1581
  %1591 = load float, ptr %49, align 4, !tbaa !15
  br label %1592

1592:                                             ; preds = %1590, %1588
  %1593 = phi float [ %1589, %1588 ], [ %1591, %1590 ]
  store float %1593, ptr %48, align 4, !tbaa !15
  %1594 = load float, ptr %80, align 4, !tbaa !15
  %1595 = fcmp oge float %1594, 0.000000e+00
  br i1 %1595, label %1596, label %1598

1596:                                             ; preds = %1592
  %1597 = load float, ptr %80, align 4, !tbaa !15
  br label %1601

1598:                                             ; preds = %1592
  %1599 = load float, ptr %80, align 4, !tbaa !15
  %1600 = fneg float %1599
  br label %1601

1601:                                             ; preds = %1598, %1596
  %1602 = phi float [ %1597, %1596 ], [ %1600, %1598 ]
  %1603 = fpext float %1602 to double
  %1604 = fptrunc double %1603 to float
  store float %1604, ptr %49, align 4, !tbaa !15
  %1605 = load float, ptr %78, align 4, !tbaa !15
  %1606 = load float, ptr %88, align 4, !tbaa !15
  %1607 = fmul float %1605, %1606
  %1608 = fpext float %1607 to double
  %1609 = load float, ptr %48, align 4, !tbaa !15
  %1610 = load float, ptr %49, align 4, !tbaa !15
  %1611 = fcmp oge float %1609, %1610
  br i1 %1611, label %1612, label %1614

1612:                                             ; preds = %1601
  %1613 = load float, ptr %48, align 4, !tbaa !15
  br label %1616

1614:                                             ; preds = %1601
  %1615 = load float, ptr %49, align 4, !tbaa !15
  br label %1616

1616:                                             ; preds = %1614, %1612
  %1617 = phi float [ %1613, %1612 ], [ %1615, %1614 ]
  %1618 = fpext float %1617 to double
  %1619 = fmul double %1608, %1618
  %1620 = fptrunc double %1619 to float
  store float %1620, ptr %69, align 4, !tbaa !15
  %1621 = load float, ptr %69, align 4, !tbaa !15
  %1622 = fcmp ogt float %1621, 1.000000e+00
  br i1 %1622, label %1623, label %1627

1623:                                             ; preds = %1616
  %1624 = load float, ptr %69, align 4, !tbaa !15
  %1625 = load float, ptr %78, align 4, !tbaa !15
  %1626 = fdiv float %1625, %1624
  store float %1626, ptr %78, align 4, !tbaa !15
  br label %1627

1627:                                             ; preds = %1623, %1616
  %1628 = load float, ptr %78, align 4, !tbaa !15
  %1629 = fcmp olt float %1628, 1.000000e+00
  br i1 %1629, label %1630, label %1631

1630:                                             ; preds = %1627
  store i64 0, ptr %94, align 8, !tbaa !9
  br label %1631

1631:                                             ; preds = %1630, %1627
  br label %1632

1632:                                             ; preds = %1631, %1559
  %1633 = load i64, ptr %94, align 8, !tbaa !9
  %1634 = icmp ne i64 %1633, 0
  br i1 %1634, label %1635, label %1686

1635:                                             ; preds = %1632
  %1636 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1636, ptr %45, align 8, !tbaa !9
  %1637 = load float, ptr %78, align 4, !tbaa !15
  %1638 = load ptr, ptr %26, align 8, !tbaa !5
  %1639 = load i64, ptr %45, align 8, !tbaa !9
  %1640 = getelementptr inbounds %struct.complex, ptr %1638, i64 %1639
  %1641 = getelementptr inbounds %struct.complex, ptr %1640, i32 0, i32 0
  %1642 = load float, ptr %1641, align 4, !tbaa !11
  %1643 = fmul float %1637, %1642
  %1644 = load float, ptr %66, align 4, !tbaa !15
  %1645 = fmul float %1643, %1644
  store float %1645, ptr %87, align 4, !tbaa !15
  %1646 = load float, ptr %78, align 4, !tbaa !15
  %1647 = fpext float %1646 to double
  %1648 = load ptr, ptr %26, align 8, !tbaa !5
  %1649 = load i64, ptr %54, align 8, !tbaa !9
  %1650 = getelementptr inbounds %struct.complex, ptr %1648, i64 %1649
  %1651 = call double @r_imag(ptr noundef %1650)
  %1652 = fmul double %1647, %1651
  %1653 = load float, ptr %66, align 4, !tbaa !15
  %1654 = fpext float %1653 to double
  %1655 = fmul double %1652, %1654
  %1656 = fptrunc double %1655 to float
  store float %1656, ptr %86, align 4, !tbaa !15
  %1657 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1657, ptr %45, align 8, !tbaa !9
  %1658 = load float, ptr %78, align 4, !tbaa !15
  %1659 = load ptr, ptr %27, align 8, !tbaa !5
  %1660 = load i64, ptr %45, align 8, !tbaa !9
  %1661 = getelementptr inbounds %struct.complex, ptr %1659, i64 %1660
  %1662 = getelementptr inbounds %struct.complex, ptr %1661, i32 0, i32 0
  %1663 = load float, ptr %1662, align 4, !tbaa !11
  %1664 = fmul float %1658, %1663
  %1665 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  store float %1664, ptr %1665, align 4, !tbaa !11
  %1666 = load float, ptr %78, align 4, !tbaa !15
  %1667 = load ptr, ptr %27, align 8, !tbaa !5
  %1668 = load i64, ptr %45, align 8, !tbaa !9
  %1669 = getelementptr inbounds %struct.complex, ptr %1667, i64 %1668
  %1670 = getelementptr inbounds %struct.complex, ptr %1669, i32 0, i32 1
  %1671 = load float, ptr %1670, align 4, !tbaa !14
  %1672 = fmul float %1666, %1671
  %1673 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  store float %1672, ptr %1673, align 4, !tbaa !14
  %1674 = load float, ptr %67, align 4, !tbaa !15
  %1675 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %1676 = load float, ptr %1675, align 4, !tbaa !11
  %1677 = fmul float %1674, %1676
  %1678 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1677, ptr %1678, align 4, !tbaa !11
  %1679 = load float, ptr %67, align 4, !tbaa !15
  %1680 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %1681 = load float, ptr %1680, align 4, !tbaa !14
  %1682 = fmul float %1679, %1681
  %1683 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1682, ptr %1683, align 4, !tbaa !14
  %1684 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1685 = load float, ptr %1684, align 4, !tbaa !11
  store float %1685, ptr %80, align 4, !tbaa !15
  br label %1686

1686:                                             ; preds = %1635, %1632
  %1687 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1687, ptr %45, align 8, !tbaa !9
  %1688 = load float, ptr %87, align 4, !tbaa !15
  %1689 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1688, ptr %1689, align 4, !tbaa !11
  %1690 = load float, ptr %86, align 4, !tbaa !15
  %1691 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1690, ptr %1691, align 4, !tbaa !14
  %1692 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1693 = load float, ptr %1692, align 4, !tbaa !11
  %1694 = load ptr, ptr %26, align 8, !tbaa !5
  %1695 = load i64, ptr %45, align 8, !tbaa !9
  %1696 = getelementptr inbounds %struct.complex, ptr %1694, i64 %1695
  %1697 = getelementptr inbounds %struct.complex, ptr %1696, i32 0, i32 0
  store float %1693, ptr %1697, align 4, !tbaa !11
  %1698 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1699 = load float, ptr %1698, align 4, !tbaa !14
  %1700 = load ptr, ptr %26, align 8, !tbaa !5
  %1701 = load i64, ptr %45, align 8, !tbaa !9
  %1702 = getelementptr inbounds %struct.complex, ptr %1700, i64 %1701
  %1703 = getelementptr inbounds %struct.complex, ptr %1702, i32 0, i32 1
  store float %1699, ptr %1703, align 4, !tbaa !14
  %1704 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1704, ptr %45, align 8, !tbaa !9
  %1705 = load float, ptr %80, align 4, !tbaa !15
  %1706 = load ptr, ptr %27, align 8, !tbaa !5
  %1707 = load i64, ptr %45, align 8, !tbaa !9
  %1708 = getelementptr inbounds %struct.complex, ptr %1706, i64 %1707
  %1709 = getelementptr inbounds %struct.complex, ptr %1708, i32 0, i32 0
  store float %1705, ptr %1709, align 4, !tbaa !11
  %1710 = load ptr, ptr %27, align 8, !tbaa !5
  %1711 = load i64, ptr %45, align 8, !tbaa !9
  %1712 = getelementptr inbounds %struct.complex, ptr %1710, i64 %1711
  %1713 = getelementptr inbounds %struct.complex, ptr %1712, i32 0, i32 1
  store float 0.000000e+00, ptr %1713, align 4, !tbaa !14
  br label %1714

1714:                                             ; preds = %1686
  %1715 = load i64, ptr %54, align 8, !tbaa !9
  %1716 = add nsw i64 %1715, 1
  store i64 %1716, ptr %54, align 8, !tbaa !9
  br label %1262, !llvm.loop !24

1717:                                             ; preds = %1262
  br label %1718

1718:                                             ; preds = %1717, %1120, %963, %939, %892, %782, %712, %627, %567, %497
  %1719 = load i64, ptr %98, align 8, !tbaa !9
  %1720 = sitofp i64 %1719 to float
  %1721 = load ptr, ptr %32, align 8, !tbaa !5
  %1722 = getelementptr inbounds %struct.complex, ptr %1721, i64 1
  %1723 = getelementptr inbounds %struct.complex, ptr %1722, i32 0, i32 0
  store float %1720, ptr %1723, align 4, !tbaa !11
  %1724 = load ptr, ptr %32, align 8, !tbaa !5
  %1725 = getelementptr inbounds %struct.complex, ptr %1724, i64 1
  %1726 = getelementptr inbounds %struct.complex, ptr %1725, i32 0, i32 1
  store float 0.000000e+00, ptr %1726, align 4, !tbaa !14
  store i32 0, ptr %18, align 4
  store i32 1, ptr %100, align 4
  br label %1727

1727:                                             ; preds = %1718, %462, %418, %368, %362, %354
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  %1728 = load i32, ptr %18, align 4
  ret i32 %1728
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

declare i32 @cggbal_(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 @cgeqrf_(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 @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

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

declare i32 @cgghrd_(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 @chgeqz_(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 @ctgevc_(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 @cggbak_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare double @r_imag(ptr noundef) #2

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

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

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

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


; 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
@c__1 = external hidden global i64, align 8
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 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
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b29 = external hidden global float, align 4
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1

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

45:                                               ; preds = %17
  %46 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %.not636 = icmp eq i64 %46, 0
  %not..not636 = xor i1 %.not636, true
  br label %47

47:                                               ; preds = %45, %17
  %48 = phi i1 [ false, %17 ], [ %not..not636, %45 ]
  %49 = phi i1 [ false, %17 ], [ %.not636, %45 ]
  %50 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #4
  %.not637 = icmp eq i64 %50, 0
  br i1 %.not637, label %51, label %53

51:                                               ; preds = %47
  %52 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #4
  %.not638 = icmp eq i64 %52, 0
  %not..not638 = xor i1 %.not638, true
  br label %53

53:                                               ; preds = %51, %47
  %54 = phi i1 [ false, %47 ], [ %not..not638, %51 ]
  %55 = phi i1 [ false, %47 ], [ %.not638, %51 ]
  %56 = or i1 %48, %54
  %57 = load i64, ptr %2, align 8, !tbaa !5
  %58 = shl i64 %57, 1
  %59 = tail call i64 @llvm.smax.i64(i64 %58, i64 1)
  %60 = uitofp nneg i64 %59 to float
  store float %60, ptr %13, align 4, !tbaa !9
  %61 = getelementptr inbounds i8, ptr %13, i64 4
  store float 0.000000e+00, ptr %61, align 4, !tbaa !12
  %62 = load i64, ptr %14, align 8, !tbaa !5
  %63 = icmp eq i64 %62, -1
  store i64 0, ptr %16, align 8, !tbaa !5
  %brmerge = select i1 %49, i1 true, i1 %55
  %.mux = select i1 %49, i64 -1, i64 -2
  br i1 %brmerge, label %.thread678.sink.split, label %64

64:                                               ; preds = %53
  %65 = load i64, ptr %2, align 8, !tbaa !5
  %66 = icmp slt i64 %65, 0
  br i1 %66, label %.thread678.sink.split, label %67

67:                                               ; preds = %64
  %68 = load i64, ptr %4, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %65, i64 1)
  %69 = icmp slt i64 %68, %spec.select
  br i1 %69, label %.thread678.sink.split, label %70

70:                                               ; preds = %67
  %71 = load i64, ptr %6, align 8, !tbaa !5
  %72 = icmp slt i64 %71, %spec.select
  br i1 %72, label %.thread678.sink.split, label %73

73:                                               ; preds = %70
  %74 = load i64, ptr %10, align 8, !tbaa !5
  %75 = icmp slt i64 %74, 1
  %76 = icmp ult i64 %74, %65
  %or.cond723 = and i1 %48, %76
  %or.cond725 = select i1 %75, i1 true, i1 %or.cond723
  br i1 %or.cond725, label %.thread678.sink.split, label %77

77:                                               ; preds = %73
  %78 = load i64, ptr %12, align 8, !tbaa !5
  %79 = icmp slt i64 %78, 1
  %80 = icmp ult i64 %78, %65
  %or.cond724 = and i1 %54, %80
  %or.cond726 = select i1 %79, i1 true, i1 %or.cond724
  br i1 %or.cond726, label %.thread678.sink.split, label %81

81:                                               ; preds = %77
  %82 = load i64, ptr %14, align 8, !tbaa !5
  %83 = icmp sge i64 %82, %59
  %or.cond = select i1 %83, i1 true, i1 %63
  br i1 %or.cond, label %.thread, label %.thread678.sink.split

.thread:                                          ; preds = %81
  %84 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #4
  %85 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1) #4
  %86 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1) #4
  %87 = tail call i64 @llvm.smax.i64(i64 %84, i64 %85)
  %88 = tail call i64 @llvm.smax.i64(i64 %87, i64 %86)
  %89 = load i64, ptr %2, align 8, !tbaa !5
  %90 = shl i64 %89, 1
  store i64 %90, ptr %18, align 8, !tbaa !5
  %91 = add nsw i64 %88, 1
  %92 = mul nsw i64 %89, %91
  store i64 %92, ptr %19, align 8, !tbaa !5
  %93 = tail call i64 @llvm.smax.i64(i64 %90, i64 %92)
  %94 = sitofp i64 %93 to float
  store float %94, ptr %13, align 4, !tbaa !9
  store float 0.000000e+00, ptr %61, align 4, !tbaa !12
  %.pr677.pr = load i64, ptr %16, align 8, !tbaa !5
  %.not642 = icmp eq i64 %.pr677.pr, 0
  br i1 %.not642, label %98, label %.thread678

.thread678.sink.split:                            ; preds = %53, %81, %77, %73, %70, %67, %64
  %.sink = phi i64 [ %.mux, %53 ], [ -3, %64 ], [ -5, %67 ], [ -7, %70 ], [ -11, %73 ], [ -13, %77 ], [ -15, %81 ]
  store i64 %.sink, ptr %16, align 8, !tbaa !5
  br label %.thread678

.thread678:                                       ; preds = %.thread678.sink.split, %.thread
  %95 = phi i64 [ %.pr677.pr, %.thread ], [ %.sink, %.thread678.sink.split ]
  %96 = sub nsw i64 0, %95
  store i64 %96, ptr %18, align 8, !tbaa !5
  %97 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %18) #4
  br label %523

98:                                               ; preds = %.thread
  %99 = icmp eq i64 %89, 0
  %or.cond774 = select i1 %63, i1 true, i1 %99
  br i1 %or.cond774, label %523, label %100

100:                                              ; preds = %98
  %101 = tail call double @slamch_(ptr noundef nonnull @.str.7) #4
  %102 = tail call double @slamch_(ptr noundef nonnull @.str.8) #4
  %103 = fmul double %101, %102
  %104 = fptrunc double %103 to float
  %105 = tail call double @slamch_(ptr noundef nonnull @.str.9) #4
  %106 = fptrunc double %105 to float
  %107 = fadd float %106, %106
  %108 = fdiv float 1.000000e+00, %107
  %109 = tail call double @clange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %15) #4
  %110 = fptrunc double %109 to float
  store float %110, ptr %23, align 4, !tbaa !13
  %111 = fcmp olt float %110, 1.000000e+00
  br i1 %111, label %112, label %116

112:                                              ; preds = %100
  %113 = fmul float %108, %110
  %114 = fcmp olt float %113, 1.000000e+00
  br i1 %114, label %115, label %116

115:                                              ; preds = %112
  br label %116

116:                                              ; preds = %112, %115, %100
  %.0610 = phi float [ %107, %115 ], [ %110, %112 ], [ %110, %100 ]
  %.0609 = phi float [ %113, %115 ], [ 1.000000e+00, %112 ], [ 1.000000e+00, %100 ]
  %117 = fcmp ogt float %110, 0.000000e+00
  br i1 %117, label %118, label %124

118:                                              ; preds = %116
  %119 = call i32 @clascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %23, ptr noundef nonnull @c_b29, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %25) #4
  %120 = load i64, ptr %25, align 8, !tbaa !5
  %.not643 = icmp eq i64 %120, 0
  br i1 %.not643, label %124, label %121

121:                                              ; preds = %118
  %122 = load i64, ptr %2, align 8, !tbaa !5
  %123 = add nsw i64 %122, 10
  store i64 %123, ptr %16, align 8, !tbaa !5
  br label %523

124:                                              ; preds = %118, %116
  %125 = call double @clange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %15) #4
  %126 = fptrunc double %125 to float
  store float %126, ptr %24, align 4, !tbaa !13
  %127 = fcmp olt float %126, 1.000000e+00
  br i1 %127, label %128, label %132

128:                                              ; preds = %124
  %129 = fmul float %108, %126
  %130 = fcmp olt float %129, 1.000000e+00
  br i1 %130, label %131, label %132

131:                                              ; preds = %128
  br label %132

132:                                              ; preds = %128, %131, %124
  %.0608 = phi float [ %107, %131 ], [ %126, %128 ], [ %126, %124 ]
  %.0607 = phi float [ %129, %131 ], [ 1.000000e+00, %128 ], [ 1.000000e+00, %124 ]
  %133 = fcmp ogt float %126, 0.000000e+00
  br i1 %133, label %134, label %140

134:                                              ; preds = %132
  %135 = call i32 @clascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %24, ptr noundef nonnull @c_b29, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %25) #4
  %136 = load i64, ptr %25, align 8, !tbaa !5
  %.not644 = icmp eq i64 %136, 0
  br i1 %.not644, label %140, label %137

137:                                              ; preds = %134
  %138 = load i64, ptr %2, align 8, !tbaa !5
  %139 = add nsw i64 %138, 10
  store i64 %139, ptr %16, align 8, !tbaa !5
  br label %523

140:                                              ; preds = %134, %132
  %141 = load i64, ptr %2, align 8, !tbaa !5
  %142 = getelementptr float, ptr %15, i64 %141
  %.idx = shl i64 %141, 3
  %143 = getelementptr i8, ptr %15, i64 %.idx
  %144 = call i32 @cggbal_(ptr noundef nonnull @.str.12, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %22, ptr noundef nonnull %21, ptr noundef %15, ptr noundef %142, ptr noundef %143, ptr noundef nonnull %25) #4
  %145 = load i64, ptr %25, align 8, !tbaa !5
  %.not645 = icmp eq i64 %145, 0
  br i1 %.not645, label %149, label %146

146:                                              ; preds = %140
  %147 = load i64, ptr %2, align 8, !tbaa !5
  %148 = add nsw i64 %147, 1
  br label %.loopexit.sink.split

149:                                              ; preds = %140
  %150 = load i64, ptr %21, align 8, !tbaa !5
  %151 = add nsw i64 %150, 1
  %152 = load i64, ptr %22, align 8, !tbaa !5
  %153 = sub i64 %151, %152
  store i64 %153, ptr %27, align 8, !tbaa !5
  br i1 %56, label %154, label %157

154:                                              ; preds = %149
  %155 = load i64, ptr %2, align 8, !tbaa !5
  %reass.sub = sub i64 %155, %152
  %156 = add i64 %reass.sub, 1
  br label %157

157:                                              ; preds = %149, %154
  %storemerge = phi i64 [ %156, %154 ], [ %153, %149 ]
  store i64 %storemerge, ptr %26, align 8, !tbaa !5
  %158 = load i64, ptr %14, align 8, !tbaa !5
  %159 = sub i64 %158, %153
  store i64 %159, ptr %18, align 8, !tbaa !5
  %160 = add i64 %33, 1
  %161 = mul i64 %152, %160
  %162 = getelementptr inbounds %struct.complex, ptr %35, i64 %161
  %163 = getelementptr %struct.complex, ptr %13, i64 %153
  %164 = call i32 @cgeqrf_(ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef %162, ptr noundef nonnull %6, ptr noundef nonnull %13, ptr noundef %163, ptr noundef nonnull %18, ptr noundef nonnull %25) #4
  %165 = load i64, ptr %25, align 8, !tbaa !5
  %166 = icmp sgt i64 %165, -1
  br i1 %166, label %167, label %.thread680

167:                                              ; preds = %157
  %168 = load float, ptr %163, align 4, !tbaa !9
  %169 = fptosi float %168 to i64
  %170 = add i64 %153, %169
  store i64 %170, ptr %19, align 8, !tbaa !5
  %171 = call i64 @llvm.smax.i64(i64 %59, i64 %170)
  %.not647 = icmp eq i64 %165, 0
  br i1 %.not647, label %174, label %.thread680

.thread680:                                       ; preds = %157, %167
  %.0592683 = phi i64 [ %171, %167 ], [ %59, %157 ]
  %172 = load i64, ptr %2, align 8, !tbaa !5
  %173 = add nsw i64 %172, 2
  br label %.loopexit.sink.split

174:                                              ; preds = %167
  %175 = load i64, ptr %14, align 8, !tbaa !5
  %176 = sub i64 %175, %153
  store i64 %176, ptr %18, align 8, !tbaa !5
  %177 = load i64, ptr %22, align 8, !tbaa !5
  %178 = mul i64 %177, %160
  %179 = getelementptr inbounds %struct.complex, ptr %35, i64 %178
  %180 = add i64 %30, 1
  %181 = mul i64 %177, %180
  %182 = getelementptr inbounds %struct.complex, ptr %32, i64 %181
  %183 = call i32 @cunmqr_(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14, ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef %179, ptr noundef nonnull %6, ptr noundef nonnull %13, ptr noundef %182, ptr noundef nonnull %4, ptr noundef nonnull %163, ptr noundef nonnull %18, ptr noundef nonnull %25) #4
  %184 = load i64, ptr %25, align 8, !tbaa !5
  %185 = icmp sgt i64 %184, -1
  br i1 %185, label %186, label %.thread684

186:                                              ; preds = %174
  store i64 %171, ptr %18, align 8, !tbaa !5
  %187 = load float, ptr %163, align 4, !tbaa !9
  %188 = fptosi float %187 to i64
  %189 = add i64 %153, %188
  store i64 %189, ptr %19, align 8, !tbaa !5
  %190 = call i64 @llvm.smax.i64(i64 %171, i64 %189)
  %.not649 = icmp eq i64 %184, 0
  br i1 %.not649, label %193, label %.thread684

.thread684:                                       ; preds = %174, %186
  %.1687 = phi i64 [ %190, %186 ], [ %171, %174 ]
  %191 = load i64, ptr %2, align 8, !tbaa !5
  %192 = add nsw i64 %191, 3
  br label %.loopexit.sink.split

193:                                              ; preds = %186
  br i1 %48, label %194, label %223

194:                                              ; preds = %193
  %195 = call i32 @claset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %9, ptr noundef nonnull %10) #4
  %196 = load i64, ptr %27, align 8, !tbaa !5
  %197 = add nsw i64 %196, -1
  store i64 %197, ptr %18, align 8, !tbaa !5
  store i64 %197, ptr %19, align 8, !tbaa !5
  %198 = load i64, ptr %22, align 8, !tbaa !5
  %199 = add nsw i64 %198, 1
  %200 = mul nsw i64 %198, %33
  %201 = getelementptr %struct.complex, ptr %35, i64 %199
  %202 = getelementptr %struct.complex, ptr %201, i64 %200
  %203 = mul nsw i64 %198, %38
  %204 = getelementptr %struct.complex, ptr %40, i64 %199
  %205 = getelementptr %struct.complex, ptr %204, i64 %203
  %206 = call i32 @clacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %202, ptr noundef nonnull %6, ptr noundef %205, ptr noundef nonnull %10) #4
  %207 = load i64, ptr %14, align 8, !tbaa !5
  %208 = sub i64 %207, %153
  store i64 %208, ptr %18, align 8, !tbaa !5
  %209 = load i64, ptr %22, align 8, !tbaa !5
  %210 = add i64 %38, 1
  %211 = mul i64 %209, %210
  %212 = getelementptr inbounds %struct.complex, ptr %40, i64 %211
  %213 = call i32 @cungqr_(ptr noundef nonnull %27, ptr noundef nonnull %27, ptr noundef nonnull %27, ptr noundef %212, ptr noundef nonnull %10, ptr noundef nonnull %13, ptr noundef nonnull %163, ptr noundef nonnull %18, ptr noundef nonnull %25) #4
  %214 = load i64, ptr %25, align 8, !tbaa !5
  %215 = icmp sgt i64 %214, -1
  br i1 %215, label %216, label %.thread688

216:                                              ; preds = %194
  store i64 %190, ptr %18, align 8, !tbaa !5
  %217 = load float, ptr %163, align 4, !tbaa !9
  %218 = fptosi float %217 to i64
  %219 = add i64 %153, %218
  store i64 %219, ptr %19, align 8, !tbaa !5
  %220 = call i64 @llvm.smax.i64(i64 %190, i64 %219)
  %.not651 = icmp eq i64 %214, 0
  br i1 %.not651, label %.thread693, label %.thread688

.thread688:                                       ; preds = %194, %216
  %.2691 = phi i64 [ %220, %216 ], [ %190, %194 ]
  %221 = load i64, ptr %2, align 8, !tbaa !5
  %222 = add nsw i64 %221, 4
  br label %.loopexit.sink.split

223:                                              ; preds = %193
  br i1 %54, label %.thread692, label %225

.thread693:                                       ; preds = %216
  br i1 %54, label %.thread692, label %.thread699

.thread692:                                       ; preds = %223, %.thread693
  %.3698 = phi i64 [ %220, %.thread693 ], [ %190, %223 ]
  %224 = call i32 @claset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %11, ptr noundef nonnull %12) #4
  br label %.thread699

225:                                              ; preds = %223
  br i1 %56, label %.thread699, label %227

.thread699:                                       ; preds = %.thread693, %.thread692, %225
  %.3696 = phi i64 [ %.3698, %.thread692 ], [ %190, %225 ], [ %220, %.thread693 ]
  %226 = call i32 @cgghrd_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %21, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %25) #4
  br label %234

227:                                              ; preds = %225
  %228 = load i64, ptr %22, align 8, !tbaa !5
  %229 = mul i64 %228, %180
  %230 = getelementptr inbounds %struct.complex, ptr %32, i64 %229
  %231 = mul i64 %228, %160
  %232 = getelementptr inbounds %struct.complex, ptr %35, i64 %231
  %233 = call i32 @cgghrd_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %27, ptr noundef nonnull @c__1, ptr noundef nonnull %27, ptr noundef %230, ptr noundef nonnull %4, ptr noundef %232, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %25) #4
  br label %234

234:                                              ; preds = %227, %.thread699
  %.3695 = phi i64 [ %190, %227 ], [ %.3696, %.thread699 ]
  %235 = load i64, ptr %25, align 8, !tbaa !5
  %.not652 = icmp eq i64 %235, 0
  br i1 %.not652, label %239, label %236

236:                                              ; preds = %234
  %237 = load i64, ptr %2, align 8, !tbaa !5
  %238 = add nsw i64 %237, 5
  br label %.loopexit.sink.split

239:                                              ; preds = %234
  %.674 = select i1 %56, i8 83, i8 69
  store i8 %.674, ptr %28, align 1, !tbaa !14
  %240 = load i64, ptr %14, align 8, !tbaa !5
  store i64 %240, ptr %18, align 8, !tbaa !5
  %241 = call i32 @chgeqz_(ptr noundef nonnull %28, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %21, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %18, ptr noundef %143, ptr noundef nonnull %25) #4
  %242 = load i64, ptr %25, align 8, !tbaa !5
  %243 = icmp sgt i64 %242, -1
  br i1 %243, label %244, label %._crit_edge769

._crit_edge769:                                   ; preds = %239
  %.pre = load i64, ptr %2, align 8, !tbaa !5
  br label %250

244:                                              ; preds = %239
  store i64 %.3695, ptr %18, align 8, !tbaa !5
  %245 = load float, ptr %13, align 4, !tbaa !9
  %246 = fptosi float %245 to i64
  store i64 %246, ptr %19, align 8, !tbaa !5
  %247 = call i64 @llvm.smax.i64(i64 %.3695, i64 %246)
  %.not655 = icmp eq i64 %242, 0
  br i1 %.not655, label %258, label %248

248:                                              ; preds = %244
  %249 = load i64, ptr %2, align 8, !tbaa !5
  %.not668 = icmp sgt i64 %242, %249
  br i1 %.not668, label %250, label %.loopexit.sink.split

250:                                              ; preds = %._crit_edge769, %248
  %251 = phi i64 [ %249, %248 ], [ %.pre, %._crit_edge769 ]
  %.4704708 = phi i64 [ %247, %248 ], [ %.3695, %._crit_edge769 ]
  %252 = icmp sle i64 %242, %251
  %253 = shl i64 %251, 1
  %.not669 = icmp sgt i64 %242, %253
  %or.cond675 = or i1 %252, %.not669
  br i1 %or.cond675, label %256, label %254

254:                                              ; preds = %250
  %255 = sub nsw i64 %242, %251
  br label %.loopexit.sink.split

256:                                              ; preds = %250
  %257 = add nsw i64 %251, 6
  br label %.loopexit.sink.split

258:                                              ; preds = %244
  br i1 %56, label %259, label %.loopexit729

259:                                              ; preds = %258
  br i1 %48, label %260, label %.thread709

260:                                              ; preds = %259
  %. = select i1 %54, i8 66, i8 76
  store i8 %., ptr %28, align 1, !tbaa !14
  %261 = call i32 @ctgevc_(ptr noundef nonnull %28, ptr noundef nonnull @.str.8, ptr noundef nonnull %29, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %2, ptr noundef nonnull %20, ptr noundef nonnull %13, ptr noundef %143, ptr noundef nonnull %25) #4
  %262 = load i64, ptr %25, align 8, !tbaa !5
  %.not656 = icmp eq i64 %262, 0
  br i1 %.not656, label %268, label %265

.thread709:                                       ; preds = %259
  store i8 82, ptr %28, align 1, !tbaa !14
  %263 = call i32 @ctgevc_(ptr noundef nonnull %28, ptr noundef nonnull @.str.8, ptr noundef nonnull %29, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %2, ptr noundef nonnull %20, ptr noundef nonnull %13, ptr noundef %143, ptr noundef nonnull %25) #4
  %264 = load i64, ptr %25, align 8, !tbaa !5
  %.not656710 = icmp eq i64 %264, 0
  br i1 %.not656710, label %.thread711, label %265

265:                                              ; preds = %.thread709, %260
  %266 = load i64, ptr %2, align 8, !tbaa !5
  %267 = add nsw i64 %266, 7
  br label %.loopexit.sink.split

268:                                              ; preds = %260
  %269 = call i32 @cggbak_(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.13, ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %21, ptr noundef %15, ptr noundef %142, ptr noundef nonnull %2, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %25) #4
  %270 = load i64, ptr %25, align 8, !tbaa !5
  %.not657 = icmp eq i64 %270, 0
  %271 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %.not657, label %274, label %272

272:                                              ; preds = %268
  %273 = add nsw i64 %271, 8
  br label %.loopexit.sink.split

274:                                              ; preds = %268
  store i64 %271, ptr %18, align 8, !tbaa !5
  %.not658740 = icmp slt i64 %271, 1
  br i1 %.not658740, label %.thread711, label %.lr.ph743.preheader

.lr.ph743.preheader:                              ; preds = %274
  %275 = shl i64 %38, 3
  br label %.lr.ph743

.lr.ph743thread-pre-split:                        ; preds = %.loopexit730
  %276 = add nuw nsw i64 %.0619741, 1
  %.pr = load i64, ptr %2, align 8, !tbaa !5
  %indvar.next = add i64 %indvar, 1
  br label %.lr.ph743

.lr.ph743:                                        ; preds = %.lr.ph743.preheader, %.lr.ph743thread-pre-split
  %indvar = phi i64 [ 0, %.lr.ph743.preheader ], [ %indvar.next, %.lr.ph743thread-pre-split ]
  %277 = phi i64 [ %271, %.lr.ph743.preheader ], [ %.pr, %.lr.ph743thread-pre-split ]
  %.0619741 = phi i64 [ 1, %.lr.ph743.preheader ], [ %276, %.lr.ph743thread-pre-split ]
  %278 = mul i64 %275, %indvar
  %scevgep = getelementptr i8, ptr %9, i64 %278
  %279 = or disjoint i64 %278, 4
  %scevgep777 = getelementptr i8, ptr %9, i64 %279
  store i64 %277, ptr %19, align 8, !tbaa !5
  %.not666731 = icmp slt i64 %277, 1
  br i1 %.not666731, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph743
  %280 = mul nsw i64 %.0619741, %38
  %invariant.gep = getelementptr %struct.complex, ptr %40, i64 %280
  br label %281

281:                                              ; preds = %.lr.ph, %281
  %.0613733 = phi float [ 0.000000e+00, %.lr.ph ], [ %293, %281 ]
  %.0615732 = phi i64 [ 1, %.lr.ph ], [ %294, %281 ]
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %.0615732
  %282 = load float, ptr %gep, align 4, !tbaa !9
  %283 = call double @r_imag(ptr noundef nonnull %gep) #4
  %284 = fptrunc double %283 to float
  %285 = insertelement <2 x float> poison, float %282, i64 0
  %286 = insertelement <2 x float> %285, float %284, i64 1
  %287 = fcmp oge <2 x float> %286, zeroinitializer
  %288 = fneg <2 x float> %286
  %289 = select <2 x i1> %287, <2 x float> %286, <2 x float> %288
  %shift = shufflevector <2 x float> %289, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %290 = fadd <2 x float> %289, %shift
  %291 = extractelement <2 x float> %290, i64 0
  %292 = fcmp oge float %.0613733, %291
  %293 = select i1 %292, float %.0613733, float %291
  %294 = add nuw nsw i64 %.0615732, 1
  %295 = load i64, ptr %19, align 8, !tbaa !5
  %.not666.not = icmp slt i64 %.0615732, %295
  br i1 %.not666.not, label %281, label %._crit_edge, !llvm.loop !15

._crit_edge:                                      ; preds = %281, %.lr.ph743
  %.0613.lcssa = phi float [ 0.000000e+00, %.lr.ph743 ], [ %293, %281 ]
  %296 = fcmp olt float %.0613.lcssa, %107
  br i1 %296, label %.loopexit730, label %297

297:                                              ; preds = %._crit_edge
  %298 = fdiv float 1.000000e+00, %.0613.lcssa
  %299 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %299, ptr %19, align 8, !tbaa !5
  %.not667734 = icmp slt i64 %299, 1
  br i1 %.not667734, label %.loopexit730, label %.lr.ph737

.lr.ph737:                                        ; preds = %297
  %300 = mul nsw i64 %.0619741, %38
  %invariant.gep738 = getelementptr %struct.complex, ptr %40, i64 %300
  %min.iters.check = icmp ult i64 %299, 12
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph737
  %301 = add nsw i64 %299, -1
  %mul.result = shl i64 %301, 3
  %302 = getelementptr i8, ptr %scevgep, i64 %mul.result
  %303 = icmp ult ptr %302, %scevgep
  %mul.result779 = shl i64 %301, 3
  %mul.overflow780 = icmp ugt i64 %301, 2305843009213693951
  %304 = getelementptr i8, ptr %scevgep777, i64 %mul.result779
  %305 = icmp ult ptr %304, %scevgep777
  %306 = or i1 %305, %mul.overflow780
  %307 = or i1 %303, %306
  br i1 %307, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.scevcheck
  %n.vec = and i64 %299, 4611686018427387902
  %ind.end = or i64 %299, 1
  %broadcast.splatinsert = insertelement <2 x float> poison, float %298, i64 0
  %308 = shufflevector <2 x float> %broadcast.splatinsert, <2 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %309 = getelementptr %struct.complex, ptr %invariant.gep738, i64 %offset.idx
  %310 = load <4 x float>, ptr %309, align 4, !tbaa !13
  %interleaved.vec = fmul <4 x float> %308, %310
  store <4 x float> %interleaved.vec, ptr %309, align 4, !tbaa !13
  %index.next = add nuw i64 %index, 2
  %311 = icmp eq i64 %index.next, %n.vec
  br i1 %311, label %middle.block, label %vector.body, !llvm.loop !17

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %299, %n.vec
  br i1 %cmp.n, label %.loopexit730, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.scevcheck, %.lr.ph737
  %.1616735.ph = phi i64 [ 1, %vector.scevcheck ], [ 1, %.lr.ph737 ], [ %ind.end, %middle.block ]
  %312 = add nuw i64 %299, 1
  %313 = sub i64 %312, %.1616735.ph
  %314 = sub i64 %299, %.1616735.ph
  %xtraiter = and i64 %313, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol.preheader

scalar.ph.prol.preheader:                         ; preds = %scalar.ph.preheader
  %315 = insertelement <2 x float> poison, float %298, i64 0
  %316 = shufflevector <2 x float> %315, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.prol, %scalar.ph.prol.preheader
  %.1616735.prol = phi i64 [ %319, %scalar.ph.prol ], [ %.1616735.ph, %scalar.ph.prol.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph.prol ], [ 0, %scalar.ph.prol.preheader ]
  %gep739.prol = getelementptr %struct.complex, ptr %invariant.gep738, i64 %.1616735.prol
  %317 = load <2 x float>, ptr %gep739.prol, align 4, !tbaa !13
  %318 = fmul <2 x float> %316, %317
  store <2 x float> %318, ptr %gep739.prol, align 4, !tbaa !13
  %319 = add nuw i64 %.1616735.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol, !llvm.loop !20

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %.1616735.unr = phi i64 [ %.1616735.ph, %scalar.ph.preheader ], [ %319, %scalar.ph.prol ]
  %320 = icmp ult i64 %314, 3
  br i1 %320, label %.loopexit730, label %scalar.ph.preheader.new

scalar.ph.preheader.new:                          ; preds = %scalar.ph.prol.loopexit
  %321 = insertelement <2 x float> poison, float %298, i64 0
  %322 = shufflevector <2 x float> %321, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep820 = getelementptr i8, ptr %invariant.gep738, i64 8
  %323 = insertelement <2 x float> poison, float %298, i64 0
  %324 = shufflevector <2 x float> %323, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep822 = getelementptr i8, ptr %invariant.gep738, i64 16
  %325 = insertelement <2 x float> poison, float %298, i64 0
  %326 = shufflevector <2 x float> %325, <2 x float> poison, <2 x i32> zeroinitializer
  %327 = insertelement <2 x float> poison, float %298, i64 0
  %328 = shufflevector <2 x float> %327, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph, %scalar.ph.preheader.new
  %.1616735 = phi i64 [ %.1616735.unr, %scalar.ph.preheader.new ], [ %338, %scalar.ph ]
  %gep739 = getelementptr %struct.complex, ptr %invariant.gep738, i64 %.1616735
  %329 = load <2 x float>, ptr %gep739, align 4, !tbaa !13
  %330 = fmul <2 x float> %322, %329
  store <2 x float> %330, ptr %gep739, align 4, !tbaa !13
  %gep821 = getelementptr %struct.complex, ptr %invariant.gep820, i64 %.1616735
  %331 = load <2 x float>, ptr %gep821, align 4, !tbaa !13
  %332 = fmul <2 x float> %324, %331
  store <2 x float> %332, ptr %gep821, align 4, !tbaa !13
  %gep823 = getelementptr %struct.complex, ptr %invariant.gep822, i64 %.1616735
  %333 = load <2 x float>, ptr %gep823, align 4, !tbaa !13
  %334 = fmul <2 x float> %326, %333
  store <2 x float> %334, ptr %gep823, align 4, !tbaa !13
  %335 = add nuw i64 %.1616735, 3
  %gep739.3 = getelementptr %struct.complex, ptr %invariant.gep738, i64 %335
  %336 = load <2 x float>, ptr %gep739.3, align 4, !tbaa !13
  %337 = fmul <2 x float> %328, %336
  store <2 x float> %337, ptr %gep739.3, align 4, !tbaa !13
  %338 = add nuw i64 %.1616735, 4
  %exitcond.not.3 = icmp eq i64 %335, %299
  br i1 %exitcond.not.3, label %.loopexit730, label %scalar.ph, !llvm.loop !22

.loopexit730:                                     ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block, %297, %._crit_edge
  %339 = load i64, ptr %18, align 8, !tbaa !5
  %.not658.not = icmp slt i64 %.0619741, %339
  br i1 %.not658.not, label %.lr.ph743thread-pre-split, label %.thread711, !llvm.loop !23

.thread711:                                       ; preds = %.loopexit730, %274, %.thread709
  br i1 %54, label %340, label %.loopexit729

340:                                              ; preds = %.thread711
  %341 = call i32 @cggbak_(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.16, ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %21, ptr noundef %15, ptr noundef %142, ptr noundef nonnull %2, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %25) #4
  %342 = load i64, ptr %25, align 8, !tbaa !5
  %.not659 = icmp eq i64 %342, 0
  %343 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %.not659, label %346, label %344

344:                                              ; preds = %340
  %345 = add nsw i64 %343, 9
  br label %.loopexit.sink.split

346:                                              ; preds = %340
  store i64 %343, ptr %18, align 8, !tbaa !5
  %.not660759 = icmp slt i64 %343, 1
  br i1 %.not660759, label %.loopexit, label %.lr.ph762.preheader

.lr.ph762.preheader:                              ; preds = %346
  %347 = shl i64 %41, 3
  br label %.lr.ph762

.lr.ph762thread-pre-split:                        ; preds = %.loopexit728
  %348 = add nuw nsw i64 %.1620760, 1
  %.pr770 = load i64, ptr %2, align 8, !tbaa !5
  %indvar.next784 = add i64 %indvar783, 1
  br label %.lr.ph762

.lr.ph762:                                        ; preds = %.lr.ph762.preheader, %.lr.ph762thread-pre-split
  %indvar783 = phi i64 [ 0, %.lr.ph762.preheader ], [ %indvar.next784, %.lr.ph762thread-pre-split ]
  %349 = phi i64 [ %343, %.lr.ph762.preheader ], [ %.pr770, %.lr.ph762thread-pre-split ]
  %.1620760 = phi i64 [ 1, %.lr.ph762.preheader ], [ %348, %.lr.ph762thread-pre-split ]
  %350 = mul i64 %347, %indvar783
  %scevgep785 = getelementptr i8, ptr %11, i64 %350
  %351 = or disjoint i64 %350, 4
  %scevgep789 = getelementptr i8, ptr %11, i64 %351
  store i64 %349, ptr %19, align 8, !tbaa !5
  %.not664744 = icmp slt i64 %349, 1
  br i1 %.not664744, label %._crit_edge749, label %.lr.ph748

.lr.ph748:                                        ; preds = %.lr.ph762
  %352 = mul nsw i64 %.1620760, %41
  %invariant.gep751 = getelementptr %struct.complex, ptr %43, i64 %352
  br label %353

353:                                              ; preds = %.lr.ph748, %353
  %.1614746 = phi float [ 0.000000e+00, %.lr.ph748 ], [ %365, %353 ]
  %.2617745 = phi i64 [ 1, %.lr.ph748 ], [ %366, %353 ]
  %gep752 = getelementptr %struct.complex, ptr %invariant.gep751, i64 %.2617745
  %354 = load float, ptr %gep752, align 4, !tbaa !9
  %355 = call double @r_imag(ptr noundef nonnull %gep752) #4
  %356 = fptrunc double %355 to float
  %357 = insertelement <2 x float> poison, float %354, i64 0
  %358 = insertelement <2 x float> %357, float %356, i64 1
  %359 = fcmp oge <2 x float> %358, zeroinitializer
  %360 = fneg <2 x float> %358
  %361 = select <2 x i1> %359, <2 x float> %358, <2 x float> %360
  %shift812 = shufflevector <2 x float> %361, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %362 = fadd <2 x float> %361, %shift812
  %363 = extractelement <2 x float> %362, i64 0
  %364 = fcmp oge float %.1614746, %363
  %365 = select i1 %364, float %.1614746, float %363
  %366 = add nuw nsw i64 %.2617745, 1
  %367 = load i64, ptr %19, align 8, !tbaa !5
  %.not664.not = icmp slt i64 %.2617745, %367
  br i1 %.not664.not, label %353, label %._crit_edge749, !llvm.loop !24

._crit_edge749:                                   ; preds = %353, %.lr.ph762
  %.1614.lcssa = phi float [ 0.000000e+00, %.lr.ph762 ], [ %365, %353 ]
  %368 = fcmp olt float %.1614.lcssa, %107
  br i1 %368, label %.loopexit728, label %369

369:                                              ; preds = %._crit_edge749
  %370 = fdiv float 1.000000e+00, %.1614.lcssa
  %371 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %371, ptr %19, align 8, !tbaa !5
  %.not665753 = icmp slt i64 %371, 1
  br i1 %.not665753, label %.loopexit728, label %.lr.ph756

.lr.ph756:                                        ; preds = %369
  %372 = mul nsw i64 %.1620760, %41
  %invariant.gep757 = getelementptr %struct.complex, ptr %43, i64 %372
  %min.iters.check795 = icmp ult i64 %371, 12
  br i1 %min.iters.check795, label %scalar.ph794.preheader, label %vector.scevcheck782

vector.scevcheck782:                              ; preds = %.lr.ph756
  %373 = add nsw i64 %371, -1
  %mul.result787 = shl i64 %373, 3
  %374 = getelementptr i8, ptr %scevgep785, i64 %mul.result787
  %375 = icmp ult ptr %374, %scevgep785
  %mul.result791 = shl i64 %373, 3
  %mul.overflow792 = icmp ugt i64 %373, 2305843009213693951
  %376 = getelementptr i8, ptr %scevgep789, i64 %mul.result791
  %377 = icmp ult ptr %376, %scevgep789
  %378 = or i1 %377, %mul.overflow792
  %379 = or i1 %375, %378
  br i1 %379, label %scalar.ph794.preheader, label %vector.ph796

vector.ph796:                                     ; preds = %vector.scevcheck782
  %n.vec798 = and i64 %371, 4611686018427387902
  %ind.end799 = or i64 %371, 1
  %broadcast.splatinsert807 = insertelement <2 x float> poison, float %370, i64 0
  %380 = shufflevector <2 x float> %broadcast.splatinsert807, <2 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body801

vector.body801:                                   ; preds = %vector.body801, %vector.ph796
  %index802 = phi i64 [ 0, %vector.ph796 ], [ %index.next810, %vector.body801 ]
  %offset.idx803 = or disjoint i64 %index802, 1
  %381 = getelementptr %struct.complex, ptr %invariant.gep757, i64 %offset.idx803
  %382 = load <4 x float>, ptr %381, align 4, !tbaa !13
  %interleaved.vec809 = fmul <4 x float> %380, %382
  store <4 x float> %interleaved.vec809, ptr %381, align 4, !tbaa !13
  %index.next810 = add nuw i64 %index802, 2
  %383 = icmp eq i64 %index.next810, %n.vec798
  br i1 %383, label %middle.block793, label %vector.body801, !llvm.loop !25

middle.block793:                                  ; preds = %vector.body801
  %cmp.n811 = icmp eq i64 %371, %n.vec798
  br i1 %cmp.n811, label %.loopexit728, label %scalar.ph794.preheader

scalar.ph794.preheader:                           ; preds = %middle.block793, %vector.scevcheck782, %.lr.ph756
  %.3618754.ph = phi i64 [ 1, %vector.scevcheck782 ], [ 1, %.lr.ph756 ], [ %ind.end799, %middle.block793 ]
  %384 = add nuw i64 %371, 1
  %385 = sub i64 %384, %.3618754.ph
  %386 = sub i64 %371, %.3618754.ph
  %xtraiter814 = and i64 %385, 3
  %lcmp.mod815.not = icmp eq i64 %xtraiter814, 0
  br i1 %lcmp.mod815.not, label %scalar.ph794.prol.loopexit, label %scalar.ph794.prol.preheader

scalar.ph794.prol.preheader:                      ; preds = %scalar.ph794.preheader
  %387 = insertelement <2 x float> poison, float %370, i64 0
  %388 = shufflevector <2 x float> %387, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph794.prol

scalar.ph794.prol:                                ; preds = %scalar.ph794.prol, %scalar.ph794.prol.preheader
  %.3618754.prol = phi i64 [ %391, %scalar.ph794.prol ], [ %.3618754.ph, %scalar.ph794.prol.preheader ]
  %prol.iter816 = phi i64 [ %prol.iter816.next, %scalar.ph794.prol ], [ 0, %scalar.ph794.prol.preheader ]
  %gep758.prol = getelementptr %struct.complex, ptr %invariant.gep757, i64 %.3618754.prol
  %389 = load <2 x float>, ptr %gep758.prol, align 4, !tbaa !13
  %390 = fmul <2 x float> %388, %389
  store <2 x float> %390, ptr %gep758.prol, align 4, !tbaa !13
  %391 = add nuw i64 %.3618754.prol, 1
  %prol.iter816.next = add i64 %prol.iter816, 1
  %prol.iter816.cmp.not = icmp eq i64 %prol.iter816.next, %xtraiter814
  br i1 %prol.iter816.cmp.not, label %scalar.ph794.prol.loopexit, label %scalar.ph794.prol, !llvm.loop !26

scalar.ph794.prol.loopexit:                       ; preds = %scalar.ph794.prol, %scalar.ph794.preheader
  %.3618754.unr = phi i64 [ %.3618754.ph, %scalar.ph794.preheader ], [ %391, %scalar.ph794.prol ]
  %392 = icmp ult i64 %386, 3
  br i1 %392, label %.loopexit728, label %scalar.ph794.preheader.new

scalar.ph794.preheader.new:                       ; preds = %scalar.ph794.prol.loopexit
  %393 = insertelement <2 x float> poison, float %370, i64 0
  %394 = shufflevector <2 x float> %393, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep824 = getelementptr i8, ptr %invariant.gep757, i64 8
  %395 = insertelement <2 x float> poison, float %370, i64 0
  %396 = shufflevector <2 x float> %395, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep826 = getelementptr i8, ptr %invariant.gep757, i64 16
  %397 = insertelement <2 x float> poison, float %370, i64 0
  %398 = shufflevector <2 x float> %397, <2 x float> poison, <2 x i32> zeroinitializer
  %399 = insertelement <2 x float> poison, float %370, i64 0
  %400 = shufflevector <2 x float> %399, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph794

scalar.ph794:                                     ; preds = %scalar.ph794, %scalar.ph794.preheader.new
  %.3618754 = phi i64 [ %.3618754.unr, %scalar.ph794.preheader.new ], [ %410, %scalar.ph794 ]
  %gep758 = getelementptr %struct.complex, ptr %invariant.gep757, i64 %.3618754
  %401 = load <2 x float>, ptr %gep758, align 4, !tbaa !13
  %402 = fmul <2 x float> %394, %401
  store <2 x float> %402, ptr %gep758, align 4, !tbaa !13
  %gep825 = getelementptr %struct.complex, ptr %invariant.gep824, i64 %.3618754
  %403 = load <2 x float>, ptr %gep825, align 4, !tbaa !13
  %404 = fmul <2 x float> %396, %403
  store <2 x float> %404, ptr %gep825, align 4, !tbaa !13
  %gep827 = getelementptr %struct.complex, ptr %invariant.gep826, i64 %.3618754
  %405 = load <2 x float>, ptr %gep827, align 4, !tbaa !13
  %406 = fmul <2 x float> %398, %405
  store <2 x float> %406, ptr %gep827, align 4, !tbaa !13
  %407 = add nuw i64 %.3618754, 3
  %gep758.3 = getelementptr %struct.complex, ptr %invariant.gep757, i64 %407
  %408 = load <2 x float>, ptr %gep758.3, align 4, !tbaa !13
  %409 = fmul <2 x float> %400, %408
  store <2 x float> %409, ptr %gep758.3, align 4, !tbaa !13
  %410 = add nuw i64 %.3618754, 4
  %exitcond768.not.3 = icmp eq i64 %407, %371
  br i1 %exitcond768.not.3, label %.loopexit728, label %scalar.ph794, !llvm.loop !27

.loopexit728:                                     ; preds = %scalar.ph794.prol.loopexit, %scalar.ph794, %middle.block793, %369, %._crit_edge749
  %411 = load i64, ptr %18, align 8, !tbaa !5
  %.not660.not = icmp slt i64 %.1620760, %411
  br i1 %.not660.not, label %.lr.ph762thread-pre-split, label %.loopexit729, !llvm.loop !28

.loopexit729:                                     ; preds = %.loopexit728, %.thread711, %258
  %.pr771 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %.pr771, ptr %18, align 8, !tbaa !5
  %.not661763 = icmp slt i64 %.pr771, 1
  br i1 %.not661763, label %.loopexit, label %.lr.ph766

.lr.ph766:                                        ; preds = %.loopexit729
  %412 = fdiv float %107, %.0610
  %413 = fdiv float %107, %.0608
  br label %414

414:                                              ; preds = %.lr.ph766, %.thread718
  %.2621764 = phi i64 [ 1, %.lr.ph766 ], [ %520, %.thread718 ]
  store i64 %.2621764, ptr %19, align 8, !tbaa !5
  %415 = getelementptr inbounds %struct.complex, ptr %36, i64 %.2621764
  %416 = load float, ptr %415, align 4, !tbaa !9
  %417 = fcmp oge float %416, 0.000000e+00
  %418 = fneg float %416
  %419 = select i1 %417, float %416, float %418
  %420 = call double @r_imag(ptr noundef nonnull %415) #4
  %421 = fptrunc double %420 to float
  %422 = fcmp oge float %421, 0.000000e+00
  %423 = fneg float %421
  %424 = select i1 %422, float %421, float %423
  %425 = getelementptr inbounds %struct.complex, ptr %37, i64 %.2621764
  %426 = load float, ptr %425, align 4, !tbaa !9
  %427 = fcmp oge float %426, 0.000000e+00
  %428 = fneg float %426
  %429 = select i1 %427, float %426, float %428
  store i64 %.2621764, ptr %19, align 8, !tbaa !5
  %430 = load float, ptr %23, align 4, !tbaa !13
  %431 = load float, ptr %415, align 4, !tbaa !9
  %432 = fmul float %430, %431
  %433 = fpext float %430 to double
  %434 = call double @r_imag(ptr noundef nonnull %415) #4
  %435 = fmul double %434, %433
  %436 = fptrunc double %435 to float
  %437 = load float, ptr %24, align 4, !tbaa !13
  %438 = load float, ptr %425, align 4, !tbaa !9
  %439 = fmul float %437, %438
  %440 = fmul float %419, %104
  %441 = fcmp oge float %107, %440
  %442 = select i1 %441, float %107, float %440
  %443 = fmul float %429, %104
  %444 = fcmp oge float %436, 0.000000e+00
  %445 = fneg float %436
  %446 = select i1 %444, float %436, float %445
  %447 = fcmp olt float %446, %107
  br i1 %447, label %448, label %457

448:                                              ; preds = %414
  %449 = fcmp oge float %442, %443
  %450 = select i1 %449, float %442, float %443
  %451 = fcmp ult float %424, %450
  br i1 %451, label %457, label %452

452:                                              ; preds = %448
  %453 = fmul float %.0609, %424
  %454 = fcmp oge float %107, %453
  %455 = select i1 %454, float %107, float %453
  %456 = fdiv float %412, %455
  br label %457

457:                                              ; preds = %452, %448, %414
  %.0602 = phi float [ %456, %452 ], [ 1.000000e+00, %448 ], [ 1.000000e+00, %414 ]
  %.0594 = phi i64 [ 1, %452 ], [ 0, %448 ], [ 0, %414 ]
  %458 = fmul float %424, %104
  %459 = fcmp oge float %432, 0.000000e+00
  %460 = fneg float %432
  %461 = select i1 %459, float %432, float %460
  %462 = fcmp olt float %461, %107
  br i1 %462, label %463, label %476

463:                                              ; preds = %457
  %464 = fcmp oge float %107, %458
  %465 = select i1 %464, float %107, float %458
  %466 = fcmp oge float %465, %443
  %467 = select i1 %466, float %465, float %443
  %468 = fcmp ult float %419, %467
  br i1 %468, label %476, label %469

469:                                              ; preds = %463
  %470 = fmul float %.0609, %419
  %471 = fcmp oge float %107, %470
  %472 = select i1 %471, float %107, float %470
  %473 = fdiv float %412, %472
  %474 = fcmp oge float %.0602, %473
  %475 = select i1 %474, float %.0602, float %473
  br label %476

476:                                              ; preds = %469, %463, %457
  %.1603 = phi float [ %475, %469 ], [ %.0602, %463 ], [ %.0602, %457 ]
  %.1595 = phi i64 [ 1, %469 ], [ %.0594, %463 ], [ %.0594, %457 ]
  %477 = fcmp oge float %439, 0.000000e+00
  %478 = fneg float %439
  %479 = select i1 %477, float %439, float %478
  %480 = fcmp olt float %479, %107
  br i1 %480, label %481, label %491

481:                                              ; preds = %476
  %482 = fcmp oge float %442, %458
  %483 = select i1 %482, float %442, float %458
  %484 = fcmp ult float %429, %483
  br i1 %484, label %491, label %.thread712

.thread712:                                       ; preds = %481
  %485 = fmul float %.0607, %429
  %486 = fcmp oge float %107, %485
  %487 = select i1 %486, float %107, float %485
  %488 = fdiv float %413, %487
  %489 = fcmp oge float %.1603, %488
  %490 = select i1 %489, float %.1603, float %488
  br label %492

491:                                              ; preds = %481, %476
  %.not662 = icmp eq i64 %.1595, 0
  br i1 %.not662, label %.thread718, label %492

492:                                              ; preds = %.thread712, %491
  %.2604716 = phi float [ %490, %.thread712 ], [ %.1603, %491 ]
  %493 = fcmp oge float %461, %446
  %494 = select i1 %493, float %461, float %446
  %495 = fmul float %107, %.2604716
  %496 = fcmp oge float %494, %479
  %497 = select i1 %496, float %494, float %479
  %498 = fmul float %497, %495
  %499 = fcmp ogt float %498, 1.000000e+00
  %500 = fdiv float %.2604716, %498
  %.3605 = select i1 %499, float %500, float %.2604716
  %501 = fcmp olt float %.3605, 1.000000e+00
  br i1 %501, label %.thread718, label %502

502:                                              ; preds = %492
  store i64 %.2621764, ptr %19, align 8, !tbaa !5
  %503 = load float, ptr %415, align 4, !tbaa !9
  %504 = fmul float %.3605, %503
  %505 = load float, ptr %23, align 4, !tbaa !13
  %506 = fmul float %504, %505
  %507 = fpext float %.3605 to double
  %508 = call double @r_imag(ptr noundef nonnull %415) #4
  %509 = fmul double %508, %507
  %510 = load float, ptr %23, align 4, !tbaa !13
  %511 = fpext float %510 to double
  %512 = fmul double %509, %511
  %513 = fptrunc double %512 to float
  %514 = load float, ptr %425, align 4, !tbaa !9
  %515 = fmul float %.3605, %514
  %516 = load float, ptr %24, align 4, !tbaa !13
  %517 = fmul float %516, %515
  br label %.thread718

.thread718:                                       ; preds = %492, %491, %502
  %.0601 = phi float [ %517, %502 ], [ %439, %491 ], [ %439, %492 ]
  %.0600 = phi float [ %513, %502 ], [ %436, %491 ], [ %436, %492 ]
  %.0599 = phi float [ %506, %502 ], [ %432, %491 ], [ %432, %492 ]
  store float %.0599, ptr %415, align 4, !tbaa !9
  %518 = getelementptr inbounds %struct.complex, ptr %36, i64 %.2621764, i32 1
  store float %.0600, ptr %518, align 4, !tbaa !12
  store i64 %.2621764, ptr %19, align 8, !tbaa !5
  store float %.0601, ptr %425, align 4, !tbaa !9
  %519 = getelementptr inbounds %struct.complex, ptr %37, i64 %.2621764, i32 1
  store float 0.000000e+00, ptr %519, align 4, !tbaa !12
  %520 = add nuw nsw i64 %.2621764, 1
  %521 = load i64, ptr %18, align 8, !tbaa !5
  %.not661.not = icmp slt i64 %.2621764, %521
  br i1 %.not661.not, label %414, label %.loopexit, !llvm.loop !29

.loopexit.sink.split:                             ; preds = %248, %146, %.thread680, %.thread684, %.thread688, %236, %265, %272, %344, %254, %256
  %.sink775 = phi i64 [ %257, %256 ], [ %255, %254 ], [ %345, %344 ], [ %273, %272 ], [ %267, %265 ], [ %238, %236 ], [ %222, %.thread688 ], [ %192, %.thread684 ], [ %173, %.thread680 ], [ %148, %146 ], [ %242, %248 ]
  %.5.ph = phi i64 [ %.4704708, %256 ], [ %.4704708, %254 ], [ %247, %344 ], [ %247, %272 ], [ %247, %265 ], [ %.3695, %236 ], [ %.2691, %.thread688 ], [ %.1687, %.thread684 ], [ %.0592683, %.thread680 ], [ %59, %146 ], [ %247, %248 ]
  store i64 %.sink775, ptr %16, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.thread718, %.loopexit.sink.split, %346, %.loopexit729
  %.5 = phi i64 [ %247, %.loopexit729 ], [ %247, %346 ], [ %.5.ph, %.loopexit.sink.split ], [ %247, %.thread718 ]
  %522 = uitofp nneg i64 %.5 to float
  store float %522, ptr %13, align 4, !tbaa !9
  store float 0.000000e+00, ptr %61, align 4, !tbaa !12
  br label %523

523:                                              ; preds = %98, %.loopexit, %137, %121, %.thread678
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #4
  ret i32 0
}

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

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

declare i64 @ilaenv_(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 double @slamch_(ptr noundef) local_unnamed_addr #2

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

declare i32 @clascl_(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 @cggbal_(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 @cgeqrf_(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 @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

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 @cgghrd_(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 @chgeqz_(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 @ctgevc_(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 @cggbak_(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 double @r_imag(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"", !11, i64 0, !11, i64 4}
!11 = !{!"float", !7, i64 0}
!12 = !{!10, !11, i64 4}
!13 = !{!11, !11, i64 0}
!14 = !{!7, !7, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16, !18, !19}
!18 = !{!"llvm.loop.isvectorized", i32 1}
!19 = !{!"llvm.loop.unroll.runtime.disable"}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.unroll.disable"}
!22 = distinct !{!22, !16, !18}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16, !18, !19}
!26 = distinct !{!26, !21}
!27 = distinct !{!27, !16, !18}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}


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