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

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

%struct.complex = type { float, float }

@c__13 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__15 = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__12 = external hidden global i64, align 8
@c__14 = external hidden global i64, align 8
@c__16 = external hidden global i64, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8

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

124:                                              ; preds = %15
  %125 = load ptr, ptr %29, align 8, !tbaa !5
  %126 = getelementptr inbounds %struct.complex, ptr %125, i64 1
  %127 = getelementptr inbounds %struct.complex, ptr %126, i32 0, i32 0
  store float 1.000000e+00, ptr %127, align 4, !tbaa !11
  %128 = load ptr, ptr %29, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.complex, ptr %128, i64 1
  %130 = getelementptr inbounds %struct.complex, ptr %129, i32 0, i32 1
  store float 0.000000e+00, ptr %130, align 4, !tbaa !14
  store i32 0, ptr %16, align 4
  store i32 1, ptr %99, align 4
  br label %1917

131:                                              ; preds = %15
  %132 = load ptr, ptr %19, align 8, !tbaa !5
  %133 = load i64, ptr %132, align 8, !tbaa !9
  %134 = icmp sle i64 %133, 11
  br i1 %134, label %135, label %160

135:                                              ; preds = %131
  store i64 1, ptr %98, align 8, !tbaa !9
  %136 = load ptr, ptr %30, align 8, !tbaa !5
  %137 = load i64, ptr %136, align 8, !tbaa !9
  %138 = icmp ne i64 %137, -1
  br i1 %138, label %139, label %159

139:                                              ; preds = %135
  %140 = load ptr, ptr %17, align 8, !tbaa !5
  %141 = load ptr, ptr %18, align 8, !tbaa !5
  %142 = load ptr, ptr %19, align 8, !tbaa !5
  %143 = load ptr, ptr %20, align 8, !tbaa !5
  %144 = load ptr, ptr %21, align 8, !tbaa !5
  %145 = load ptr, ptr %22, align 8, !tbaa !5
  %146 = load i64, ptr %33, align 8, !tbaa !9
  %147 = getelementptr inbounds %struct.complex, ptr %145, i64 %146
  %148 = load ptr, ptr %23, align 8, !tbaa !5
  %149 = load ptr, ptr %24, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.complex, ptr %149, i64 1
  %151 = load ptr, ptr %25, align 8, !tbaa !5
  %152 = load ptr, ptr %26, align 8, !tbaa !5
  %153 = load ptr, ptr %27, align 8, !tbaa !5
  %154 = load i64, ptr %35, align 8, !tbaa !9
  %155 = getelementptr inbounds %struct.complex, ptr %153, i64 %154
  %156 = load ptr, ptr %28, align 8, !tbaa !5
  %157 = load ptr, ptr %31, align 8, !tbaa !5
  %158 = call i32 @clahqr_(ptr noundef %140, ptr noundef %141, ptr noundef %142, ptr noundef %143, ptr noundef %144, ptr noundef %147, ptr noundef %148, ptr noundef %150, ptr noundef %151, ptr noundef %152, ptr noundef %155, ptr noundef %156, ptr noundef %157)
  br label %159

159:                                              ; preds = %139, %135
  br label %1901

160:                                              ; preds = %131
  %161 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 0, ptr %161, align 8, !tbaa !9
  %162 = load ptr, ptr %17, align 8, !tbaa !5
  %163 = load i64, ptr %162, align 8, !tbaa !9
  %164 = icmp ne i64 %163, 0
  br i1 %164, label %165, label %167

165:                                              ; preds = %160
  %166 = getelementptr inbounds [2 x i8], ptr %94, i64 0, i64 0
  store i8 83, ptr %166, align 1, !tbaa !15
  br label %169

167:                                              ; preds = %160
  %168 = getelementptr inbounds [2 x i8], ptr %94, i64 0, i64 0
  store i8 69, ptr %168, align 1, !tbaa !15
  br label %169

169:                                              ; preds = %167, %165
  %170 = load ptr, ptr %18, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = icmp ne i64 %171, 0
  br i1 %172, label %173, label %175

173:                                              ; preds = %169
  %174 = getelementptr inbounds [2 x i8], ptr %94, i64 0, i64 1
  store i8 86, ptr %174, align 1, !tbaa !15
  br label %177

175:                                              ; preds = %169
  %176 = getelementptr inbounds [2 x i8], ptr %94, i64 0, i64 1
  store i8 78, ptr %176, align 1, !tbaa !15
  br label %177

177:                                              ; preds = %175, %173
  %178 = getelementptr inbounds [2 x i8], ptr %94, i64 0, i64 0
  %179 = load ptr, ptr %19, align 8, !tbaa !5
  %180 = load ptr, ptr %20, align 8, !tbaa !5
  %181 = load ptr, ptr %21, align 8, !tbaa !5
  %182 = load ptr, ptr %30, align 8, !tbaa !5
  %183 = call i64 @ilaenv_(ptr noundef @c__13, ptr noundef @.str, ptr noundef %178, ptr noundef %179, ptr noundef %180, ptr noundef %181, ptr noundef %182)
  store i64 %183, ptr %79, align 8, !tbaa !9
  %184 = load i64, ptr %79, align 8, !tbaa !9
  %185 = icmp sge i64 2, %184
  br i1 %185, label %186, label %187

186:                                              ; preds = %177
  br label %189

187:                                              ; preds = %177
  %188 = load i64, ptr %79, align 8, !tbaa !9
  br label %189

189:                                              ; preds = %187, %186
  %190 = phi i64 [ 2, %186 ], [ %188, %187 ]
  store i64 %190, ptr %79, align 8, !tbaa !9
  %191 = load ptr, ptr %21, align 8, !tbaa !5
  %192 = load i64, ptr %191, align 8, !tbaa !9
  %193 = load ptr, ptr %20, align 8, !tbaa !5
  %194 = load i64, ptr %193, align 8, !tbaa !9
  %195 = sub nsw i64 %192, %194
  %196 = add nsw i64 %195, 1
  store i64 %196, ptr %36, align 8, !tbaa !9
  %197 = load ptr, ptr %19, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !9
  %199 = sub nsw i64 %198, 1
  %200 = sdiv i64 %199, 3
  store i64 %200, ptr %37, align 8, !tbaa !9
  %201 = load i64, ptr %36, align 8, !tbaa !9
  %202 = load i64, ptr %37, align 8, !tbaa !9
  %203 = icmp sle i64 %201, %202
  br i1 %203, label %204, label %206

204:                                              ; preds = %189
  %205 = load i64, ptr %36, align 8, !tbaa !9
  br label %208

206:                                              ; preds = %189
  %207 = load i64, ptr %37, align 8, !tbaa !9
  br label %208

208:                                              ; preds = %206, %204
  %209 = phi i64 [ %205, %204 ], [ %207, %206 ]
  store i64 %209, ptr %36, align 8, !tbaa !9
  %210 = load i64, ptr %36, align 8, !tbaa !9
  %211 = load i64, ptr %79, align 8, !tbaa !9
  %212 = icmp sle i64 %210, %211
  br i1 %212, label %213, label %215

213:                                              ; preds = %208
  %214 = load i64, ptr %36, align 8, !tbaa !9
  br label %217

215:                                              ; preds = %208
  %216 = load i64, ptr %79, align 8, !tbaa !9
  br label %217

217:                                              ; preds = %215, %213
  %218 = phi i64 [ %214, %213 ], [ %216, %215 ]
  store i64 %218, ptr %79, align 8, !tbaa !9
  %219 = getelementptr inbounds [2 x i8], ptr %94, i64 0, i64 0
  %220 = load ptr, ptr %19, align 8, !tbaa !5
  %221 = load ptr, ptr %20, align 8, !tbaa !5
  %222 = load ptr, ptr %21, align 8, !tbaa !5
  %223 = load ptr, ptr %30, align 8, !tbaa !5
  %224 = call i64 @ilaenv_(ptr noundef @c__15, ptr noundef @.str, ptr noundef %219, ptr noundef %220, ptr noundef %221, ptr noundef %222, ptr noundef %223)
  store i64 %224, ptr %78, align 8, !tbaa !9
  %225 = load i64, ptr %78, align 8, !tbaa !9
  store i64 %225, ptr %36, align 8, !tbaa !9
  %226 = load ptr, ptr %19, align 8, !tbaa !5
  %227 = load i64, ptr %226, align 8, !tbaa !9
  %228 = add nsw i64 %227, 6
  %229 = sdiv i64 %228, 9
  store i64 %229, ptr %37, align 8, !tbaa !9
  %230 = load i64, ptr %36, align 8, !tbaa !9
  %231 = load i64, ptr %37, align 8, !tbaa !9
  %232 = icmp sle i64 %230, %231
  br i1 %232, label %233, label %235

233:                                              ; preds = %217
  %234 = load i64, ptr %36, align 8, !tbaa !9
  br label %237

235:                                              ; preds = %217
  %236 = load i64, ptr %37, align 8, !tbaa !9
  br label %237

237:                                              ; preds = %235, %233
  %238 = phi i64 [ %234, %233 ], [ %236, %235 ]
  store i64 %238, ptr %36, align 8, !tbaa !9
  %239 = load ptr, ptr %21, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  %241 = load ptr, ptr %20, align 8, !tbaa !5
  %242 = load i64, ptr %241, align 8, !tbaa !9
  %243 = sub nsw i64 %240, %242
  store i64 %243, ptr %37, align 8, !tbaa !9
  %244 = load i64, ptr %36, align 8, !tbaa !9
  %245 = load i64, ptr %37, align 8, !tbaa !9
  %246 = icmp sle i64 %244, %245
  br i1 %246, label %247, label %249

247:                                              ; preds = %237
  %248 = load i64, ptr %36, align 8, !tbaa !9
  br label %251

249:                                              ; preds = %237
  %250 = load i64, ptr %37, align 8, !tbaa !9
  br label %251

251:                                              ; preds = %249, %247
  %252 = phi i64 [ %248, %247 ], [ %250, %249 ]
  store i64 %252, ptr %78, align 8, !tbaa !9
  store i64 2, ptr %36, align 8, !tbaa !9
  %253 = load i64, ptr %78, align 8, !tbaa !9
  %254 = load i64, ptr %78, align 8, !tbaa !9
  %255 = srem i64 %254, 2
  %256 = sub nsw i64 %253, %255
  store i64 %256, ptr %37, align 8, !tbaa !9
  %257 = load i64, ptr %36, align 8, !tbaa !9
  %258 = load i64, ptr %37, align 8, !tbaa !9
  %259 = icmp sge i64 %257, %258
  br i1 %259, label %260, label %262

260:                                              ; preds = %251
  %261 = load i64, ptr %36, align 8, !tbaa !9
  br label %264

262:                                              ; preds = %251
  %263 = load i64, ptr %37, align 8, !tbaa !9
  br label %264

264:                                              ; preds = %262, %260
  %265 = phi i64 [ %261, %260 ], [ %263, %262 ]
  store i64 %265, ptr %78, align 8, !tbaa !9
  %266 = load i64, ptr %79, align 8, !tbaa !9
  %267 = add nsw i64 %266, 1
  store i64 %267, ptr %36, align 8, !tbaa !9
  %268 = load ptr, ptr %17, align 8, !tbaa !5
  %269 = load ptr, ptr %18, align 8, !tbaa !5
  %270 = load ptr, ptr %19, align 8, !tbaa !5
  %271 = load ptr, ptr %20, align 8, !tbaa !5
  %272 = load ptr, ptr %21, align 8, !tbaa !5
  %273 = load ptr, ptr %22, align 8, !tbaa !5
  %274 = load i64, ptr %33, align 8, !tbaa !9
  %275 = getelementptr inbounds %struct.complex, ptr %273, i64 %274
  %276 = load ptr, ptr %23, align 8, !tbaa !5
  %277 = load ptr, ptr %25, align 8, !tbaa !5
  %278 = load ptr, ptr %26, align 8, !tbaa !5
  %279 = load ptr, ptr %27, align 8, !tbaa !5
  %280 = load i64, ptr %35, align 8, !tbaa !9
  %281 = getelementptr inbounds %struct.complex, ptr %279, i64 %280
  %282 = load ptr, ptr %28, align 8, !tbaa !5
  %283 = load ptr, ptr %24, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.complex, ptr %283, i64 1
  %285 = load ptr, ptr %22, align 8, !tbaa !5
  %286 = load i64, ptr %33, align 8, !tbaa !9
  %287 = getelementptr inbounds %struct.complex, ptr %285, i64 %286
  %288 = load ptr, ptr %23, align 8, !tbaa !5
  %289 = load ptr, ptr %19, align 8, !tbaa !5
  %290 = load ptr, ptr %22, align 8, !tbaa !5
  %291 = load i64, ptr %33, align 8, !tbaa !9
  %292 = getelementptr inbounds %struct.complex, ptr %290, i64 %291
  %293 = load ptr, ptr %23, align 8, !tbaa !5
  %294 = load ptr, ptr %19, align 8, !tbaa !5
  %295 = load ptr, ptr %22, align 8, !tbaa !5
  %296 = load i64, ptr %33, align 8, !tbaa !9
  %297 = getelementptr inbounds %struct.complex, ptr %295, i64 %296
  %298 = load ptr, ptr %23, align 8, !tbaa !5
  %299 = load ptr, ptr %29, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.complex, ptr %299, i64 1
  %301 = call i32 @claqr3_(ptr noundef %268, ptr noundef %269, ptr noundef %270, ptr noundef %271, ptr noundef %272, ptr noundef %36, ptr noundef %275, ptr noundef %276, ptr noundef %277, ptr noundef %278, ptr noundef %281, ptr noundef %282, ptr noundef %68, ptr noundef %61, ptr noundef %284, ptr noundef %287, ptr noundef %288, ptr noundef %289, ptr noundef %292, ptr noundef %293, ptr noundef %294, ptr noundef %297, ptr noundef %298, ptr noundef %300, ptr noundef @c_n1)
  %302 = load i64, ptr %78, align 8, !tbaa !9
  %303 = mul nsw i64 %302, 3
  %304 = sdiv i64 %303, 2
  store i64 %304, ptr %36, align 8, !tbaa !9
  %305 = load ptr, ptr %29, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.complex, ptr %305, i64 1
  %307 = getelementptr inbounds %struct.complex, ptr %306, i32 0, i32 0
  %308 = load float, ptr %307, align 4, !tbaa !11
  %309 = fptosi float %308 to i64
  store i64 %309, ptr %37, align 8, !tbaa !9
  %310 = load i64, ptr %36, align 8, !tbaa !9
  %311 = load i64, ptr %37, align 8, !tbaa !9
  %312 = icmp sge i64 %310, %311
  br i1 %312, label %313, label %315

313:                                              ; preds = %264
  %314 = load i64, ptr %36, align 8, !tbaa !9
  br label %317

315:                                              ; preds = %264
  %316 = load i64, ptr %37, align 8, !tbaa !9
  br label %317

317:                                              ; preds = %315, %313
  %318 = phi i64 [ %314, %313 ], [ %316, %315 ]
  store i64 %318, ptr %98, align 8, !tbaa !9
  %319 = load ptr, ptr %30, align 8, !tbaa !5
  %320 = load i64, ptr %319, align 8, !tbaa !9
  %321 = icmp eq i64 %320, -1
  br i1 %321, label %322, label %338

322:                                              ; preds = %317
  %323 = load i64, ptr %98, align 8, !tbaa !9
  %324 = sitofp i64 %323 to float
  store float %324, ptr %41, align 4, !tbaa !16
  %325 = load float, ptr %41, align 4, !tbaa !16
  %326 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %325, ptr %326, align 4, !tbaa !11
  %327 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float 0.000000e+00, ptr %327, align 4, !tbaa !14
  %328 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %329 = load float, ptr %328, align 4, !tbaa !11
  %330 = load ptr, ptr %29, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.complex, ptr %330, i64 1
  %332 = getelementptr inbounds %struct.complex, ptr %331, i32 0, i32 0
  store float %329, ptr %332, align 4, !tbaa !11
  %333 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %334 = load float, ptr %333, align 4, !tbaa !14
  %335 = load ptr, ptr %29, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.complex, ptr %335, i64 1
  %337 = getelementptr inbounds %struct.complex, ptr %336, i32 0, i32 1
  store float %334, ptr %337, align 4, !tbaa !14
  store i32 0, ptr %16, align 4
  store i32 1, ptr %99, align 4
  br label %1917

338:                                              ; preds = %317
  %339 = getelementptr inbounds [2 x i8], ptr %94, i64 0, i64 0
  %340 = load ptr, ptr %19, align 8, !tbaa !5
  %341 = load ptr, ptr %20, align 8, !tbaa !5
  %342 = load ptr, ptr %21, align 8, !tbaa !5
  %343 = load ptr, ptr %30, align 8, !tbaa !5
  %344 = call i64 @ilaenv_(ptr noundef @c__12, ptr noundef @.str, ptr noundef %339, ptr noundef %340, ptr noundef %341, ptr noundef %342, ptr noundef %343)
  store i64 %344, ptr %84, align 8, !tbaa !9
  %345 = load i64, ptr %84, align 8, !tbaa !9
  %346 = icmp sge i64 11, %345
  br i1 %346, label %347, label %348

347:                                              ; preds = %338
  br label %350

348:                                              ; preds = %338
  %349 = load i64, ptr %84, align 8, !tbaa !9
  br label %350

350:                                              ; preds = %348, %347
  %351 = phi i64 [ 11, %347 ], [ %349, %348 ]
  store i64 %351, ptr %84, align 8, !tbaa !9
  %352 = getelementptr inbounds [2 x i8], ptr %94, i64 0, i64 0
  %353 = load ptr, ptr %19, align 8, !tbaa !5
  %354 = load ptr, ptr %20, align 8, !tbaa !5
  %355 = load ptr, ptr %21, align 8, !tbaa !5
  %356 = load ptr, ptr %30, align 8, !tbaa !5
  %357 = call i64 @ilaenv_(ptr noundef @c__14, ptr noundef @.str, ptr noundef %352, ptr noundef %353, ptr noundef %354, ptr noundef %355, ptr noundef %356)
  store i64 %357, ptr %93, align 8, !tbaa !9
  %358 = load i64, ptr %93, align 8, !tbaa !9
  %359 = icmp sge i64 0, %358
  br i1 %359, label %360, label %361

360:                                              ; preds = %350
  br label %363

361:                                              ; preds = %350
  %362 = load i64, ptr %93, align 8, !tbaa !9
  br label %363

363:                                              ; preds = %361, %360
  %364 = phi i64 [ 0, %360 ], [ %362, %361 ]
  store i64 %364, ptr %93, align 8, !tbaa !9
  %365 = getelementptr inbounds [2 x i8], ptr %94, i64 0, i64 0
  %366 = load ptr, ptr %19, align 8, !tbaa !5
  %367 = load ptr, ptr %20, align 8, !tbaa !5
  %368 = load ptr, ptr %21, align 8, !tbaa !5
  %369 = load ptr, ptr %30, align 8, !tbaa !5
  %370 = call i64 @ilaenv_(ptr noundef @c__16, ptr noundef @.str, ptr noundef %365, ptr noundef %366, ptr noundef %367, ptr noundef %368, ptr noundef %369)
  store i64 %370, ptr %88, align 8, !tbaa !9
  %371 = load i64, ptr %88, align 8, !tbaa !9
  %372 = icmp sge i64 0, %371
  br i1 %372, label %373, label %374

373:                                              ; preds = %363
  br label %376

374:                                              ; preds = %363
  %375 = load i64, ptr %88, align 8, !tbaa !9
  br label %376

376:                                              ; preds = %374, %373
  %377 = phi i64 [ 0, %373 ], [ %375, %374 ]
  store i64 %377, ptr %88, align 8, !tbaa !9
  %378 = load i64, ptr %88, align 8, !tbaa !9
  %379 = icmp sle i64 2, %378
  br i1 %379, label %380, label %381

380:                                              ; preds = %376
  br label %383

381:                                              ; preds = %376
  %382 = load i64, ptr %88, align 8, !tbaa !9
  br label %383

383:                                              ; preds = %381, %380
  %384 = phi i64 [ 2, %380 ], [ %382, %381 ]
  store i64 %384, ptr %88, align 8, !tbaa !9
  %385 = load ptr, ptr %19, align 8, !tbaa !5
  %386 = load i64, ptr %385, align 8, !tbaa !9
  %387 = sub nsw i64 %386, 1
  %388 = sdiv i64 %387, 3
  store i64 %388, ptr %36, align 8, !tbaa !9
  %389 = load ptr, ptr %30, align 8, !tbaa !5
  %390 = load i64, ptr %389, align 8, !tbaa !9
  %391 = sdiv i64 %390, 2
  store i64 %391, ptr %37, align 8, !tbaa !9
  %392 = load i64, ptr %36, align 8, !tbaa !9
  %393 = load i64, ptr %37, align 8, !tbaa !9
  %394 = icmp sle i64 %392, %393
  br i1 %394, label %395, label %397

395:                                              ; preds = %383
  %396 = load i64, ptr %36, align 8, !tbaa !9
  br label %399

397:                                              ; preds = %383
  %398 = load i64, ptr %37, align 8, !tbaa !9
  br label %399

399:                                              ; preds = %397, %395
  %400 = phi i64 [ %396, %395 ], [ %398, %397 ]
  store i64 %400, ptr %91, align 8, !tbaa !9
  %401 = load i64, ptr %91, align 8, !tbaa !9
  store i64 %401, ptr %70, align 8, !tbaa !9
  %402 = load ptr, ptr %19, align 8, !tbaa !5
  %403 = load i64, ptr %402, align 8, !tbaa !9
  %404 = add nsw i64 %403, 6
  %405 = sdiv i64 %404, 9
  store i64 %405, ptr %36, align 8, !tbaa !9
  %406 = load ptr, ptr %30, align 8, !tbaa !5
  %407 = load i64, ptr %406, align 8, !tbaa !9
  %408 = shl i64 %407, 1
  %409 = sdiv i64 %408, 3
  store i64 %409, ptr %37, align 8, !tbaa !9
  %410 = load i64, ptr %36, align 8, !tbaa !9
  %411 = load i64, ptr %37, align 8, !tbaa !9
  %412 = icmp sle i64 %410, %411
  br i1 %412, label %413, label %415

413:                                              ; preds = %399
  %414 = load i64, ptr %36, align 8, !tbaa !9
  br label %417

415:                                              ; preds = %399
  %416 = load i64, ptr %37, align 8, !tbaa !9
  br label %417

417:                                              ; preds = %415, %413
  %418 = phi i64 [ %414, %413 ], [ %416, %415 ]
  store i64 %418, ptr %90, align 8, !tbaa !9
  %419 = load i64, ptr %90, align 8, !tbaa !9
  %420 = srem i64 %419, 2
  %421 = load i64, ptr %90, align 8, !tbaa !9
  %422 = sub nsw i64 %421, %420
  store i64 %422, ptr %90, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  store i64 10, ptr %36, align 8, !tbaa !9
  %423 = load ptr, ptr %21, align 8, !tbaa !5
  %424 = load i64, ptr %423, align 8, !tbaa !9
  %425 = load ptr, ptr %20, align 8, !tbaa !5
  %426 = load i64, ptr %425, align 8, !tbaa !9
  %427 = sub nsw i64 %424, %426
  %428 = add nsw i64 %427, 1
  store i64 %428, ptr %37, align 8, !tbaa !9
  %429 = load i64, ptr %36, align 8, !tbaa !9
  %430 = load i64, ptr %37, align 8, !tbaa !9
  %431 = icmp sge i64 %429, %430
  br i1 %431, label %432, label %434

432:                                              ; preds = %417
  %433 = load i64, ptr %36, align 8, !tbaa !9
  br label %436

434:                                              ; preds = %417
  %435 = load i64, ptr %37, align 8, !tbaa !9
  br label %436

436:                                              ; preds = %434, %432
  %437 = phi i64 [ %433, %432 ], [ %435, %434 ]
  %438 = mul nsw i64 %437, 30
  store i64 %438, ptr %89, align 8, !tbaa !9
  %439 = load ptr, ptr %21, align 8, !tbaa !5
  %440 = load i64, ptr %439, align 8, !tbaa !9
  store i64 %440, ptr %83, align 8, !tbaa !9
  %441 = load i64, ptr %89, align 8, !tbaa !9
  store i64 %441, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %442

442:                                              ; preds = %1894, %436
  %443 = load i64, ptr %63, align 8, !tbaa !9
  %444 = load i64, ptr %36, align 8, !tbaa !9
  %445 = icmp sle i64 %443, %444
  br i1 %445, label %446, label %1897

446:                                              ; preds = %442
  %447 = load i64, ptr %83, align 8, !tbaa !9
  %448 = load ptr, ptr %20, align 8, !tbaa !5
  %449 = load i64, ptr %448, align 8, !tbaa !9
  %450 = icmp slt i64 %447, %449
  br i1 %450, label %451, label %452

451:                                              ; preds = %446
  br label %1900

452:                                              ; preds = %446
  %453 = load ptr, ptr %20, align 8, !tbaa !5
  %454 = load i64, ptr %453, align 8, !tbaa !9
  %455 = add nsw i64 %454, 1
  store i64 %455, ptr %37, align 8, !tbaa !9
  %456 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %456, ptr %55, align 8, !tbaa !9
  br label %457

457:                                              ; preds = %483, %452
  %458 = load i64, ptr %55, align 8, !tbaa !9
  %459 = load i64, ptr %37, align 8, !tbaa !9
  %460 = icmp sge i64 %458, %459
  br i1 %460, label %461, label %486

461:                                              ; preds = %457
  %462 = load i64, ptr %55, align 8, !tbaa !9
  %463 = load i64, ptr %55, align 8, !tbaa !9
  %464 = sub nsw i64 %463, 1
  %465 = load i64, ptr %32, align 8, !tbaa !9
  %466 = mul nsw i64 %464, %465
  %467 = add nsw i64 %462, %466
  store i64 %467, ptr %38, align 8, !tbaa !9
  %468 = load ptr, ptr %22, align 8, !tbaa !5
  %469 = load i64, ptr %38, align 8, !tbaa !9
  %470 = getelementptr inbounds %struct.complex, ptr %468, i64 %469
  %471 = getelementptr inbounds %struct.complex, ptr %470, i32 0, i32 0
  %472 = load float, ptr %471, align 4, !tbaa !11
  %473 = fcmp oeq float %472, 0.000000e+00
  br i1 %473, label %474, label %482

474:                                              ; preds = %461
  %475 = load ptr, ptr %22, align 8, !tbaa !5
  %476 = load i64, ptr %38, align 8, !tbaa !9
  %477 = getelementptr inbounds %struct.complex, ptr %475, i64 %476
  %478 = getelementptr inbounds %struct.complex, ptr %477, i32 0, i32 1
  %479 = load float, ptr %478, align 4, !tbaa !14
  %480 = fcmp oeq float %479, 0.000000e+00
  br i1 %480, label %481, label %482

481:                                              ; preds = %474
  br label %489

482:                                              ; preds = %474, %461
  br label %483

483:                                              ; preds = %482
  %484 = load i64, ptr %55, align 8, !tbaa !9
  %485 = add nsw i64 %484, -1
  store i64 %485, ptr %55, align 8, !tbaa !9
  br label %457, !llvm.loop !17

486:                                              ; preds = %457
  %487 = load ptr, ptr %20, align 8, !tbaa !5
  %488 = load i64, ptr %487, align 8, !tbaa !9
  store i64 %488, ptr %55, align 8, !tbaa !9
  br label %489

489:                                              ; preds = %486, %481
  %490 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %490, ptr %86, align 8, !tbaa !9
  %491 = load i64, ptr %83, align 8, !tbaa !9
  %492 = load i64, ptr %86, align 8, !tbaa !9
  %493 = sub nsw i64 %491, %492
  %494 = add nsw i64 %493, 1
  store i64 %494, ptr %62, align 8, !tbaa !9
  %495 = load i64, ptr %62, align 8, !tbaa !9
  %496 = load i64, ptr %91, align 8, !tbaa !9
  %497 = icmp sle i64 %495, %496
  br i1 %497, label %498, label %500

498:                                              ; preds = %489
  %499 = load i64, ptr %62, align 8, !tbaa !9
  br label %502

500:                                              ; preds = %489
  %501 = load i64, ptr %91, align 8, !tbaa !9
  br label %502

502:                                              ; preds = %500, %498
  %503 = phi i64 [ %499, %498 ], [ %501, %500 ]
  store i64 %503, ptr %96, align 8, !tbaa !9
  %504 = load i64, ptr %82, align 8, !tbaa !9
  %505 = icmp slt i64 %504, 5
  br i1 %505, label %506, label %516

506:                                              ; preds = %502
  %507 = load i64, ptr %96, align 8, !tbaa !9
  %508 = load i64, ptr %79, align 8, !tbaa !9
  %509 = icmp sle i64 %507, %508
  br i1 %509, label %510, label %512

510:                                              ; preds = %506
  %511 = load i64, ptr %96, align 8, !tbaa !9
  br label %514

512:                                              ; preds = %506
  %513 = load i64, ptr %79, align 8, !tbaa !9
  br label %514

514:                                              ; preds = %512, %510
  %515 = phi i64 [ %511, %510 ], [ %513, %512 ]
  store i64 %515, ptr %70, align 8, !tbaa !9
  br label %529

516:                                              ; preds = %502
  %517 = load i64, ptr %96, align 8, !tbaa !9
  store i64 %517, ptr %37, align 8, !tbaa !9
  %518 = load i64, ptr %70, align 8, !tbaa !9
  %519 = shl i64 %518, 1
  store i64 %519, ptr %38, align 8, !tbaa !9
  %520 = load i64, ptr %37, align 8, !tbaa !9
  %521 = load i64, ptr %38, align 8, !tbaa !9
  %522 = icmp sle i64 %520, %521
  br i1 %522, label %523, label %525

523:                                              ; preds = %516
  %524 = load i64, ptr %37, align 8, !tbaa !9
  br label %527

525:                                              ; preds = %516
  %526 = load i64, ptr %38, align 8, !tbaa !9
  br label %527

527:                                              ; preds = %525, %523
  %528 = phi i64 [ %524, %523 ], [ %526, %525 ]
  store i64 %528, ptr %70, align 8, !tbaa !9
  br label %529

529:                                              ; preds = %527, %514
  %530 = load i64, ptr %70, align 8, !tbaa !9
  %531 = load i64, ptr %91, align 8, !tbaa !9
  %532 = icmp slt i64 %530, %531
  br i1 %532, label %533, label %637

533:                                              ; preds = %529
  %534 = load i64, ptr %70, align 8, !tbaa !9
  %535 = load i64, ptr %62, align 8, !tbaa !9
  %536 = sub nsw i64 %535, 1
  %537 = icmp sge i64 %534, %536
  br i1 %537, label %538, label %540

538:                                              ; preds = %533
  %539 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %539, ptr %70, align 8, !tbaa !9
  br label %636

540:                                              ; preds = %533
  %541 = load i64, ptr %83, align 8, !tbaa !9
  %542 = load i64, ptr %70, align 8, !tbaa !9
  %543 = sub nsw i64 %541, %542
  %544 = add nsw i64 %543, 1
  store i64 %544, ptr %92, align 8, !tbaa !9
  %545 = load i64, ptr %92, align 8, !tbaa !9
  %546 = load i64, ptr %92, align 8, !tbaa !9
  %547 = sub nsw i64 %546, 1
  %548 = load i64, ptr %32, align 8, !tbaa !9
  %549 = mul nsw i64 %547, %548
  %550 = add nsw i64 %545, %549
  store i64 %550, ptr %37, align 8, !tbaa !9
  %551 = load i64, ptr %92, align 8, !tbaa !9
  %552 = sub nsw i64 %551, 1
  %553 = load i64, ptr %92, align 8, !tbaa !9
  %554 = sub nsw i64 %553, 2
  %555 = load i64, ptr %32, align 8, !tbaa !9
  %556 = mul nsw i64 %554, %555
  %557 = add nsw i64 %552, %556
  store i64 %557, ptr %38, align 8, !tbaa !9
  %558 = load ptr, ptr %22, align 8, !tbaa !5
  %559 = load i64, ptr %37, align 8, !tbaa !9
  %560 = getelementptr inbounds %struct.complex, ptr %558, i64 %559
  %561 = getelementptr inbounds %struct.complex, ptr %560, i32 0, i32 0
  %562 = load float, ptr %561, align 4, !tbaa !11
  store float %562, ptr %41, align 4, !tbaa !16
  %563 = load float, ptr %41, align 4, !tbaa !16
  %564 = fcmp oge float %563, 0.000000e+00
  br i1 %564, label %565, label %567

565:                                              ; preds = %540
  %566 = load float, ptr %41, align 4, !tbaa !16
  br label %570

567:                                              ; preds = %540
  %568 = load float, ptr %41, align 4, !tbaa !16
  %569 = fneg float %568
  br label %570

570:                                              ; preds = %567, %565
  %571 = phi float [ %566, %565 ], [ %569, %567 ]
  %572 = fpext float %571 to double
  %573 = load ptr, ptr %22, align 8, !tbaa !5
  %574 = load i64, ptr %92, align 8, !tbaa !9
  %575 = load i64, ptr %92, align 8, !tbaa !9
  %576 = sub nsw i64 %575, 1
  %577 = load i64, ptr %32, align 8, !tbaa !9
  %578 = mul nsw i64 %576, %577
  %579 = add nsw i64 %574, %578
  %580 = getelementptr inbounds %struct.complex, ptr %573, i64 %579
  %581 = call double @r_imag(ptr noundef %580)
  %582 = fptrunc double %581 to float
  store float %582, ptr %42, align 4, !tbaa !16
  %583 = load float, ptr %42, align 4, !tbaa !16
  %584 = fcmp oge float %583, 0.000000e+00
  br i1 %584, label %585, label %587

585:                                              ; preds = %570
  %586 = load float, ptr %42, align 4, !tbaa !16
  br label %590

587:                                              ; preds = %570
  %588 = load float, ptr %42, align 4, !tbaa !16
  %589 = fneg float %588
  br label %590

590:                                              ; preds = %587, %585
  %591 = phi float [ %586, %585 ], [ %589, %587 ]
  %592 = fpext float %591 to double
  %593 = fadd double %572, %592
  %594 = load ptr, ptr %22, align 8, !tbaa !5
  %595 = load i64, ptr %38, align 8, !tbaa !9
  %596 = getelementptr inbounds %struct.complex, ptr %594, i64 %595
  %597 = getelementptr inbounds %struct.complex, ptr %596, i32 0, i32 0
  %598 = load float, ptr %597, align 4, !tbaa !11
  store float %598, ptr %43, align 4, !tbaa !16
  %599 = load float, ptr %43, align 4, !tbaa !16
  %600 = fcmp oge float %599, 0.000000e+00
  br i1 %600, label %601, label %603

601:                                              ; preds = %590
  %602 = load float, ptr %43, align 4, !tbaa !16
  br label %606

603:                                              ; preds = %590
  %604 = load float, ptr %43, align 4, !tbaa !16
  %605 = fneg float %604
  br label %606

606:                                              ; preds = %603, %601
  %607 = phi float [ %602, %601 ], [ %605, %603 ]
  %608 = fpext float %607 to double
  %609 = load ptr, ptr %22, align 8, !tbaa !5
  %610 = load i64, ptr %92, align 8, !tbaa !9
  %611 = sub nsw i64 %610, 1
  %612 = load i64, ptr %92, align 8, !tbaa !9
  %613 = sub nsw i64 %612, 2
  %614 = load i64, ptr %32, align 8, !tbaa !9
  %615 = mul nsw i64 %613, %614
  %616 = add nsw i64 %611, %615
  %617 = getelementptr inbounds %struct.complex, ptr %609, i64 %616
  %618 = call double @r_imag(ptr noundef %617)
  %619 = fptrunc double %618 to float
  store float %619, ptr %44, align 4, !tbaa !16
  %620 = load float, ptr %44, align 4, !tbaa !16
  %621 = fcmp oge float %620, 0.000000e+00
  br i1 %621, label %622, label %624

622:                                              ; preds = %606
  %623 = load float, ptr %44, align 4, !tbaa !16
  br label %627

624:                                              ; preds = %606
  %625 = load float, ptr %44, align 4, !tbaa !16
  %626 = fneg float %625
  br label %627

627:                                              ; preds = %624, %622
  %628 = phi float [ %623, %622 ], [ %626, %624 ]
  %629 = fpext float %628 to double
  %630 = fadd double %608, %629
  %631 = fcmp ogt double %593, %630
  br i1 %631, label %632, label %635

632:                                              ; preds = %627
  %633 = load i64, ptr %70, align 8, !tbaa !9
  %634 = add nsw i64 %633, 1
  store i64 %634, ptr %70, align 8, !tbaa !9
  br label %635

635:                                              ; preds = %632, %627
  br label %636

636:                                              ; preds = %635, %538
  br label %637

637:                                              ; preds = %636, %529
  %638 = load i64, ptr %82, align 8, !tbaa !9
  %639 = icmp slt i64 %638, 5
  br i1 %639, label %640, label %641

640:                                              ; preds = %637
  store i64 -1, ptr %81, align 8, !tbaa !9
  br label %661

641:                                              ; preds = %637
  %642 = load i64, ptr %81, align 8, !tbaa !9
  %643 = icmp sge i64 %642, 0
  br i1 %643, label %648, label %644

644:                                              ; preds = %641
  %645 = load i64, ptr %70, align 8, !tbaa !9
  %646 = load i64, ptr %96, align 8, !tbaa !9
  %647 = icmp sge i64 %645, %646
  br i1 %647, label %648, label %660

648:                                              ; preds = %644, %641
  %649 = load i64, ptr %81, align 8, !tbaa !9
  %650 = add nsw i64 %649, 1
  store i64 %650, ptr %81, align 8, !tbaa !9
  %651 = load i64, ptr %70, align 8, !tbaa !9
  %652 = load i64, ptr %81, align 8, !tbaa !9
  %653 = sub nsw i64 %651, %652
  %654 = icmp slt i64 %653, 2
  br i1 %654, label %655, label %656

655:                                              ; preds = %648
  store i64 0, ptr %81, align 8, !tbaa !9
  br label %656

656:                                              ; preds = %655, %648
  %657 = load i64, ptr %81, align 8, !tbaa !9
  %658 = load i64, ptr %70, align 8, !tbaa !9
  %659 = sub nsw i64 %658, %657
  store i64 %659, ptr %70, align 8, !tbaa !9
  br label %660

660:                                              ; preds = %656, %644
  br label %661

661:                                              ; preds = %660, %640
  %662 = load ptr, ptr %19, align 8, !tbaa !5
  %663 = load i64, ptr %662, align 8, !tbaa !9
  %664 = load i64, ptr %70, align 8, !tbaa !9
  %665 = sub nsw i64 %663, %664
  %666 = add nsw i64 %665, 1
  store i64 %666, ptr %67, align 8, !tbaa !9
  %667 = load i64, ptr %70, align 8, !tbaa !9
  %668 = add nsw i64 %667, 1
  store i64 %668, ptr %65, align 8, !tbaa !9
  %669 = load ptr, ptr %19, align 8, !tbaa !5
  %670 = load i64, ptr %669, align 8, !tbaa !9
  %671 = load i64, ptr %70, align 8, !tbaa !9
  %672 = sub nsw i64 %670, %671
  %673 = sub nsw i64 %672, 1
  %674 = load i64, ptr %65, align 8, !tbaa !9
  %675 = sub nsw i64 %673, %674
  %676 = add nsw i64 %675, 1
  store i64 %676, ptr %75, align 8, !tbaa !9
  %677 = load i64, ptr %70, align 8, !tbaa !9
  %678 = add nsw i64 %677, 2
  store i64 %678, ptr %80, align 8, !tbaa !9
  %679 = load ptr, ptr %19, align 8, !tbaa !5
  %680 = load i64, ptr %679, align 8, !tbaa !9
  %681 = load i64, ptr %70, align 8, !tbaa !9
  %682 = sub nsw i64 %680, %681
  %683 = load i64, ptr %80, align 8, !tbaa !9
  %684 = sub nsw i64 %682, %683
  %685 = add nsw i64 %684, 1
  store i64 %685, ptr %76, align 8, !tbaa !9
  %686 = load ptr, ptr %17, align 8, !tbaa !5
  %687 = load ptr, ptr %18, align 8, !tbaa !5
  %688 = load ptr, ptr %19, align 8, !tbaa !5
  %689 = load ptr, ptr %22, align 8, !tbaa !5
  %690 = load i64, ptr %33, align 8, !tbaa !9
  %691 = getelementptr inbounds %struct.complex, ptr %689, i64 %690
  %692 = load ptr, ptr %23, align 8, !tbaa !5
  %693 = load ptr, ptr %25, align 8, !tbaa !5
  %694 = load ptr, ptr %26, align 8, !tbaa !5
  %695 = load ptr, ptr %27, align 8, !tbaa !5
  %696 = load i64, ptr %35, align 8, !tbaa !9
  %697 = getelementptr inbounds %struct.complex, ptr %695, i64 %696
  %698 = load ptr, ptr %28, align 8, !tbaa !5
  %699 = load ptr, ptr %24, align 8, !tbaa !5
  %700 = getelementptr inbounds %struct.complex, ptr %699, i64 1
  %701 = load ptr, ptr %22, align 8, !tbaa !5
  %702 = load i64, ptr %67, align 8, !tbaa !9
  %703 = load i64, ptr %32, align 8, !tbaa !9
  %704 = add nsw i64 %702, %703
  %705 = getelementptr inbounds %struct.complex, ptr %701, i64 %704
  %706 = load ptr, ptr %23, align 8, !tbaa !5
  %707 = load ptr, ptr %22, align 8, !tbaa !5
  %708 = load i64, ptr %67, align 8, !tbaa !9
  %709 = load i64, ptr %65, align 8, !tbaa !9
  %710 = load i64, ptr %32, align 8, !tbaa !9
  %711 = mul nsw i64 %709, %710
  %712 = add nsw i64 %708, %711
  %713 = getelementptr inbounds %struct.complex, ptr %707, i64 %712
  %714 = load ptr, ptr %23, align 8, !tbaa !5
  %715 = load ptr, ptr %22, align 8, !tbaa !5
  %716 = load i64, ptr %80, align 8, !tbaa !9
  %717 = load i64, ptr %32, align 8, !tbaa !9
  %718 = add nsw i64 %716, %717
  %719 = getelementptr inbounds %struct.complex, ptr %715, i64 %718
  %720 = load ptr, ptr %23, align 8, !tbaa !5
  %721 = load ptr, ptr %29, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.complex, ptr %721, i64 1
  %723 = load ptr, ptr %30, align 8, !tbaa !5
  %724 = call i32 @claqr3_(ptr noundef %686, ptr noundef %687, ptr noundef %688, ptr noundef %86, ptr noundef %83, ptr noundef %70, ptr noundef %691, ptr noundef %692, ptr noundef %693, ptr noundef %694, ptr noundef %697, ptr noundef %698, ptr noundef %68, ptr noundef %61, ptr noundef %700, ptr noundef %705, ptr noundef %706, ptr noundef %75, ptr noundef %713, ptr noundef %714, ptr noundef %76, ptr noundef %719, ptr noundef %720, ptr noundef %722, ptr noundef %723)
  %725 = load i64, ptr %61, align 8, !tbaa !9
  %726 = load i64, ptr %83, align 8, !tbaa !9
  %727 = sub nsw i64 %726, %725
  store i64 %727, ptr %83, align 8, !tbaa !9
  %728 = load i64, ptr %83, align 8, !tbaa !9
  %729 = load i64, ptr %68, align 8, !tbaa !9
  %730 = sub nsw i64 %728, %729
  %731 = add nsw i64 %730, 1
  store i64 %731, ptr %64, align 8, !tbaa !9
  %732 = load i64, ptr %61, align 8, !tbaa !9
  %733 = icmp eq i64 %732, 0
  br i1 %733, label %756, label %734

734:                                              ; preds = %661
  %735 = load i64, ptr %61, align 8, !tbaa !9
  %736 = mul nsw i64 %735, 100
  %737 = load i64, ptr %70, align 8, !tbaa !9
  %738 = load i64, ptr %93, align 8, !tbaa !9
  %739 = mul nsw i64 %737, %738
  %740 = icmp sle i64 %736, %739
  br i1 %740, label %741, label %1886

741:                                              ; preds = %734
  %742 = load i64, ptr %83, align 8, !tbaa !9
  %743 = load i64, ptr %86, align 8, !tbaa !9
  %744 = sub nsw i64 %742, %743
  %745 = add nsw i64 %744, 1
  %746 = load i64, ptr %84, align 8, !tbaa !9
  %747 = load i64, ptr %91, align 8, !tbaa !9
  %748 = icmp sle i64 %746, %747
  br i1 %748, label %749, label %751

749:                                              ; preds = %741
  %750 = load i64, ptr %84, align 8, !tbaa !9
  br label %753

751:                                              ; preds = %741
  %752 = load i64, ptr %91, align 8, !tbaa !9
  br label %753

753:                                              ; preds = %751, %749
  %754 = phi i64 [ %750, %749 ], [ %752, %751 ]
  %755 = icmp sgt i64 %745, %754
  br i1 %755, label %756, label %1886

756:                                              ; preds = %753, %661
  store i64 2, ptr %39, align 8, !tbaa !9
  %757 = load i64, ptr %83, align 8, !tbaa !9
  %758 = load i64, ptr %86, align 8, !tbaa !9
  %759 = sub nsw i64 %757, %758
  store i64 %759, ptr %40, align 8, !tbaa !9
  %760 = load i64, ptr %90, align 8, !tbaa !9
  %761 = load i64, ptr %78, align 8, !tbaa !9
  %762 = icmp sle i64 %760, %761
  br i1 %762, label %763, label %765

763:                                              ; preds = %756
  %764 = load i64, ptr %90, align 8, !tbaa !9
  br label %767

765:                                              ; preds = %756
  %766 = load i64, ptr %78, align 8, !tbaa !9
  br label %767

767:                                              ; preds = %765, %763
  %768 = phi i64 [ %764, %763 ], [ %766, %765 ]
  store i64 %768, ptr %37, align 8, !tbaa !9
  %769 = load i64, ptr %39, align 8, !tbaa !9
  %770 = load i64, ptr %40, align 8, !tbaa !9
  %771 = icmp sge i64 %769, %770
  br i1 %771, label %772, label %774

772:                                              ; preds = %767
  %773 = load i64, ptr %39, align 8, !tbaa !9
  br label %776

774:                                              ; preds = %767
  %775 = load i64, ptr %40, align 8, !tbaa !9
  br label %776

776:                                              ; preds = %774, %772
  %777 = phi i64 [ %773, %772 ], [ %775, %774 ]
  store i64 %777, ptr %38, align 8, !tbaa !9
  %778 = load i64, ptr %37, align 8, !tbaa !9
  %779 = load i64, ptr %38, align 8, !tbaa !9
  %780 = icmp sle i64 %778, %779
  br i1 %780, label %781, label %783

781:                                              ; preds = %776
  %782 = load i64, ptr %37, align 8, !tbaa !9
  br label %785

783:                                              ; preds = %776
  %784 = load i64, ptr %38, align 8, !tbaa !9
  br label %785

785:                                              ; preds = %783, %781
  %786 = phi i64 [ %782, %781 ], [ %784, %783 ]
  store i64 %786, ptr %69, align 8, !tbaa !9
  %787 = load i64, ptr %69, align 8, !tbaa !9
  %788 = srem i64 %787, 2
  %789 = load i64, ptr %69, align 8, !tbaa !9
  %790 = sub nsw i64 %789, %788
  store i64 %790, ptr %69, align 8, !tbaa !9
  %791 = load i64, ptr %82, align 8, !tbaa !9
  %792 = srem i64 %791, 6
  %793 = icmp eq i64 %792, 0
  br i1 %793, label %794, label %908

794:                                              ; preds = %785
  %795 = load i64, ptr %83, align 8, !tbaa !9
  %796 = load i64, ptr %69, align 8, !tbaa !9
  %797 = sub nsw i64 %795, %796
  %798 = add nsw i64 %797, 1
  store i64 %798, ptr %64, align 8, !tbaa !9
  %799 = load i64, ptr %64, align 8, !tbaa !9
  %800 = add nsw i64 %799, 1
  store i64 %800, ptr %37, align 8, !tbaa !9
  %801 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %801, ptr %54, align 8, !tbaa !9
  br label %802

802:                                              ; preds = %904, %794
  %803 = load i64, ptr %54, align 8, !tbaa !9
  %804 = load i64, ptr %37, align 8, !tbaa !9
  %805 = icmp sge i64 %803, %804
  br i1 %805, label %806, label %907

806:                                              ; preds = %802
  %807 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %807, ptr %38, align 8, !tbaa !9
  %808 = load i64, ptr %54, align 8, !tbaa !9
  %809 = load i64, ptr %54, align 8, !tbaa !9
  %810 = load i64, ptr %32, align 8, !tbaa !9
  %811 = mul nsw i64 %809, %810
  %812 = add nsw i64 %808, %811
  store i64 %812, ptr %39, align 8, !tbaa !9
  %813 = load i64, ptr %54, align 8, !tbaa !9
  %814 = load i64, ptr %54, align 8, !tbaa !9
  %815 = sub nsw i64 %814, 1
  %816 = load i64, ptr %32, align 8, !tbaa !9
  %817 = mul nsw i64 %815, %816
  %818 = add nsw i64 %813, %817
  store i64 %818, ptr %40, align 8, !tbaa !9
  %819 = load ptr, ptr %22, align 8, !tbaa !5
  %820 = load i64, ptr %40, align 8, !tbaa !9
  %821 = getelementptr inbounds %struct.complex, ptr %819, i64 %820
  %822 = getelementptr inbounds %struct.complex, ptr %821, i32 0, i32 0
  %823 = load float, ptr %822, align 4, !tbaa !11
  store float %823, ptr %41, align 4, !tbaa !16
  %824 = load float, ptr %41, align 4, !tbaa !16
  %825 = fcmp oge float %824, 0.000000e+00
  br i1 %825, label %826, label %828

826:                                              ; preds = %806
  %827 = load float, ptr %41, align 4, !tbaa !16
  br label %831

828:                                              ; preds = %806
  %829 = load float, ptr %41, align 4, !tbaa !16
  %830 = fneg float %829
  br label %831

831:                                              ; preds = %828, %826
  %832 = phi float [ %827, %826 ], [ %830, %828 ]
  %833 = fpext float %832 to double
  %834 = load ptr, ptr %22, align 8, !tbaa !5
  %835 = load i64, ptr %54, align 8, !tbaa !9
  %836 = load i64, ptr %54, align 8, !tbaa !9
  %837 = sub nsw i64 %836, 1
  %838 = load i64, ptr %32, align 8, !tbaa !9
  %839 = mul nsw i64 %837, %838
  %840 = add nsw i64 %835, %839
  %841 = getelementptr inbounds %struct.complex, ptr %834, i64 %840
  %842 = call double @r_imag(ptr noundef %841)
  %843 = fptrunc double %842 to float
  store float %843, ptr %42, align 4, !tbaa !16
  %844 = load float, ptr %42, align 4, !tbaa !16
  %845 = fcmp oge float %844, 0.000000e+00
  br i1 %845, label %846, label %848

846:                                              ; preds = %831
  %847 = load float, ptr %42, align 4, !tbaa !16
  br label %851

848:                                              ; preds = %831
  %849 = load float, ptr %42, align 4, !tbaa !16
  %850 = fneg float %849
  br label %851

851:                                              ; preds = %848, %846
  %852 = phi float [ %847, %846 ], [ %850, %848 ]
  %853 = fpext float %852 to double
  %854 = fadd double %833, %853
  %855 = fmul double %854, 7.500000e-01
  %856 = fptrunc double %855 to float
  store float %856, ptr %43, align 4, !tbaa !16
  %857 = load ptr, ptr %22, align 8, !tbaa !5
  %858 = load i64, ptr %39, align 8, !tbaa !9
  %859 = getelementptr inbounds %struct.complex, ptr %857, i64 %858
  %860 = getelementptr inbounds %struct.complex, ptr %859, i32 0, i32 0
  %861 = load float, ptr %860, align 4, !tbaa !11
  %862 = load float, ptr %43, align 4, !tbaa !16
  %863 = fadd float %861, %862
  %864 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %863, ptr %864, align 4, !tbaa !11
  %865 = load ptr, ptr %22, align 8, !tbaa !5
  %866 = load i64, ptr %39, align 8, !tbaa !9
  %867 = getelementptr inbounds %struct.complex, ptr %865, i64 %866
  %868 = getelementptr inbounds %struct.complex, ptr %867, i32 0, i32 1
  %869 = load float, ptr %868, align 4, !tbaa !14
  %870 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %869, ptr %870, align 4, !tbaa !14
  %871 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %872 = load float, ptr %871, align 4, !tbaa !11
  %873 = load ptr, ptr %24, align 8, !tbaa !5
  %874 = load i64, ptr %38, align 8, !tbaa !9
  %875 = getelementptr inbounds %struct.complex, ptr %873, i64 %874
  %876 = getelementptr inbounds %struct.complex, ptr %875, i32 0, i32 0
  store float %872, ptr %876, align 4, !tbaa !11
  %877 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %878 = load float, ptr %877, align 4, !tbaa !14
  %879 = load ptr, ptr %24, align 8, !tbaa !5
  %880 = load i64, ptr %38, align 8, !tbaa !9
  %881 = getelementptr inbounds %struct.complex, ptr %879, i64 %880
  %882 = getelementptr inbounds %struct.complex, ptr %881, i32 0, i32 1
  store float %878, ptr %882, align 4, !tbaa !14
  %883 = load i64, ptr %54, align 8, !tbaa !9
  %884 = sub nsw i64 %883, 1
  store i64 %884, ptr %38, align 8, !tbaa !9
  %885 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %885, ptr %39, align 8, !tbaa !9
  %886 = load ptr, ptr %24, align 8, !tbaa !5
  %887 = load i64, ptr %39, align 8, !tbaa !9
  %888 = getelementptr inbounds %struct.complex, ptr %886, i64 %887
  %889 = getelementptr inbounds %struct.complex, ptr %888, i32 0, i32 0
  %890 = load float, ptr %889, align 4, !tbaa !11
  %891 = load ptr, ptr %24, align 8, !tbaa !5
  %892 = load i64, ptr %38, align 8, !tbaa !9
  %893 = getelementptr inbounds %struct.complex, ptr %891, i64 %892
  %894 = getelementptr inbounds %struct.complex, ptr %893, i32 0, i32 0
  store float %890, ptr %894, align 4, !tbaa !11
  %895 = load ptr, ptr %24, align 8, !tbaa !5
  %896 = load i64, ptr %39, align 8, !tbaa !9
  %897 = getelementptr inbounds %struct.complex, ptr %895, i64 %896
  %898 = getelementptr inbounds %struct.complex, ptr %897, i32 0, i32 1
  %899 = load float, ptr %898, align 4, !tbaa !14
  %900 = load ptr, ptr %24, align 8, !tbaa !5
  %901 = load i64, ptr %38, align 8, !tbaa !9
  %902 = getelementptr inbounds %struct.complex, ptr %900, i64 %901
  %903 = getelementptr inbounds %struct.complex, ptr %902, i32 0, i32 1
  store float %899, ptr %903, align 4, !tbaa !14
  br label %904

904:                                              ; preds = %851
  %905 = load i64, ptr %54, align 8, !tbaa !9
  %906 = add nsw i64 %905, -2
  store i64 %906, ptr %54, align 8, !tbaa !9
  br label %802, !llvm.loop !19

907:                                              ; preds = %802
  br label %1620

908:                                              ; preds = %785
  %909 = load i64, ptr %83, align 8, !tbaa !9
  %910 = load i64, ptr %64, align 8, !tbaa !9
  %911 = sub nsw i64 %909, %910
  %912 = add nsw i64 %911, 1
  %913 = load i64, ptr %69, align 8, !tbaa !9
  %914 = sdiv i64 %913, 2
  %915 = icmp sle i64 %912, %914
  br i1 %915, label %916, label %1465

916:                                              ; preds = %908
  %917 = load i64, ptr %83, align 8, !tbaa !9
  %918 = load i64, ptr %69, align 8, !tbaa !9
  %919 = sub nsw i64 %917, %918
  %920 = add nsw i64 %919, 1
  store i64 %920, ptr %64, align 8, !tbaa !9
  %921 = load ptr, ptr %19, align 8, !tbaa !5
  %922 = load i64, ptr %921, align 8, !tbaa !9
  %923 = load i64, ptr %69, align 8, !tbaa !9
  %924 = sub nsw i64 %922, %923
  %925 = add nsw i64 %924, 1
  store i64 %925, ptr %65, align 8, !tbaa !9
  %926 = load ptr, ptr %22, align 8, !tbaa !5
  %927 = load i64, ptr %64, align 8, !tbaa !9
  %928 = load i64, ptr %64, align 8, !tbaa !9
  %929 = load i64, ptr %32, align 8, !tbaa !9
  %930 = mul nsw i64 %928, %929
  %931 = add nsw i64 %927, %930
  %932 = getelementptr inbounds %struct.complex, ptr %926, i64 %931
  %933 = load ptr, ptr %23, align 8, !tbaa !5
  %934 = load ptr, ptr %22, align 8, !tbaa !5
  %935 = load i64, ptr %65, align 8, !tbaa !9
  %936 = load i64, ptr %32, align 8, !tbaa !9
  %937 = add nsw i64 %935, %936
  %938 = getelementptr inbounds %struct.complex, ptr %934, i64 %937
  %939 = load ptr, ptr %23, align 8, !tbaa !5
  %940 = call i32 @clacpy_(ptr noundef @.str.1, ptr noundef %69, ptr noundef %69, ptr noundef %932, ptr noundef %933, ptr noundef %938, ptr noundef %939)
  %941 = load i64, ptr %69, align 8, !tbaa !9
  %942 = load i64, ptr %84, align 8, !tbaa !9
  %943 = icmp sgt i64 %941, %942
  br i1 %943, label %944, label %959

944:                                              ; preds = %916
  %945 = load ptr, ptr %22, align 8, !tbaa !5
  %946 = load i64, ptr %65, align 8, !tbaa !9
  %947 = load i64, ptr %32, align 8, !tbaa !9
  %948 = add nsw i64 %946, %947
  %949 = getelementptr inbounds %struct.complex, ptr %945, i64 %948
  %950 = load ptr, ptr %23, align 8, !tbaa !5
  %951 = load ptr, ptr %24, align 8, !tbaa !5
  %952 = load i64, ptr %64, align 8, !tbaa !9
  %953 = getelementptr inbounds %struct.complex, ptr %951, i64 %952
  %954 = getelementptr inbounds [1 x %struct.complex], ptr %87, i64 0, i64 0
  %955 = load ptr, ptr %29, align 8, !tbaa !5
  %956 = getelementptr inbounds %struct.complex, ptr %955, i64 1
  %957 = load ptr, ptr %30, align 8, !tbaa !5
  %958 = call i32 @claqr4_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %69, ptr noundef @c__1, ptr noundef %69, ptr noundef %949, ptr noundef %950, ptr noundef %953, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %954, ptr noundef @c__1, ptr noundef %956, ptr noundef %957, ptr noundef %73)
  br label %971

959:                                              ; preds = %916
  %960 = load ptr, ptr %22, align 8, !tbaa !5
  %961 = load i64, ptr %65, align 8, !tbaa !9
  %962 = load i64, ptr %32, align 8, !tbaa !9
  %963 = add nsw i64 %961, %962
  %964 = getelementptr inbounds %struct.complex, ptr %960, i64 %963
  %965 = load ptr, ptr %23, align 8, !tbaa !5
  %966 = load ptr, ptr %24, align 8, !tbaa !5
  %967 = load i64, ptr %64, align 8, !tbaa !9
  %968 = getelementptr inbounds %struct.complex, ptr %966, i64 %967
  %969 = getelementptr inbounds [1 x %struct.complex], ptr %87, i64 0, i64 0
  %970 = call i32 @clahqr_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %69, ptr noundef @c__1, ptr noundef %69, ptr noundef %964, ptr noundef %965, ptr noundef %968, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %969, ptr noundef @c__1, ptr noundef %73)
  br label %971

971:                                              ; preds = %959, %944
  %972 = load i64, ptr %73, align 8, !tbaa !9
  %973 = load i64, ptr %64, align 8, !tbaa !9
  %974 = add nsw i64 %973, %972
  store i64 %974, ptr %64, align 8, !tbaa !9
  %975 = load i64, ptr %64, align 8, !tbaa !9
  %976 = load i64, ptr %83, align 8, !tbaa !9
  %977 = icmp sge i64 %975, %976
  br i1 %977, label %978, label %1464

978:                                              ; preds = %971
  %979 = load i64, ptr %83, align 8, !tbaa !9
  %980 = sub nsw i64 %979, 1
  %981 = load i64, ptr %83, align 8, !tbaa !9
  %982 = sub nsw i64 %981, 1
  %983 = load i64, ptr %32, align 8, !tbaa !9
  %984 = mul nsw i64 %982, %983
  %985 = add nsw i64 %980, %984
  store i64 %985, ptr %37, align 8, !tbaa !9
  %986 = load i64, ptr %83, align 8, !tbaa !9
  %987 = load i64, ptr %83, align 8, !tbaa !9
  %988 = sub nsw i64 %987, 1
  %989 = load i64, ptr %32, align 8, !tbaa !9
  %990 = mul nsw i64 %988, %989
  %991 = add nsw i64 %986, %990
  store i64 %991, ptr %38, align 8, !tbaa !9
  %992 = load i64, ptr %83, align 8, !tbaa !9
  %993 = sub nsw i64 %992, 1
  %994 = load i64, ptr %83, align 8, !tbaa !9
  %995 = load i64, ptr %32, align 8, !tbaa !9
  %996 = mul nsw i64 %994, %995
  %997 = add nsw i64 %993, %996
  store i64 %997, ptr %39, align 8, !tbaa !9
  %998 = load i64, ptr %83, align 8, !tbaa !9
  %999 = load i64, ptr %83, align 8, !tbaa !9
  %1000 = load i64, ptr %32, align 8, !tbaa !9
  %1001 = mul nsw i64 %999, %1000
  %1002 = add nsw i64 %998, %1001
  store i64 %1002, ptr %40, align 8, !tbaa !9
  %1003 = load ptr, ptr %22, align 8, !tbaa !5
  %1004 = load i64, ptr %37, align 8, !tbaa !9
  %1005 = getelementptr inbounds %struct.complex, ptr %1003, i64 %1004
  %1006 = getelementptr inbounds %struct.complex, ptr %1005, i32 0, i32 0
  %1007 = load float, ptr %1006, align 4, !tbaa !11
  store float %1007, ptr %41, align 4, !tbaa !16
  %1008 = load float, ptr %41, align 4, !tbaa !16
  %1009 = fcmp oge float %1008, 0.000000e+00
  br i1 %1009, label %1010, label %1012

1010:                                             ; preds = %978
  %1011 = load float, ptr %41, align 4, !tbaa !16
  br label %1015

1012:                                             ; preds = %978
  %1013 = load float, ptr %41, align 4, !tbaa !16
  %1014 = fneg float %1013
  br label %1015

1015:                                             ; preds = %1012, %1010
  %1016 = phi float [ %1011, %1010 ], [ %1014, %1012 ]
  %1017 = fpext float %1016 to double
  %1018 = load ptr, ptr %22, align 8, !tbaa !5
  %1019 = load i64, ptr %83, align 8, !tbaa !9
  %1020 = sub nsw i64 %1019, 1
  %1021 = load i64, ptr %83, align 8, !tbaa !9
  %1022 = sub nsw i64 %1021, 1
  %1023 = load i64, ptr %32, align 8, !tbaa !9
  %1024 = mul nsw i64 %1022, %1023
  %1025 = add nsw i64 %1020, %1024
  %1026 = getelementptr inbounds %struct.complex, ptr %1018, i64 %1025
  %1027 = call double @r_imag(ptr noundef %1026)
  %1028 = fptrunc double %1027 to float
  store float %1028, ptr %42, align 4, !tbaa !16
  %1029 = load float, ptr %42, align 4, !tbaa !16
  %1030 = fcmp oge float %1029, 0.000000e+00
  br i1 %1030, label %1031, label %1033

1031:                                             ; preds = %1015
  %1032 = load float, ptr %42, align 4, !tbaa !16
  br label %1036

1033:                                             ; preds = %1015
  %1034 = load float, ptr %42, align 4, !tbaa !16
  %1035 = fneg float %1034
  br label %1036

1036:                                             ; preds = %1033, %1031
  %1037 = phi float [ %1032, %1031 ], [ %1035, %1033 ]
  %1038 = fpext float %1037 to double
  %1039 = fadd double %1017, %1038
  %1040 = load ptr, ptr %22, align 8, !tbaa !5
  %1041 = load i64, ptr %38, align 8, !tbaa !9
  %1042 = getelementptr inbounds %struct.complex, ptr %1040, i64 %1041
  %1043 = getelementptr inbounds %struct.complex, ptr %1042, i32 0, i32 0
  %1044 = load float, ptr %1043, align 4, !tbaa !11
  store float %1044, ptr %43, align 4, !tbaa !16
  %1045 = load float, ptr %43, align 4, !tbaa !16
  %1046 = fcmp oge float %1045, 0.000000e+00
  br i1 %1046, label %1047, label %1049

1047:                                             ; preds = %1036
  %1048 = load float, ptr %43, align 4, !tbaa !16
  br label %1052

1049:                                             ; preds = %1036
  %1050 = load float, ptr %43, align 4, !tbaa !16
  %1051 = fneg float %1050
  br label %1052

1052:                                             ; preds = %1049, %1047
  %1053 = phi float [ %1048, %1047 ], [ %1051, %1049 ]
  %1054 = fpext float %1053 to double
  %1055 = load ptr, ptr %22, align 8, !tbaa !5
  %1056 = load i64, ptr %83, align 8, !tbaa !9
  %1057 = load i64, ptr %83, align 8, !tbaa !9
  %1058 = sub nsw i64 %1057, 1
  %1059 = load i64, ptr %32, align 8, !tbaa !9
  %1060 = mul nsw i64 %1058, %1059
  %1061 = add nsw i64 %1056, %1060
  %1062 = getelementptr inbounds %struct.complex, ptr %1055, i64 %1061
  %1063 = call double @r_imag(ptr noundef %1062)
  %1064 = fptrunc double %1063 to float
  store float %1064, ptr %44, align 4, !tbaa !16
  %1065 = load float, ptr %44, align 4, !tbaa !16
  %1066 = fcmp oge float %1065, 0.000000e+00
  br i1 %1066, label %1067, label %1069

1067:                                             ; preds = %1052
  %1068 = load float, ptr %44, align 4, !tbaa !16
  br label %1072

1069:                                             ; preds = %1052
  %1070 = load float, ptr %44, align 4, !tbaa !16
  %1071 = fneg float %1070
  br label %1072

1072:                                             ; preds = %1069, %1067
  %1073 = phi float [ %1068, %1067 ], [ %1071, %1069 ]
  %1074 = fpext float %1073 to double
  %1075 = fadd double %1054, %1074
  %1076 = fadd double %1039, %1075
  %1077 = load ptr, ptr %22, align 8, !tbaa !5
  %1078 = load i64, ptr %39, align 8, !tbaa !9
  %1079 = getelementptr inbounds %struct.complex, ptr %1077, i64 %1078
  %1080 = getelementptr inbounds %struct.complex, ptr %1079, i32 0, i32 0
  %1081 = load float, ptr %1080, align 4, !tbaa !11
  store float %1081, ptr %45, align 4, !tbaa !16
  %1082 = load float, ptr %45, align 4, !tbaa !16
  %1083 = fcmp oge float %1082, 0.000000e+00
  br i1 %1083, label %1084, label %1086

1084:                                             ; preds = %1072
  %1085 = load float, ptr %45, align 4, !tbaa !16
  br label %1089

1086:                                             ; preds = %1072
  %1087 = load float, ptr %45, align 4, !tbaa !16
  %1088 = fneg float %1087
  br label %1089

1089:                                             ; preds = %1086, %1084
  %1090 = phi float [ %1085, %1084 ], [ %1088, %1086 ]
  %1091 = fpext float %1090 to double
  %1092 = load ptr, ptr %22, align 8, !tbaa !5
  %1093 = load i64, ptr %83, align 8, !tbaa !9
  %1094 = sub nsw i64 %1093, 1
  %1095 = load i64, ptr %83, align 8, !tbaa !9
  %1096 = load i64, ptr %32, align 8, !tbaa !9
  %1097 = mul nsw i64 %1095, %1096
  %1098 = add nsw i64 %1094, %1097
  %1099 = getelementptr inbounds %struct.complex, ptr %1092, i64 %1098
  %1100 = call double @r_imag(ptr noundef %1099)
  %1101 = fptrunc double %1100 to float
  store float %1101, ptr %46, align 4, !tbaa !16
  %1102 = load float, ptr %46, align 4, !tbaa !16
  %1103 = fcmp oge float %1102, 0.000000e+00
  br i1 %1103, label %1104, label %1106

1104:                                             ; preds = %1089
  %1105 = load float, ptr %46, align 4, !tbaa !16
  br label %1109

1106:                                             ; preds = %1089
  %1107 = load float, ptr %46, align 4, !tbaa !16
  %1108 = fneg float %1107
  br label %1109

1109:                                             ; preds = %1106, %1104
  %1110 = phi float [ %1105, %1104 ], [ %1108, %1106 ]
  %1111 = fpext float %1110 to double
  %1112 = fadd double %1091, %1111
  %1113 = fadd double %1076, %1112
  %1114 = load ptr, ptr %22, align 8, !tbaa !5
  %1115 = load i64, ptr %40, align 8, !tbaa !9
  %1116 = getelementptr inbounds %struct.complex, ptr %1114, i64 %1115
  %1117 = getelementptr inbounds %struct.complex, ptr %1116, i32 0, i32 0
  %1118 = load float, ptr %1117, align 4, !tbaa !11
  store float %1118, ptr %47, align 4, !tbaa !16
  %1119 = load float, ptr %47, align 4, !tbaa !16
  %1120 = fcmp oge float %1119, 0.000000e+00
  br i1 %1120, label %1121, label %1123

1121:                                             ; preds = %1109
  %1122 = load float, ptr %47, align 4, !tbaa !16
  br label %1126

1123:                                             ; preds = %1109
  %1124 = load float, ptr %47, align 4, !tbaa !16
  %1125 = fneg float %1124
  br label %1126

1126:                                             ; preds = %1123, %1121
  %1127 = phi float [ %1122, %1121 ], [ %1125, %1123 ]
  %1128 = fpext float %1127 to double
  %1129 = load ptr, ptr %22, align 8, !tbaa !5
  %1130 = load i64, ptr %83, align 8, !tbaa !9
  %1131 = load i64, ptr %83, align 8, !tbaa !9
  %1132 = load i64, ptr %32, align 8, !tbaa !9
  %1133 = mul nsw i64 %1131, %1132
  %1134 = add nsw i64 %1130, %1133
  %1135 = getelementptr inbounds %struct.complex, ptr %1129, i64 %1134
  %1136 = call double @r_imag(ptr noundef %1135)
  %1137 = fptrunc double %1136 to float
  store float %1137, ptr %48, align 4, !tbaa !16
  %1138 = load float, ptr %48, align 4, !tbaa !16
  %1139 = fcmp oge float %1138, 0.000000e+00
  br i1 %1139, label %1140, label %1142

1140:                                             ; preds = %1126
  %1141 = load float, ptr %48, align 4, !tbaa !16
  br label %1145

1142:                                             ; preds = %1126
  %1143 = load float, ptr %48, align 4, !tbaa !16
  %1144 = fneg float %1143
  br label %1145

1145:                                             ; preds = %1142, %1140
  %1146 = phi float [ %1141, %1140 ], [ %1144, %1142 ]
  %1147 = fpext float %1146 to double
  %1148 = fadd double %1128, %1147
  %1149 = fadd double %1113, %1148
  %1150 = fptrunc double %1149 to float
  store float %1150, ptr %56, align 4, !tbaa !16
  %1151 = load i64, ptr %83, align 8, !tbaa !9
  %1152 = sub nsw i64 %1151, 1
  %1153 = load i64, ptr %83, align 8, !tbaa !9
  %1154 = sub nsw i64 %1153, 1
  %1155 = load i64, ptr %32, align 8, !tbaa !9
  %1156 = mul nsw i64 %1154, %1155
  %1157 = add nsw i64 %1152, %1156
  store i64 %1157, ptr %37, align 8, !tbaa !9
  %1158 = load ptr, ptr %22, align 8, !tbaa !5
  %1159 = load i64, ptr %37, align 8, !tbaa !9
  %1160 = getelementptr inbounds %struct.complex, ptr %1158, i64 %1159
  %1161 = getelementptr inbounds %struct.complex, ptr %1160, i32 0, i32 0
  %1162 = load float, ptr %1161, align 4, !tbaa !11
  %1163 = load float, ptr %56, align 4, !tbaa !16
  %1164 = fdiv float %1162, %1163
  %1165 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1164, ptr %1165, align 4, !tbaa !11
  %1166 = load ptr, ptr %22, align 8, !tbaa !5
  %1167 = load i64, ptr %37, align 8, !tbaa !9
  %1168 = getelementptr inbounds %struct.complex, ptr %1166, i64 %1167
  %1169 = getelementptr inbounds %struct.complex, ptr %1168, i32 0, i32 1
  %1170 = load float, ptr %1169, align 4, !tbaa !14
  %1171 = load float, ptr %56, align 4, !tbaa !16
  %1172 = fdiv float %1170, %1171
  %1173 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1172, ptr %1173, align 4, !tbaa !14
  %1174 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1175 = load float, ptr %1174, align 4, !tbaa !11
  %1176 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  store float %1175, ptr %1176, align 4, !tbaa !11
  %1177 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1178 = load float, ptr %1177, align 4, !tbaa !14
  %1179 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  store float %1178, ptr %1179, align 4, !tbaa !14
  %1180 = load i64, ptr %83, align 8, !tbaa !9
  %1181 = load i64, ptr %83, align 8, !tbaa !9
  %1182 = sub nsw i64 %1181, 1
  %1183 = load i64, ptr %32, align 8, !tbaa !9
  %1184 = mul nsw i64 %1182, %1183
  %1185 = add nsw i64 %1180, %1184
  store i64 %1185, ptr %37, align 8, !tbaa !9
  %1186 = load ptr, ptr %22, align 8, !tbaa !5
  %1187 = load i64, ptr %37, align 8, !tbaa !9
  %1188 = getelementptr inbounds %struct.complex, ptr %1186, i64 %1187
  %1189 = getelementptr inbounds %struct.complex, ptr %1188, i32 0, i32 0
  %1190 = load float, ptr %1189, align 4, !tbaa !11
  %1191 = load float, ptr %56, align 4, !tbaa !16
  %1192 = fdiv float %1190, %1191
  %1193 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1192, ptr %1193, align 4, !tbaa !11
  %1194 = load ptr, ptr %22, align 8, !tbaa !5
  %1195 = load i64, ptr %37, align 8, !tbaa !9
  %1196 = getelementptr inbounds %struct.complex, ptr %1194, i64 %1195
  %1197 = getelementptr inbounds %struct.complex, ptr %1196, i32 0, i32 1
  %1198 = load float, ptr %1197, align 4, !tbaa !14
  %1199 = load float, ptr %56, align 4, !tbaa !16
  %1200 = fdiv float %1198, %1199
  %1201 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1200, ptr %1201, align 4, !tbaa !14
  %1202 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1203 = load float, ptr %1202, align 4, !tbaa !11
  %1204 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  store float %1203, ptr %1204, align 4, !tbaa !11
  %1205 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1206 = load float, ptr %1205, align 4, !tbaa !14
  %1207 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 1
  store float %1206, ptr %1207, align 4, !tbaa !14
  %1208 = load i64, ptr %83, align 8, !tbaa !9
  %1209 = sub nsw i64 %1208, 1
  %1210 = load i64, ptr %83, align 8, !tbaa !9
  %1211 = load i64, ptr %32, align 8, !tbaa !9
  %1212 = mul nsw i64 %1210, %1211
  %1213 = add nsw i64 %1209, %1212
  store i64 %1213, ptr %37, align 8, !tbaa !9
  %1214 = load ptr, ptr %22, align 8, !tbaa !5
  %1215 = load i64, ptr %37, align 8, !tbaa !9
  %1216 = getelementptr inbounds %struct.complex, ptr %1214, i64 %1215
  %1217 = getelementptr inbounds %struct.complex, ptr %1216, i32 0, i32 0
  %1218 = load float, ptr %1217, align 4, !tbaa !11
  %1219 = load float, ptr %56, align 4, !tbaa !16
  %1220 = fdiv float %1218, %1219
  %1221 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1220, ptr %1221, align 4, !tbaa !11
  %1222 = load ptr, ptr %22, align 8, !tbaa !5
  %1223 = load i64, ptr %37, align 8, !tbaa !9
  %1224 = getelementptr inbounds %struct.complex, ptr %1222, i64 %1223
  %1225 = getelementptr inbounds %struct.complex, ptr %1224, i32 0, i32 1
  %1226 = load float, ptr %1225, align 4, !tbaa !14
  %1227 = load float, ptr %56, align 4, !tbaa !16
  %1228 = fdiv float %1226, %1227
  %1229 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1228, ptr %1229, align 4, !tbaa !14
  %1230 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1231 = load float, ptr %1230, align 4, !tbaa !11
  %1232 = getelementptr inbounds %struct.complex, ptr %58, i32 0, i32 0
  store float %1231, ptr %1232, align 4, !tbaa !11
  %1233 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1234 = load float, ptr %1233, align 4, !tbaa !14
  %1235 = getelementptr inbounds %struct.complex, ptr %58, i32 0, i32 1
  store float %1234, ptr %1235, align 4, !tbaa !14
  %1236 = load i64, ptr %83, align 8, !tbaa !9
  %1237 = load i64, ptr %83, align 8, !tbaa !9
  %1238 = load i64, ptr %32, align 8, !tbaa !9
  %1239 = mul nsw i64 %1237, %1238
  %1240 = add nsw i64 %1236, %1239
  store i64 %1240, ptr %37, align 8, !tbaa !9
  %1241 = load ptr, ptr %22, align 8, !tbaa !5
  %1242 = load i64, ptr %37, align 8, !tbaa !9
  %1243 = getelementptr inbounds %struct.complex, ptr %1241, i64 %1242
  %1244 = getelementptr inbounds %struct.complex, ptr %1243, i32 0, i32 0
  %1245 = load float, ptr %1244, align 4, !tbaa !11
  %1246 = load float, ptr %56, align 4, !tbaa !16
  %1247 = fdiv float %1245, %1246
  %1248 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1247, ptr %1248, align 4, !tbaa !11
  %1249 = load ptr, ptr %22, align 8, !tbaa !5
  %1250 = load i64, ptr %37, align 8, !tbaa !9
  %1251 = getelementptr inbounds %struct.complex, ptr %1249, i64 %1250
  %1252 = getelementptr inbounds %struct.complex, ptr %1251, i32 0, i32 1
  %1253 = load float, ptr %1252, align 4, !tbaa !14
  %1254 = load float, ptr %56, align 4, !tbaa !16
  %1255 = fdiv float %1253, %1254
  %1256 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1255, ptr %1256, align 4, !tbaa !14
  %1257 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1258 = load float, ptr %1257, align 4, !tbaa !11
  %1259 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1258, ptr %1259, align 4, !tbaa !11
  %1260 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1261 = load float, ptr %1260, align 4, !tbaa !14
  %1262 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1261, ptr %1262, align 4, !tbaa !14
  %1263 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  %1264 = load float, ptr %1263, align 4, !tbaa !11
  %1265 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1266 = load float, ptr %1265, align 4, !tbaa !11
  %1267 = fadd float %1264, %1266
  %1268 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1267, ptr %1268, align 4, !tbaa !11
  %1269 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  %1270 = load float, ptr %1269, align 4, !tbaa !14
  %1271 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1272 = load float, ptr %1271, align 4, !tbaa !14
  %1273 = fadd float %1270, %1272
  %1274 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1273, ptr %1274, align 4, !tbaa !14
  %1275 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1276 = load float, ptr %1275, align 4, !tbaa !11
  %1277 = fdiv float %1276, 2.000000e+00
  %1278 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1277, ptr %1278, align 4, !tbaa !11
  %1279 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1280 = load float, ptr %1279, align 4, !tbaa !14
  %1281 = fdiv float %1280, 2.000000e+00
  %1282 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1281, ptr %1282, align 4, !tbaa !14
  %1283 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1284 = load float, ptr %1283, align 4, !tbaa !11
  %1285 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %1284, ptr %1285, align 4, !tbaa !11
  %1286 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1287 = load float, ptr %1286, align 4, !tbaa !14
  %1288 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %1287, ptr %1288, align 4, !tbaa !14
  %1289 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  %1290 = load float, ptr %1289, align 4, !tbaa !11
  %1291 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1292 = load float, ptr %1291, align 4, !tbaa !11
  %1293 = fsub float %1290, %1292
  %1294 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1293, ptr %1294, align 4, !tbaa !11
  %1295 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  %1296 = load float, ptr %1295, align 4, !tbaa !14
  %1297 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1298 = load float, ptr %1297, align 4, !tbaa !14
  %1299 = fsub float %1296, %1298
  %1300 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1299, ptr %1300, align 4, !tbaa !14
  %1301 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1302 = load float, ptr %1301, align 4, !tbaa !11
  %1303 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1304 = load float, ptr %1303, align 4, !tbaa !11
  %1305 = fsub float %1302, %1304
  %1306 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1305, ptr %1306, align 4, !tbaa !11
  %1307 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1308 = load float, ptr %1307, align 4, !tbaa !14
  %1309 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1310 = load float, ptr %1309, align 4, !tbaa !14
  %1311 = fsub float %1308, %1310
  %1312 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1311, ptr %1312, align 4, !tbaa !14
  %1313 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1314 = load float, ptr %1313, align 4, !tbaa !11
  %1315 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1316 = load float, ptr %1315, align 4, !tbaa !11
  %1317 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1318 = load float, ptr %1317, align 4, !tbaa !14
  %1319 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1320 = load float, ptr %1319, align 4, !tbaa !14
  %1321 = fmul float %1318, %1320
  %1322 = fneg float %1321
  %1323 = call float @llvm.fmuladd.f32(float %1314, float %1316, float %1322)
  %1324 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1323, ptr %1324, align 4, !tbaa !11
  %1325 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1326 = load float, ptr %1325, align 4, !tbaa !11
  %1327 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1328 = load float, ptr %1327, align 4, !tbaa !14
  %1329 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1330 = load float, ptr %1329, align 4, !tbaa !14
  %1331 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1332 = load float, ptr %1331, align 4, !tbaa !11
  %1333 = fmul float %1330, %1332
  %1334 = call float @llvm.fmuladd.f32(float %1326, float %1328, float %1333)
  %1335 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1334, ptr %1335, align 4, !tbaa !14
  %1336 = getelementptr inbounds %struct.complex, ptr %58, i32 0, i32 0
  %1337 = load float, ptr %1336, align 4, !tbaa !11
  %1338 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  %1339 = load float, ptr %1338, align 4, !tbaa !11
  %1340 = getelementptr inbounds %struct.complex, ptr %58, i32 0, i32 1
  %1341 = load float, ptr %1340, align 4, !tbaa !14
  %1342 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 1
  %1343 = load float, ptr %1342, align 4, !tbaa !14
  %1344 = fmul float %1341, %1343
  %1345 = fneg float %1344
  %1346 = call float @llvm.fmuladd.f32(float %1337, float %1339, float %1345)
  %1347 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  store float %1346, ptr %1347, align 4, !tbaa !11
  %1348 = getelementptr inbounds %struct.complex, ptr %58, i32 0, i32 0
  %1349 = load float, ptr %1348, align 4, !tbaa !11
  %1350 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 1
  %1351 = load float, ptr %1350, align 4, !tbaa !14
  %1352 = getelementptr inbounds %struct.complex, ptr %58, i32 0, i32 1
  %1353 = load float, ptr %1352, align 4, !tbaa !14
  %1354 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  %1355 = load float, ptr %1354, align 4, !tbaa !11
  %1356 = fmul float %1353, %1355
  %1357 = call float @llvm.fmuladd.f32(float %1349, float %1351, float %1356)
  %1358 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  store float %1357, ptr %1358, align 4, !tbaa !14
  %1359 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1360 = load float, ptr %1359, align 4, !tbaa !11
  %1361 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %1362 = load float, ptr %1361, align 4, !tbaa !11
  %1363 = fsub float %1360, %1362
  %1364 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1363, ptr %1364, align 4, !tbaa !11
  %1365 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1366 = load float, ptr %1365, align 4, !tbaa !14
  %1367 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %1368 = load float, ptr %1367, align 4, !tbaa !14
  %1369 = fsub float %1366, %1368
  %1370 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1369, ptr %1370, align 4, !tbaa !14
  %1371 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1372 = load float, ptr %1371, align 4, !tbaa !11
  %1373 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  store float %1372, ptr %1373, align 4, !tbaa !11
  %1374 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1375 = load float, ptr %1374, align 4, !tbaa !14
  %1376 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  store float %1375, ptr %1376, align 4, !tbaa !14
  %1377 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1378 = load float, ptr %1377, align 4, !tbaa !11
  %1379 = fneg float %1378
  %1380 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1379, ptr %1380, align 4, !tbaa !11
  %1381 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1382 = load float, ptr %1381, align 4, !tbaa !14
  %1383 = fneg float %1382
  %1384 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1383, ptr %1384, align 4, !tbaa !14
  call void @c_sqrt(ptr noundef %49, ptr noundef %50)
  %1385 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1386 = load float, ptr %1385, align 4, !tbaa !11
  %1387 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 0
  store float %1386, ptr %1387, align 4, !tbaa !11
  %1388 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1389 = load float, ptr %1388, align 4, !tbaa !14
  %1390 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 1
  store float %1389, ptr %1390, align 4, !tbaa !14
  %1391 = load i64, ptr %83, align 8, !tbaa !9
  %1392 = sub nsw i64 %1391, 1
  store i64 %1392, ptr %37, align 8, !tbaa !9
  %1393 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1394 = load float, ptr %1393, align 4, !tbaa !11
  %1395 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 0
  %1396 = load float, ptr %1395, align 4, !tbaa !11
  %1397 = fadd float %1394, %1396
  %1398 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1397, ptr %1398, align 4, !tbaa !11
  %1399 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1400 = load float, ptr %1399, align 4, !tbaa !14
  %1401 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 1
  %1402 = load float, ptr %1401, align 4, !tbaa !14
  %1403 = fadd float %1400, %1402
  %1404 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1403, ptr %1404, align 4, !tbaa !14
  %1405 = load float, ptr %56, align 4, !tbaa !16
  %1406 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1407 = load float, ptr %1406, align 4, !tbaa !11
  %1408 = fmul float %1405, %1407
  %1409 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1408, ptr %1409, align 4, !tbaa !11
  %1410 = load float, ptr %56, align 4, !tbaa !16
  %1411 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1412 = load float, ptr %1411, align 4, !tbaa !14
  %1413 = fmul float %1410, %1412
  %1414 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1413, ptr %1414, align 4, !tbaa !14
  %1415 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1416 = load float, ptr %1415, align 4, !tbaa !11
  %1417 = load ptr, ptr %24, align 8, !tbaa !5
  %1418 = load i64, ptr %37, align 8, !tbaa !9
  %1419 = getelementptr inbounds %struct.complex, ptr %1417, i64 %1418
  %1420 = getelementptr inbounds %struct.complex, ptr %1419, i32 0, i32 0
  store float %1416, ptr %1420, align 4, !tbaa !11
  %1421 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1422 = load float, ptr %1421, align 4, !tbaa !14
  %1423 = load ptr, ptr %24, align 8, !tbaa !5
  %1424 = load i64, ptr %37, align 8, !tbaa !9
  %1425 = getelementptr inbounds %struct.complex, ptr %1423, i64 %1424
  %1426 = getelementptr inbounds %struct.complex, ptr %1425, i32 0, i32 1
  store float %1422, ptr %1426, align 4, !tbaa !14
  %1427 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1427, ptr %37, align 8, !tbaa !9
  %1428 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1429 = load float, ptr %1428, align 4, !tbaa !11
  %1430 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 0
  %1431 = load float, ptr %1430, align 4, !tbaa !11
  %1432 = fsub float %1429, %1431
  %1433 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1432, ptr %1433, align 4, !tbaa !11
  %1434 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1435 = load float, ptr %1434, align 4, !tbaa !14
  %1436 = getelementptr inbounds %struct.complex, ptr %95, i32 0, i32 1
  %1437 = load float, ptr %1436, align 4, !tbaa !14
  %1438 = fsub float %1435, %1437
  %1439 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1438, ptr %1439, align 4, !tbaa !14
  %1440 = load float, ptr %56, align 4, !tbaa !16
  %1441 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1442 = load float, ptr %1441, align 4, !tbaa !11
  %1443 = fmul float %1440, %1442
  %1444 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1443, ptr %1444, align 4, !tbaa !11
  %1445 = load float, ptr %56, align 4, !tbaa !16
  %1446 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1447 = load float, ptr %1446, align 4, !tbaa !14
  %1448 = fmul float %1445, %1447
  %1449 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1448, ptr %1449, align 4, !tbaa !14
  %1450 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1451 = load float, ptr %1450, align 4, !tbaa !11
  %1452 = load ptr, ptr %24, align 8, !tbaa !5
  %1453 = load i64, ptr %37, align 8, !tbaa !9
  %1454 = getelementptr inbounds %struct.complex, ptr %1452, i64 %1453
  %1455 = getelementptr inbounds %struct.complex, ptr %1454, i32 0, i32 0
  store float %1451, ptr %1455, align 4, !tbaa !11
  %1456 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1457 = load float, ptr %1456, align 4, !tbaa !14
  %1458 = load ptr, ptr %24, align 8, !tbaa !5
  %1459 = load i64, ptr %37, align 8, !tbaa !9
  %1460 = getelementptr inbounds %struct.complex, ptr %1458, i64 %1459
  %1461 = getelementptr inbounds %struct.complex, ptr %1460, i32 0, i32 1
  store float %1457, ptr %1461, align 4, !tbaa !14
  %1462 = load i64, ptr %83, align 8, !tbaa !9
  %1463 = sub nsw i64 %1462, 1
  store i64 %1463, ptr %64, align 8, !tbaa !9
  br label %1464

1464:                                             ; preds = %1145, %971
  br label %1465

1465:                                             ; preds = %1464, %908
  %1466 = load i64, ptr %83, align 8, !tbaa !9
  %1467 = load i64, ptr %64, align 8, !tbaa !9
  %1468 = sub nsw i64 %1466, %1467
  %1469 = add nsw i64 %1468, 1
  %1470 = load i64, ptr %69, align 8, !tbaa !9
  %1471 = icmp sgt i64 %1469, %1470
  br i1 %1471, label %1472, label %1619

1472:                                             ; preds = %1465
  store i64 0, ptr %97, align 8, !tbaa !9
  %1473 = load i64, ptr %64, align 8, !tbaa !9
  %1474 = add nsw i64 %1473, 1
  store i64 %1474, ptr %37, align 8, !tbaa !9
  %1475 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1475, ptr %55, align 8, !tbaa !9
  br label %1476

1476:                                             ; preds = %1614, %1472
  %1477 = load i64, ptr %55, align 8, !tbaa !9
  %1478 = load i64, ptr %37, align 8, !tbaa !9
  %1479 = icmp sge i64 %1477, %1478
  br i1 %1479, label %1480, label %1617

1480:                                             ; preds = %1476
  %1481 = load i64, ptr %97, align 8, !tbaa !9
  %1482 = icmp ne i64 %1481, 0
  br i1 %1482, label %1483, label %1484

1483:                                             ; preds = %1480
  br label %1618

1484:                                             ; preds = %1480
  store i64 1, ptr %97, align 8, !tbaa !9
  %1485 = load i64, ptr %55, align 8, !tbaa !9
  %1486 = sub nsw i64 %1485, 1
  store i64 %1486, ptr %38, align 8, !tbaa !9
  %1487 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %1487, ptr %54, align 8, !tbaa !9
  br label %1488

1488:                                             ; preds = %1610, %1484
  %1489 = load i64, ptr %54, align 8, !tbaa !9
  %1490 = load i64, ptr %38, align 8, !tbaa !9
  %1491 = icmp sle i64 %1489, %1490
  br i1 %1491, label %1492, label %1613

1492:                                             ; preds = %1488
  %1493 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1493, ptr %39, align 8, !tbaa !9
  %1494 = load i64, ptr %54, align 8, !tbaa !9
  %1495 = add nsw i64 %1494, 1
  store i64 %1495, ptr %40, align 8, !tbaa !9
  %1496 = load ptr, ptr %24, align 8, !tbaa !5
  %1497 = load i64, ptr %39, align 8, !tbaa !9
  %1498 = getelementptr inbounds %struct.complex, ptr %1496, i64 %1497
  %1499 = getelementptr inbounds %struct.complex, ptr %1498, i32 0, i32 0
  %1500 = load float, ptr %1499, align 4, !tbaa !11
  store float %1500, ptr %41, align 4, !tbaa !16
  %1501 = load float, ptr %41, align 4, !tbaa !16
  %1502 = fcmp oge float %1501, 0.000000e+00
  br i1 %1502, label %1503, label %1505

1503:                                             ; preds = %1492
  %1504 = load float, ptr %41, align 4, !tbaa !16
  br label %1508

1505:                                             ; preds = %1492
  %1506 = load float, ptr %41, align 4, !tbaa !16
  %1507 = fneg float %1506
  br label %1508

1508:                                             ; preds = %1505, %1503
  %1509 = phi float [ %1504, %1503 ], [ %1507, %1505 ]
  %1510 = fpext float %1509 to double
  %1511 = load ptr, ptr %24, align 8, !tbaa !5
  %1512 = load i64, ptr %54, align 8, !tbaa !9
  %1513 = getelementptr inbounds %struct.complex, ptr %1511, i64 %1512
  %1514 = call double @r_imag(ptr noundef %1513)
  %1515 = fptrunc double %1514 to float
  store float %1515, ptr %42, align 4, !tbaa !16
  %1516 = load float, ptr %42, align 4, !tbaa !16
  %1517 = fcmp oge float %1516, 0.000000e+00
  br i1 %1517, label %1518, label %1520

1518:                                             ; preds = %1508
  %1519 = load float, ptr %42, align 4, !tbaa !16
  br label %1523

1520:                                             ; preds = %1508
  %1521 = load float, ptr %42, align 4, !tbaa !16
  %1522 = fneg float %1521
  br label %1523

1523:                                             ; preds = %1520, %1518
  %1524 = phi float [ %1519, %1518 ], [ %1522, %1520 ]
  %1525 = fpext float %1524 to double
  %1526 = fadd double %1510, %1525
  %1527 = load ptr, ptr %24, align 8, !tbaa !5
  %1528 = load i64, ptr %40, align 8, !tbaa !9
  %1529 = getelementptr inbounds %struct.complex, ptr %1527, i64 %1528
  %1530 = getelementptr inbounds %struct.complex, ptr %1529, i32 0, i32 0
  %1531 = load float, ptr %1530, align 4, !tbaa !11
  store float %1531, ptr %43, align 4, !tbaa !16
  %1532 = load float, ptr %43, align 4, !tbaa !16
  %1533 = fcmp oge float %1532, 0.000000e+00
  br i1 %1533, label %1534, label %1536

1534:                                             ; preds = %1523
  %1535 = load float, ptr %43, align 4, !tbaa !16
  br label %1539

1536:                                             ; preds = %1523
  %1537 = load float, ptr %43, align 4, !tbaa !16
  %1538 = fneg float %1537
  br label %1539

1539:                                             ; preds = %1536, %1534
  %1540 = phi float [ %1535, %1534 ], [ %1538, %1536 ]
  %1541 = fpext float %1540 to double
  %1542 = load ptr, ptr %24, align 8, !tbaa !5
  %1543 = load i64, ptr %54, align 8, !tbaa !9
  %1544 = add nsw i64 %1543, 1
  %1545 = getelementptr inbounds %struct.complex, ptr %1542, i64 %1544
  %1546 = call double @r_imag(ptr noundef %1545)
  %1547 = fptrunc double %1546 to float
  store float %1547, ptr %44, align 4, !tbaa !16
  %1548 = load float, ptr %44, align 4, !tbaa !16
  %1549 = fcmp oge float %1548, 0.000000e+00
  br i1 %1549, label %1550, label %1552

1550:                                             ; preds = %1539
  %1551 = load float, ptr %44, align 4, !tbaa !16
  br label %1555

1552:                                             ; preds = %1539
  %1553 = load float, ptr %44, align 4, !tbaa !16
  %1554 = fneg float %1553
  br label %1555

1555:                                             ; preds = %1552, %1550
  %1556 = phi float [ %1551, %1550 ], [ %1554, %1552 ]
  %1557 = fpext float %1556 to double
  %1558 = fadd double %1541, %1557
  %1559 = fcmp olt double %1526, %1558
  br i1 %1559, label %1560, label %1609

1560:                                             ; preds = %1555
  store i64 0, ptr %97, align 8, !tbaa !9
  %1561 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1561, ptr %39, align 8, !tbaa !9
  %1562 = load ptr, ptr %24, align 8, !tbaa !5
  %1563 = load i64, ptr %39, align 8, !tbaa !9
  %1564 = getelementptr inbounds %struct.complex, ptr %1562, i64 %1563
  %1565 = getelementptr inbounds %struct.complex, ptr %1564, i32 0, i32 0
  %1566 = load float, ptr %1565, align 4, !tbaa !11
  %1567 = getelementptr inbounds %struct.complex, ptr %85, i32 0, i32 0
  store float %1566, ptr %1567, align 4, !tbaa !11
  %1568 = load ptr, ptr %24, align 8, !tbaa !5
  %1569 = load i64, ptr %39, align 8, !tbaa !9
  %1570 = getelementptr inbounds %struct.complex, ptr %1568, i64 %1569
  %1571 = getelementptr inbounds %struct.complex, ptr %1570, i32 0, i32 1
  %1572 = load float, ptr %1571, align 4, !tbaa !14
  %1573 = getelementptr inbounds %struct.complex, ptr %85, i32 0, i32 1
  store float %1572, ptr %1573, align 4, !tbaa !14
  %1574 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1574, ptr %39, align 8, !tbaa !9
  %1575 = load i64, ptr %54, align 8, !tbaa !9
  %1576 = add nsw i64 %1575, 1
  store i64 %1576, ptr %40, align 8, !tbaa !9
  %1577 = load ptr, ptr %24, align 8, !tbaa !5
  %1578 = load i64, ptr %40, align 8, !tbaa !9
  %1579 = getelementptr inbounds %struct.complex, ptr %1577, i64 %1578
  %1580 = getelementptr inbounds %struct.complex, ptr %1579, i32 0, i32 0
  %1581 = load float, ptr %1580, align 4, !tbaa !11
  %1582 = load ptr, ptr %24, align 8, !tbaa !5
  %1583 = load i64, ptr %39, align 8, !tbaa !9
  %1584 = getelementptr inbounds %struct.complex, ptr %1582, i64 %1583
  %1585 = getelementptr inbounds %struct.complex, ptr %1584, i32 0, i32 0
  store float %1581, ptr %1585, align 4, !tbaa !11
  %1586 = load ptr, ptr %24, align 8, !tbaa !5
  %1587 = load i64, ptr %40, align 8, !tbaa !9
  %1588 = getelementptr inbounds %struct.complex, ptr %1586, i64 %1587
  %1589 = getelementptr inbounds %struct.complex, ptr %1588, i32 0, i32 1
  %1590 = load float, ptr %1589, align 4, !tbaa !14
  %1591 = load ptr, ptr %24, align 8, !tbaa !5
  %1592 = load i64, ptr %39, align 8, !tbaa !9
  %1593 = getelementptr inbounds %struct.complex, ptr %1591, i64 %1592
  %1594 = getelementptr inbounds %struct.complex, ptr %1593, i32 0, i32 1
  store float %1590, ptr %1594, align 4, !tbaa !14
  %1595 = load i64, ptr %54, align 8, !tbaa !9
  %1596 = add nsw i64 %1595, 1
  store i64 %1596, ptr %39, align 8, !tbaa !9
  %1597 = getelementptr inbounds %struct.complex, ptr %85, i32 0, i32 0
  %1598 = load float, ptr %1597, align 4, !tbaa !11
  %1599 = load ptr, ptr %24, align 8, !tbaa !5
  %1600 = load i64, ptr %39, align 8, !tbaa !9
  %1601 = getelementptr inbounds %struct.complex, ptr %1599, i64 %1600
  %1602 = getelementptr inbounds %struct.complex, ptr %1601, i32 0, i32 0
  store float %1598, ptr %1602, align 4, !tbaa !11
  %1603 = getelementptr inbounds %struct.complex, ptr %85, i32 0, i32 1
  %1604 = load float, ptr %1603, align 4, !tbaa !14
  %1605 = load ptr, ptr %24, align 8, !tbaa !5
  %1606 = load i64, ptr %39, align 8, !tbaa !9
  %1607 = getelementptr inbounds %struct.complex, ptr %1605, i64 %1606
  %1608 = getelementptr inbounds %struct.complex, ptr %1607, i32 0, i32 1
  store float %1604, ptr %1608, align 4, !tbaa !14
  br label %1609

1609:                                             ; preds = %1560, %1555
  br label %1610

1610:                                             ; preds = %1609
  %1611 = load i64, ptr %54, align 8, !tbaa !9
  %1612 = add nsw i64 %1611, 1
  store i64 %1612, ptr %54, align 8, !tbaa !9
  br label %1488, !llvm.loop !20

1613:                                             ; preds = %1488
  br label %1614

1614:                                             ; preds = %1613
  %1615 = load i64, ptr %55, align 8, !tbaa !9
  %1616 = add nsw i64 %1615, -1
  store i64 %1616, ptr %55, align 8, !tbaa !9
  br label %1476, !llvm.loop !21

1617:                                             ; preds = %1476
  br label %1618

1618:                                             ; preds = %1617, %1483
  br label %1619

1619:                                             ; preds = %1618, %1465
  br label %1620

1620:                                             ; preds = %1619, %907
  %1621 = load i64, ptr %83, align 8, !tbaa !9
  %1622 = load i64, ptr %64, align 8, !tbaa !9
  %1623 = sub nsw i64 %1621, %1622
  %1624 = add nsw i64 %1623, 1
  %1625 = icmp eq i64 %1624, 2
  br i1 %1625, label %1626, label %1796

1626:                                             ; preds = %1620
  %1627 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1627, ptr %37, align 8, !tbaa !9
  %1628 = load i64, ptr %83, align 8, !tbaa !9
  %1629 = load i64, ptr %83, align 8, !tbaa !9
  %1630 = load i64, ptr %32, align 8, !tbaa !9
  %1631 = mul nsw i64 %1629, %1630
  %1632 = add nsw i64 %1628, %1631
  store i64 %1632, ptr %38, align 8, !tbaa !9
  %1633 = load ptr, ptr %24, align 8, !tbaa !5
  %1634 = load i64, ptr %37, align 8, !tbaa !9
  %1635 = getelementptr inbounds %struct.complex, ptr %1633, i64 %1634
  %1636 = getelementptr inbounds %struct.complex, ptr %1635, i32 0, i32 0
  %1637 = load float, ptr %1636, align 4, !tbaa !11
  %1638 = load ptr, ptr %22, align 8, !tbaa !5
  %1639 = load i64, ptr %38, 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 = fsub float %1637, %1642
  %1644 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1643, ptr %1644, align 4, !tbaa !11
  %1645 = load ptr, ptr %24, align 8, !tbaa !5
  %1646 = load i64, ptr %37, align 8, !tbaa !9
  %1647 = getelementptr inbounds %struct.complex, ptr %1645, i64 %1646
  %1648 = getelementptr inbounds %struct.complex, ptr %1647, i32 0, i32 1
  %1649 = load float, ptr %1648, align 4, !tbaa !14
  %1650 = load ptr, ptr %22, align 8, !tbaa !5
  %1651 = load i64, ptr %38, align 8, !tbaa !9
  %1652 = getelementptr inbounds %struct.complex, ptr %1650, i64 %1651
  %1653 = getelementptr inbounds %struct.complex, ptr %1652, i32 0, i32 1
  %1654 = load float, ptr %1653, align 4, !tbaa !14
  %1655 = fsub float %1649, %1654
  %1656 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1655, ptr %1656, align 4, !tbaa !14
  %1657 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1658 = load float, ptr %1657, align 4, !tbaa !11
  %1659 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1658, ptr %1659, align 4, !tbaa !11
  %1660 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1661 = load float, ptr %1660, align 4, !tbaa !14
  %1662 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1661, ptr %1662, align 4, !tbaa !14
  %1663 = load i64, ptr %83, align 8, !tbaa !9
  %1664 = sub nsw i64 %1663, 1
  store i64 %1664, ptr %39, align 8, !tbaa !9
  %1665 = load i64, ptr %83, align 8, !tbaa !9
  %1666 = load i64, ptr %83, align 8, !tbaa !9
  %1667 = load i64, ptr %32, align 8, !tbaa !9
  %1668 = mul nsw i64 %1666, %1667
  %1669 = add nsw i64 %1665, %1668
  store i64 %1669, ptr %40, align 8, !tbaa !9
  %1670 = load ptr, ptr %24, align 8, !tbaa !5
  %1671 = load i64, ptr %39, align 8, !tbaa !9
  %1672 = getelementptr inbounds %struct.complex, ptr %1670, i64 %1671
  %1673 = getelementptr inbounds %struct.complex, ptr %1672, i32 0, i32 0
  %1674 = load float, ptr %1673, align 4, !tbaa !11
  %1675 = load ptr, ptr %22, align 8, !tbaa !5
  %1676 = load i64, ptr %40, align 8, !tbaa !9
  %1677 = getelementptr inbounds %struct.complex, ptr %1675, i64 %1676
  %1678 = getelementptr inbounds %struct.complex, ptr %1677, i32 0, i32 0
  %1679 = load float, ptr %1678, align 4, !tbaa !11
  %1680 = fsub float %1674, %1679
  %1681 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1680, ptr %1681, align 4, !tbaa !11
  %1682 = load ptr, ptr %24, align 8, !tbaa !5
  %1683 = load i64, ptr %39, align 8, !tbaa !9
  %1684 = getelementptr inbounds %struct.complex, ptr %1682, i64 %1683
  %1685 = getelementptr inbounds %struct.complex, ptr %1684, i32 0, i32 1
  %1686 = load float, ptr %1685, align 4, !tbaa !14
  %1687 = load ptr, ptr %22, align 8, !tbaa !5
  %1688 = load i64, ptr %40, align 8, !tbaa !9
  %1689 = getelementptr inbounds %struct.complex, ptr %1687, i64 %1688
  %1690 = getelementptr inbounds %struct.complex, ptr %1689, i32 0, i32 1
  %1691 = load float, ptr %1690, align 4, !tbaa !14
  %1692 = fsub float %1686, %1691
  %1693 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1692, ptr %1693, align 4, !tbaa !14
  %1694 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1695 = load float, ptr %1694, align 4, !tbaa !11
  %1696 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1695, ptr %1696, align 4, !tbaa !11
  %1697 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1698 = load float, ptr %1697, align 4, !tbaa !14
  %1699 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1698, ptr %1699, align 4, !tbaa !14
  %1700 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1701 = load float, ptr %1700, align 4, !tbaa !11
  store float %1701, ptr %41, align 4, !tbaa !16
  %1702 = load float, ptr %41, align 4, !tbaa !16
  %1703 = fcmp oge float %1702, 0.000000e+00
  br i1 %1703, label %1704, label %1706

1704:                                             ; preds = %1626
  %1705 = load float, ptr %41, align 4, !tbaa !16
  br label %1709

1706:                                             ; preds = %1626
  %1707 = load float, ptr %41, align 4, !tbaa !16
  %1708 = fneg float %1707
  br label %1709

1709:                                             ; preds = %1706, %1704
  %1710 = phi float [ %1705, %1704 ], [ %1708, %1706 ]
  %1711 = fpext float %1710 to double
  %1712 = call double @r_imag(ptr noundef %49)
  %1713 = fptrunc double %1712 to float
  store float %1713, ptr %42, align 4, !tbaa !16
  %1714 = load float, ptr %42, align 4, !tbaa !16
  %1715 = fcmp oge float %1714, 0.000000e+00
  br i1 %1715, label %1716, label %1718

1716:                                             ; preds = %1709
  %1717 = load float, ptr %42, align 4, !tbaa !16
  br label %1721

1718:                                             ; preds = %1709
  %1719 = load float, ptr %42, align 4, !tbaa !16
  %1720 = fneg float %1719
  br label %1721

1721:                                             ; preds = %1718, %1716
  %1722 = phi float [ %1717, %1716 ], [ %1720, %1718 ]
  %1723 = fpext float %1722 to double
  %1724 = fadd double %1711, %1723
  %1725 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1726 = load float, ptr %1725, align 4, !tbaa !11
  store float %1726, ptr %43, align 4, !tbaa !16
  %1727 = load float, ptr %43, align 4, !tbaa !16
  %1728 = fcmp oge float %1727, 0.000000e+00
  br i1 %1728, label %1729, label %1731

1729:                                             ; preds = %1721
  %1730 = load float, ptr %43, align 4, !tbaa !16
  br label %1734

1731:                                             ; preds = %1721
  %1732 = load float, ptr %43, align 4, !tbaa !16
  %1733 = fneg float %1732
  br label %1734

1734:                                             ; preds = %1731, %1729
  %1735 = phi float [ %1730, %1729 ], [ %1733, %1731 ]
  %1736 = fpext float %1735 to double
  %1737 = call double @r_imag(ptr noundef %51)
  %1738 = fptrunc double %1737 to float
  store float %1738, ptr %44, align 4, !tbaa !16
  %1739 = load float, ptr %44, align 4, !tbaa !16
  %1740 = fcmp oge float %1739, 0.000000e+00
  br i1 %1740, label %1741, label %1743

1741:                                             ; preds = %1734
  %1742 = load float, ptr %44, align 4, !tbaa !16
  br label %1746

1743:                                             ; preds = %1734
  %1744 = load float, ptr %44, align 4, !tbaa !16
  %1745 = fneg float %1744
  br label %1746

1746:                                             ; preds = %1743, %1741
  %1747 = phi float [ %1742, %1741 ], [ %1745, %1743 ]
  %1748 = fpext float %1747 to double
  %1749 = fadd double %1736, %1748
  %1750 = fcmp olt double %1724, %1749
  br i1 %1750, label %1751, label %1773

1751:                                             ; preds = %1746
  %1752 = load i64, ptr %83, align 8, !tbaa !9
  %1753 = sub nsw i64 %1752, 1
  store i64 %1753, ptr %37, align 8, !tbaa !9
  %1754 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1754, ptr %38, align 8, !tbaa !9
  %1755 = load ptr, ptr %24, align 8, !tbaa !5
  %1756 = load i64, ptr %38, align 8, !tbaa !9
  %1757 = getelementptr inbounds %struct.complex, ptr %1755, i64 %1756
  %1758 = getelementptr inbounds %struct.complex, ptr %1757, i32 0, i32 0
  %1759 = load float, ptr %1758, align 4, !tbaa !11
  %1760 = load ptr, ptr %24, align 8, !tbaa !5
  %1761 = load i64, ptr %37, align 8, !tbaa !9
  %1762 = getelementptr inbounds %struct.complex, ptr %1760, i64 %1761
  %1763 = getelementptr inbounds %struct.complex, ptr %1762, i32 0, i32 0
  store float %1759, ptr %1763, align 4, !tbaa !11
  %1764 = load ptr, ptr %24, align 8, !tbaa !5
  %1765 = load i64, ptr %38, align 8, !tbaa !9
  %1766 = getelementptr inbounds %struct.complex, ptr %1764, i64 %1765
  %1767 = getelementptr inbounds %struct.complex, ptr %1766, i32 0, i32 1
  %1768 = load float, ptr %1767, align 4, !tbaa !14
  %1769 = load ptr, ptr %24, align 8, !tbaa !5
  %1770 = load i64, ptr %37, align 8, !tbaa !9
  %1771 = getelementptr inbounds %struct.complex, ptr %1769, i64 %1770
  %1772 = getelementptr inbounds %struct.complex, ptr %1771, i32 0, i32 1
  store float %1768, ptr %1772, align 4, !tbaa !14
  br label %1795

1773:                                             ; preds = %1746
  %1774 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1774, ptr %37, align 8, !tbaa !9
  %1775 = load i64, ptr %83, align 8, !tbaa !9
  %1776 = sub nsw i64 %1775, 1
  store i64 %1776, ptr %38, align 8, !tbaa !9
  %1777 = load ptr, ptr %24, align 8, !tbaa !5
  %1778 = load i64, ptr %38, align 8, !tbaa !9
  %1779 = getelementptr inbounds %struct.complex, ptr %1777, i64 %1778
  %1780 = getelementptr inbounds %struct.complex, ptr %1779, i32 0, i32 0
  %1781 = load float, ptr %1780, align 4, !tbaa !11
  %1782 = load ptr, ptr %24, align 8, !tbaa !5
  %1783 = load i64, ptr %37, align 8, !tbaa !9
  %1784 = getelementptr inbounds %struct.complex, ptr %1782, i64 %1783
  %1785 = getelementptr inbounds %struct.complex, ptr %1784, i32 0, i32 0
  store float %1781, ptr %1785, align 4, !tbaa !11
  %1786 = load ptr, ptr %24, align 8, !tbaa !5
  %1787 = load i64, ptr %38, align 8, !tbaa !9
  %1788 = getelementptr inbounds %struct.complex, ptr %1786, i64 %1787
  %1789 = getelementptr inbounds %struct.complex, ptr %1788, i32 0, i32 1
  %1790 = load float, ptr %1789, align 4, !tbaa !14
  %1791 = load ptr, ptr %24, align 8, !tbaa !5
  %1792 = load i64, ptr %37, align 8, !tbaa !9
  %1793 = getelementptr inbounds %struct.complex, ptr %1791, i64 %1792
  %1794 = getelementptr inbounds %struct.complex, ptr %1793, i32 0, i32 1
  store float %1790, ptr %1794, align 4, !tbaa !14
  br label %1795

1795:                                             ; preds = %1773, %1751
  br label %1796

1796:                                             ; preds = %1795, %1620
  %1797 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %1797, ptr %37, align 8, !tbaa !9
  %1798 = load i64, ptr %83, align 8, !tbaa !9
  %1799 = load i64, ptr %64, align 8, !tbaa !9
  %1800 = sub nsw i64 %1798, %1799
  %1801 = add nsw i64 %1800, 1
  store i64 %1801, ptr %38, align 8, !tbaa !9
  %1802 = load i64, ptr %37, align 8, !tbaa !9
  %1803 = load i64, ptr %38, align 8, !tbaa !9
  %1804 = icmp sle i64 %1802, %1803
  br i1 %1804, label %1805, label %1807

1805:                                             ; preds = %1796
  %1806 = load i64, ptr %37, align 8, !tbaa !9
  br label %1809

1807:                                             ; preds = %1796
  %1808 = load i64, ptr %38, align 8, !tbaa !9
  br label %1809

1809:                                             ; preds = %1807, %1805
  %1810 = phi i64 [ %1806, %1805 ], [ %1808, %1807 ]
  store i64 %1810, ptr %69, align 8, !tbaa !9
  %1811 = load i64, ptr %69, align 8, !tbaa !9
  %1812 = srem i64 %1811, 2
  %1813 = load i64, ptr %69, align 8, !tbaa !9
  %1814 = sub nsw i64 %1813, %1812
  store i64 %1814, ptr %69, align 8, !tbaa !9
  %1815 = load i64, ptr %83, align 8, !tbaa !9
  %1816 = load i64, ptr %69, align 8, !tbaa !9
  %1817 = sub nsw i64 %1815, %1816
  %1818 = add nsw i64 %1817, 1
  store i64 %1818, ptr %64, align 8, !tbaa !9
  %1819 = load i64, ptr %69, align 8, !tbaa !9
  %1820 = mul nsw i64 %1819, 3
  %1821 = sub nsw i64 %1820, 3
  store i64 %1821, ptr %74, align 8, !tbaa !9
  %1822 = load ptr, ptr %19, align 8, !tbaa !5
  %1823 = load i64, ptr %1822, align 8, !tbaa !9
  %1824 = load i64, ptr %74, align 8, !tbaa !9
  %1825 = sub nsw i64 %1823, %1824
  %1826 = add nsw i64 %1825, 1
  store i64 %1826, ptr %66, align 8, !tbaa !9
  %1827 = load i64, ptr %74, align 8, !tbaa !9
  %1828 = add nsw i64 %1827, 1
  store i64 %1828, ptr %77, align 8, !tbaa !9
  %1829 = load ptr, ptr %19, align 8, !tbaa !5
  %1830 = load i64, ptr %1829, align 8, !tbaa !9
  %1831 = load i64, ptr %74, align 8, !tbaa !9
  %1832 = sub nsw i64 %1830, %1831
  %1833 = sub nsw i64 %1832, 3
  %1834 = load i64, ptr %74, align 8, !tbaa !9
  %1835 = add nsw i64 %1834, 1
  %1836 = sub nsw i64 %1833, %1835
  %1837 = add nsw i64 %1836, 1
  store i64 %1837, ptr %75, align 8, !tbaa !9
  %1838 = load i64, ptr %74, align 8, !tbaa !9
  %1839 = add nsw i64 %1838, 4
  store i64 %1839, ptr %80, align 8, !tbaa !9
  %1840 = load ptr, ptr %19, align 8, !tbaa !5
  %1841 = load i64, ptr %1840, align 8, !tbaa !9
  %1842 = load i64, ptr %74, align 8, !tbaa !9
  %1843 = sub nsw i64 %1841, %1842
  %1844 = load i64, ptr %80, align 8, !tbaa !9
  %1845 = sub nsw i64 %1843, %1844
  %1846 = add nsw i64 %1845, 1
  store i64 %1846, ptr %76, align 8, !tbaa !9
  %1847 = load ptr, ptr %17, align 8, !tbaa !5
  %1848 = load ptr, ptr %18, align 8, !tbaa !5
  %1849 = load ptr, ptr %19, align 8, !tbaa !5
  %1850 = load ptr, ptr %24, align 8, !tbaa !5
  %1851 = load i64, ptr %64, align 8, !tbaa !9
  %1852 = getelementptr inbounds %struct.complex, ptr %1850, i64 %1851
  %1853 = load ptr, ptr %22, align 8, !tbaa !5
  %1854 = load i64, ptr %33, align 8, !tbaa !9
  %1855 = getelementptr inbounds %struct.complex, ptr %1853, i64 %1854
  %1856 = load ptr, ptr %23, align 8, !tbaa !5
  %1857 = load ptr, ptr %25, align 8, !tbaa !5
  %1858 = load ptr, ptr %26, align 8, !tbaa !5
  %1859 = load ptr, ptr %27, align 8, !tbaa !5
  %1860 = load i64, ptr %35, align 8, !tbaa !9
  %1861 = getelementptr inbounds %struct.complex, ptr %1859, i64 %1860
  %1862 = load ptr, ptr %28, align 8, !tbaa !5
  %1863 = load ptr, ptr %29, align 8, !tbaa !5
  %1864 = getelementptr inbounds %struct.complex, ptr %1863, i64 1
  %1865 = load ptr, ptr %22, align 8, !tbaa !5
  %1866 = load i64, ptr %66, align 8, !tbaa !9
  %1867 = load i64, ptr %32, align 8, !tbaa !9
  %1868 = add nsw i64 %1866, %1867
  %1869 = getelementptr inbounds %struct.complex, ptr %1865, i64 %1868
  %1870 = load ptr, ptr %23, align 8, !tbaa !5
  %1871 = load ptr, ptr %22, align 8, !tbaa !5
  %1872 = load i64, ptr %80, align 8, !tbaa !9
  %1873 = load i64, ptr %32, align 8, !tbaa !9
  %1874 = add nsw i64 %1872, %1873
  %1875 = getelementptr inbounds %struct.complex, ptr %1871, i64 %1874
  %1876 = load ptr, ptr %23, align 8, !tbaa !5
  %1877 = load ptr, ptr %22, align 8, !tbaa !5
  %1878 = load i64, ptr %66, align 8, !tbaa !9
  %1879 = load i64, ptr %77, align 8, !tbaa !9
  %1880 = load i64, ptr %32, align 8, !tbaa !9
  %1881 = mul nsw i64 %1879, %1880
  %1882 = add nsw i64 %1878, %1881
  %1883 = getelementptr inbounds %struct.complex, ptr %1877, i64 %1882
  %1884 = load ptr, ptr %23, align 8, !tbaa !5
  %1885 = call i32 @claqr5_(ptr noundef %1847, ptr noundef %1848, ptr noundef %88, ptr noundef %1849, ptr noundef %86, ptr noundef %83, ptr noundef %69, ptr noundef %1852, ptr noundef %1855, ptr noundef %1856, ptr noundef %1857, ptr noundef %1858, ptr noundef %1861, ptr noundef %1862, ptr noundef %1864, ptr noundef @c__3, ptr noundef %1869, ptr noundef %1870, ptr noundef %76, ptr noundef %1875, ptr noundef %1876, ptr noundef %75, ptr noundef %1883, ptr noundef %1884)
  br label %1886

1886:                                             ; preds = %1809, %753, %734
  %1887 = load i64, ptr %61, align 8, !tbaa !9
  %1888 = icmp sgt i64 %1887, 0
  br i1 %1888, label %1889, label %1890

1889:                                             ; preds = %1886
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %1893

1890:                                             ; preds = %1886
  %1891 = load i64, ptr %82, align 8, !tbaa !9
  %1892 = add nsw i64 %1891, 1
  store i64 %1892, ptr %82, align 8, !tbaa !9
  br label %1893

1893:                                             ; preds = %1890, %1889
  br label %1894

1894:                                             ; preds = %1893
  %1895 = load i64, ptr %63, align 8, !tbaa !9
  %1896 = add nsw i64 %1895, 1
  store i64 %1896, ptr %63, align 8, !tbaa !9
  br label %442, !llvm.loop !22

1897:                                             ; preds = %442
  %1898 = load i64, ptr %83, align 8, !tbaa !9
  %1899 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 %1898, ptr %1899, align 8, !tbaa !9
  br label %1900

1900:                                             ; preds = %1897, %451
  br label %1901

1901:                                             ; preds = %1900, %159
  %1902 = load i64, ptr %98, align 8, !tbaa !9
  %1903 = sitofp i64 %1902 to float
  store float %1903, ptr %41, align 4, !tbaa !16
  %1904 = load float, ptr %41, align 4, !tbaa !16
  %1905 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1904, ptr %1905, align 4, !tbaa !11
  %1906 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float 0.000000e+00, ptr %1906, align 4, !tbaa !14
  %1907 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1908 = load float, ptr %1907, align 4, !tbaa !11
  %1909 = load ptr, ptr %29, align 8, !tbaa !5
  %1910 = getelementptr inbounds %struct.complex, ptr %1909, i64 1
  %1911 = getelementptr inbounds %struct.complex, ptr %1910, i32 0, i32 0
  store float %1908, ptr %1911, align 4, !tbaa !11
  %1912 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1913 = load float, ptr %1912, align 4, !tbaa !14
  %1914 = load ptr, ptr %29, align 8, !tbaa !5
  %1915 = getelementptr inbounds %struct.complex, ptr %1914, i64 1
  %1916 = getelementptr inbounds %struct.complex, ptr %1915, i32 0, i32 1
  store float %1913, ptr %1916, align 4, !tbaa !14
  store i32 0, ptr %16, align 4
  store i32 1, ptr %99, align 4
  br label %1917

1917:                                             ; preds = %1901, %322, %124
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  %1918 = load i32, ptr %16, align 4
  ret i32 %1918
}

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

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

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

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

declare double @r_imag(ptr noundef) #2

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

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

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

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

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

; 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 = { 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 = !{!"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 = !{!7, !7, i64 0}
!16 = !{!13, !13, 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}


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

%struct.complex = type { float, float }

@c__13 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__15 = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__12 = external hidden global i64, align 8
@c__14 = external hidden global i64, align 8
@c__16 = external hidden global i64, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8

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

38:                                               ; preds = %15
  %39 = icmp slt i64 %36, 12
  br i1 %39, label %40, label %44

40:                                               ; preds = %38
  %41 = load i64, ptr %13, align 8, !tbaa !5
  %.not638 = icmp eq i64 %41, -1
  br i1 %.not638, label %.loopexit650, label %42

42:                                               ; preds = %40
  %43 = tail call i32 @clahqr_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %14) #4
  br label %.loopexit650

44:                                               ; preds = %38
  %45 = load i64, ptr %0, align 8, !tbaa !5
  %.not = icmp eq i64 %45, 0
  %. = select i1 %.not, i8 69, i8 83
  store i8 %., ptr %31, align 1, !tbaa !9
  %46 = load i64, ptr %1, align 8, !tbaa !5
  %.not611 = icmp eq i64 %46, 0
  %spec.select = select i1 %.not611, i8 78, i8 86
  %47 = getelementptr inbounds i8, ptr %31, i64 1
  store i8 %spec.select, ptr %47, align 1
  %48 = call i64 @ilaenv_(ptr noundef nonnull @c__13, ptr noundef nonnull @.str, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef %13) #4
  %49 = call i64 @llvm.smax.i64(i64 %48, i64 2)
  %50 = load i64, ptr %4, align 8, !tbaa !5
  %51 = load i64, ptr %3, align 8, !tbaa !5
  %52 = sub nsw i64 %50, %51
  %53 = add nsw i64 %52, 1
  %54 = load i64, ptr %2, align 8, !tbaa !5
  %55 = add nsw i64 %54, -1
  %56 = sdiv i64 %55, 3
  %57 = call i64 @llvm.smin.i64(i64 %53, i64 %56)
  %58 = call i64 @llvm.smin.i64(i64 %57, i64 %49)
  %59 = call i64 @ilaenv_(ptr noundef nonnull @c__15, ptr noundef nonnull @.str, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %13) #4
  %60 = load i64, ptr %2, align 8, !tbaa !5
  %61 = add nsw i64 %60, 6
  %62 = sdiv i64 %61, 9
  %63 = call i64 @llvm.smin.i64(i64 %59, i64 %62)
  %64 = load i64, ptr %4, align 8, !tbaa !5
  %65 = load i64, ptr %3, align 8, !tbaa !5
  %66 = sub nsw i64 %64, %65
  %67 = call i64 @llvm.smin.i64(i64 %63, i64 %66)
  %68 = srem i64 %67, 2
  %69 = sub nsw i64 %67, %68
  %70 = call i64 @llvm.smax.i64(i64 %69, i64 2)
  %71 = add nsw i64 %58, 1
  store i64 %71, ptr %16, align 8, !tbaa !5
  %72 = call i32 @claqr3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef %7, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %12, ptr noundef nonnull @c_n1) #4
  %73 = lshr i64 %70, 1
  %74 = add nuw nsw i64 %73, %70
  store i64 %74, ptr %16, align 8, !tbaa !5
  %75 = load float, ptr %12, align 4, !tbaa !10
  %76 = fptosi float %75 to i64
  %77 = call i64 @llvm.smax.i64(i64 %74, i64 %76)
  %78 = load i64, ptr %13, align 8, !tbaa !5
  %79 = icmp eq i64 %78, -1
  br i1 %79, label %80, label %82

80:                                               ; preds = %44
  %81 = uitofp nneg i64 %77 to float
  br label %507

82:                                               ; preds = %44
  %83 = call i64 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %13) #4
  %84 = call i64 @llvm.smax.i64(i64 %83, i64 11)
  %85 = call i64 @ilaenv_(ptr noundef nonnull @c__14, ptr noundef nonnull @.str, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %13) #4
  %86 = call i64 @llvm.smax.i64(i64 %85, i64 0)
  %87 = call i64 @ilaenv_(ptr noundef nonnull @c__16, ptr noundef nonnull @.str, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %13) #4
  %88 = call i64 @llvm.smax.i64(i64 %87, i64 0)
  %89 = call i64 @llvm.umin.i64(i64 %88, i64 2)
  store i64 %89, ptr %30, align 8, !tbaa !5
  %90 = load i64, ptr %2, align 8, !tbaa !5
  %91 = add nsw i64 %90, -1
  %92 = sdiv i64 %91, 3
  %93 = load i64, ptr %13, align 8, !tbaa !5
  %94 = sdiv i64 %93, 2
  %95 = call i64 @llvm.smin.i64(i64 %92, i64 %94)
  store i64 %95, ptr %23, align 8, !tbaa !5
  %96 = load i64, ptr %4, align 8, !tbaa !5
  %97 = load i64, ptr %3, align 8, !tbaa !5
  %98 = sub nsw i64 %96, %97
  %99 = icmp slt i64 %98, 10
  %100 = mul i64 %98, 30
  %101 = add i64 %100, 30
  %102 = select i1 %99, i64 300, i64 %101
  store i64 %96, ptr %27, align 8, !tbaa !5
  store i64 %102, ptr %16, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %34, i64 8
  %invariant.gep664 = getelementptr i8, ptr %34, i64 -8
  %.not619668 = icmp slt i64 %102, 1
  br i1 %.not619668, label %._crit_edge674, label %.lr.ph673

.lr.ph673:                                        ; preds = %82
  %103 = add nsw i64 %90, 6
  %104 = sdiv i64 %103, 9
  %105 = shl i64 %93, 1
  %106 = sdiv i64 %105, 3
  %107 = call i64 @llvm.smin.i64(i64 %104, i64 %106)
  %108 = srem i64 %107, 2
  %109 = sub nsw i64 %107, %108
  %110 = call i64 @llvm.smin.i64(i64 %84, i64 %95)
  %111 = call i64 @llvm.smin.i64(i64 %109, i64 %70)
  %112 = add i64 %32, 1
  %113 = getelementptr inbounds i8, ptr %17, i64 4
  %114 = getelementptr i8, ptr %5, i64 8
  br label %115

115:                                              ; preds = %.lr.ph673, %500
  %.0592671 = phi i64 [ 1, %.lr.ph673 ], [ %.1593, %500 ]
  %.0594670 = phi i64 [ undef, %.lr.ph673 ], [ %.1595, %500 ]
  %.0600669 = phi i64 [ 1, %.lr.ph673 ], [ %503, %500 ]
  %116 = load i64, ptr %27, align 8, !tbaa !5
  %117 = load i64, ptr %3, align 8, !tbaa !5
  %118 = icmp slt i64 %116, %117
  br i1 %118, label %.loopexit650, label %.preheader649

.preheader649:                                    ; preds = %115
  %.not620.not651 = icmp sgt i64 %116, %117
  br i1 %.not620.not651, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader649, %129
  %.0601652 = phi i64 [ %119, %129 ], [ %116, %.preheader649 ]
  %119 = add nsw i64 %.0601652, -1
  %120 = mul nsw i64 %119, %32
  %121 = getelementptr %struct.complex, ptr %34, i64 %.0601652
  %122 = getelementptr %struct.complex, ptr %121, i64 %120
  %123 = load float, ptr %122, align 4, !tbaa !10
  %124 = fcmp oeq float %123, 0.000000e+00
  br i1 %124, label %125, label %129

125:                                              ; preds = %.lr.ph
  %126 = getelementptr inbounds i8, ptr %122, i64 4
  %127 = load float, ptr %126, align 4, !tbaa !13
  %128 = fcmp oeq float %127, 0.000000e+00
  br i1 %128, label %._crit_edge, label %129

129:                                              ; preds = %.lr.ph, %125
  %.not620.not = icmp sgt i64 %119, %117
  br i1 %.not620.not, label %.lr.ph, label %._crit_edge, !llvm.loop !14

._crit_edge:                                      ; preds = %125, %129, %.preheader649
  %.1602 = phi i64 [ %117, %.preheader649 ], [ %117, %129 ], [ %.0601652, %125 ]
  store i64 %.1602, ptr %28, align 8, !tbaa !5
  %130 = sub nsw i64 %116, %.1602
  %131 = add nsw i64 %130, 1
  %132 = call i64 @llvm.smin.i64(i64 %131, i64 %95)
  %133 = icmp slt i64 %.0592671, 5
  %134 = load i64, ptr %23, align 8
  %135 = shl i64 %134, 1
  %.sink = select i1 %133, i64 %58, i64 %135
  %136 = call i64 @llvm.smin.i64(i64 %132, i64 %.sink)
  store i64 %136, ptr %23, align 8, !tbaa !5
  %137 = icmp slt i64 %136, %95
  br i1 %137, label %138, label %175

138:                                              ; preds = %._crit_edge
  %.not625 = icmp slt i64 %136, %130
  br i1 %.not625, label %140, label %139

139:                                              ; preds = %138
  store i64 %131, ptr %23, align 8, !tbaa !5
  br label %175

140:                                              ; preds = %138
  %141 = sub nsw i64 %116, %136
  %142 = mul nsw i64 %141, %32
  %143 = add nsw i64 %141, -1
  %144 = mul nsw i64 %143, %32
  %145 = getelementptr %struct.complex, ptr %34, i64 %141
  %146 = getelementptr i8, ptr %145, i64 8
  %147 = getelementptr %struct.complex, ptr %146, i64 %142
  %148 = load float, ptr %147, align 4, !tbaa !10
  %149 = call double @r_imag(ptr noundef nonnull %147) #4
  %150 = fptrunc double %149 to float
  %151 = insertelement <2 x float> poison, float %148, i64 0
  %152 = insertelement <2 x float> %151, float %150, i64 1
  %153 = fcmp oge <2 x float> %152, zeroinitializer
  %154 = fneg <2 x float> %152
  %155 = select <2 x i1> %153, <2 x float> %152, <2 x float> %154
  %156 = fpext <2 x float> %155 to <2 x double>
  %157 = getelementptr %struct.complex, ptr %145, i64 %144
  %158 = load float, ptr %157, align 4, !tbaa !10
  %159 = call double @r_imag(ptr noundef nonnull %157) #4
  %160 = fptrunc double %159 to float
  %161 = insertelement <2 x float> poison, float %158, i64 0
  %162 = insertelement <2 x float> %161, float %160, i64 1
  %163 = fcmp oge <2 x float> %162, zeroinitializer
  %164 = fneg <2 x float> %162
  %165 = select <2 x i1> %163, <2 x float> %162, <2 x float> %164
  %166 = fpext <2 x float> %165 to <2 x double>
  %167 = shufflevector <2 x double> %156, <2 x double> %166, <2 x i32> <i32 0, i32 2>
  %168 = shufflevector <2 x double> %156, <2 x double> %166, <2 x i32> <i32 1, i32 3>
  %169 = fadd <2 x double> %167, %168
  %170 = extractelement <2 x double> %169, i64 0
  %171 = extractelement <2 x double> %169, i64 1
  %172 = fcmp ogt double %170, %171
  %.pre.pre = load i64, ptr %23, align 8
  br i1 %172, label %173, label %175

173:                                              ; preds = %140
  %174 = add nsw i64 %.pre.pre, 1
  store i64 %174, ptr %23, align 8, !tbaa !5
  br label %175

175:                                              ; preds = %139, %173, %140, %._crit_edge
  %.pre = phi i64 [ %131, %139 ], [ %174, %173 ], [ %.pre.pre, %140 ], [ %136, %._crit_edge ]
  br i1 %133, label %183, label %176

176:                                              ; preds = %175
  %177 = icmp slt i64 %.0594670, 0
  %.not626 = icmp slt i64 %.pre, %132
  %or.cond639 = select i1 %177, i1 %.not626, i1 false
  br i1 %or.cond639, label %183, label %178

178:                                              ; preds = %176
  %179 = add nsw i64 %.0594670, 1
  %180 = sub nsw i64 %.pre, %179
  %181 = icmp slt i64 %180, 2
  %spec.store.select = select i1 %181, i64 0, i64 %179
  %182 = sub nsw i64 %.pre, %spec.store.select
  store i64 %182, ptr %23, align 8, !tbaa !5
  br label %183

183:                                              ; preds = %176, %175, %178
  %184 = phi i64 [ %182, %178 ], [ %.pre, %175 ], [ %.pre, %176 ]
  %.1595 = phi i64 [ %spec.store.select, %178 ], [ -1, %175 ], [ %.0594670, %176 ]
  %185 = load i64, ptr %2, align 8, !tbaa !5
  %186 = sub nsw i64 %185, %184
  %187 = add nsw i64 %184, 1
  %188 = xor i64 %184, -1
  %189 = add i64 %186, %188
  store i64 %189, ptr %25, align 8, !tbaa !5
  %.neg641 = add i64 %185, 1
  %190 = shl i64 %184, 1
  %reass.sub = sub i64 %.neg641, %190
  %191 = add i64 %reass.sub, -2
  store i64 %191, ptr %26, align 8, !tbaa !5
  %192 = getelementptr inbounds %struct.complex, ptr %5, i64 %186
  %193 = mul nsw i64 %187, %32
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %186
  %194 = getelementptr %struct.complex, ptr %gep, i64 %193
  %gep663 = getelementptr %struct.complex, ptr %114, i64 %184
  %195 = call i32 @claqr3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull %23, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef %7, ptr noundef %192, ptr noundef nonnull %6, ptr noundef nonnull %25, ptr noundef %194, ptr noundef nonnull %6, ptr noundef nonnull %26, ptr noundef %gep663, ptr noundef nonnull %6, ptr noundef nonnull %12, ptr noundef nonnull %13) #4
  %196 = load i64, ptr %20, align 8, !tbaa !5
  %197 = load i64, ptr %27, align 8, !tbaa !5
  %198 = sub nsw i64 %197, %196
  store i64 %198, ptr %27, align 8, !tbaa !5
  %199 = load i64, ptr %21, align 8, !tbaa !5
  %200 = sub nsw i64 %198, %199
  %201 = add nsw i64 %200, 1
  %202 = icmp eq i64 %196, 0
  br i1 %202, label %._crit_edge679, label %203

._crit_edge679:                                   ; preds = %183
  %.pre680 = load i64, ptr %28, align 8, !tbaa !5
  %.pre684 = sub nsw i64 %198, %.pre680
  br label %210

203:                                              ; preds = %183
  %204 = mul nsw i64 %196, 100
  %205 = load i64, ptr %23, align 8, !tbaa !5
  %206 = mul nsw i64 %205, %86
  %.not627 = icmp sgt i64 %204, %206
  br i1 %.not627, label %500, label %207

207:                                              ; preds = %203
  %208 = load i64, ptr %28, align 8, !tbaa !5
  %209 = sub nsw i64 %198, %208
  %.not629 = icmp slt i64 %209, %110
  br i1 %.not629, label %500, label %210

210:                                              ; preds = %._crit_edge679, %207
  %.pre-phi = phi i64 [ %.pre684, %._crit_edge679 ], [ %209, %207 ]
  %211 = call i64 @llvm.smax.i64(i64 %.pre-phi, i64 2)
  %212 = call i64 @llvm.smin.i64(i64 %111, i64 %211)
  %213 = srem i64 %212, 2
  %214 = sdiv i64 %212, 2
  %215 = sub nsw i64 %212, %213
  store i64 %215, ptr %22, align 8, !tbaa !5
  %216 = srem i64 %.0592671, 6
  %217 = icmp eq i64 %216, 0
  br i1 %217, label %218, label %251

218:                                              ; preds = %210
  %219 = sub nsw i64 %198, %215
  %220 = add nsw i64 %219, 1
  %221 = add nsw i64 %219, 2
  %.not636658 = icmp slt i64 %198, %221
  br i1 %.not636658, label %.loopexit, label %.lr.ph661

.lr.ph661:                                        ; preds = %218, %.lr.ph661
  %.0596659 = phi i64 [ %250, %.lr.ph661 ], [ %198, %218 ]
  %222 = mul i64 %.0596659, %112
  %223 = add nsw i64 %.0596659, -1
  %224 = mul nsw i64 %223, %32
  %225 = getelementptr %struct.complex, ptr %34, i64 %.0596659
  %226 = getelementptr %struct.complex, ptr %225, i64 %224
  %227 = load float, ptr %226, align 4, !tbaa !10
  %228 = fcmp oge float %227, 0.000000e+00
  %229 = fneg float %227
  %230 = select i1 %228, float %227, float %229
  %231 = fpext float %230 to double
  %232 = call double @r_imag(ptr noundef nonnull %226) #4
  %233 = fptrunc double %232 to float
  %234 = fcmp oge float %233, 0.000000e+00
  %235 = fneg float %233
  %236 = select i1 %234, float %233, float %235
  %237 = fpext float %236 to double
  %238 = fadd double %231, %237
  %239 = fmul double %238, 7.500000e-01
  %240 = fptrunc double %239 to float
  %241 = getelementptr inbounds %struct.complex, ptr %34, i64 %222
  %242 = load float, ptr %241, align 4, !tbaa !10
  %243 = fadd float %242, %240
  store float %243, ptr %17, align 8, !tbaa !10
  %244 = getelementptr inbounds i8, ptr %241, i64 4
  %245 = load float, ptr %244, align 4, !tbaa !13
  store float %245, ptr %113, align 4, !tbaa !13
  %246 = getelementptr inbounds %struct.complex, ptr %35, i64 %.0596659
  store float %243, ptr %246, align 4, !tbaa !10
  %247 = getelementptr inbounds i8, ptr %246, i64 4
  store float %245, ptr %247, align 4, !tbaa !13
  %248 = getelementptr inbounds %struct.complex, ptr %35, i64 %223
  store float %243, ptr %248, align 4, !tbaa !10
  %249 = getelementptr inbounds i8, ptr %248, i64 4
  store float %245, ptr %249, align 4, !tbaa !13
  %250 = add nsw i64 %.0596659, -2
  %.not636 = icmp slt i64 %250, %221
  br i1 %.not636, label %.loopexit, label %.lr.ph661, !llvm.loop !16

251:                                              ; preds = %210
  %252 = sub nsw i64 %198, %201
  %.not632.not = icmp slt i64 %252, %214
  br i1 %.not632.not, label %253, label %390

253:                                              ; preds = %251
  %254 = sub nsw i64 %198, %215
  %255 = add nsw i64 %254, 1
  %256 = load i64, ptr %2, align 8, !tbaa !5
  %257 = sub nsw i64 %256, %215
  %258 = mul i64 %255, %112
  %259 = getelementptr inbounds %struct.complex, ptr %34, i64 %258
  %260 = getelementptr inbounds %struct.complex, ptr %5, i64 %257
  %261 = call i32 @clacpy_(ptr noundef nonnull @.str.1, ptr noundef nonnull %22, ptr noundef nonnull %22, ptr noundef %259, ptr noundef nonnull %6, ptr noundef %260, ptr noundef nonnull %6) #4
  %262 = load i64, ptr %22, align 8, !tbaa !5
  %263 = icmp sgt i64 %262, %84
  %264 = getelementptr %struct.complex, ptr %7, i64 %254
  br i1 %263, label %265, label %267

265:                                              ; preds = %253
  %266 = call i32 @claqr4_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_false, ptr noundef nonnull %22, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef %260, ptr noundef nonnull %6, ptr noundef %264, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %24) #4
  br label %269

267:                                              ; preds = %253
  %268 = call i32 @clahqr_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_false, ptr noundef nonnull %22, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef %260, ptr noundef nonnull %6, ptr noundef %264, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef nonnull %24) #4
  br label %269

269:                                              ; preds = %267, %265
  %270 = load i64, ptr %24, align 8, !tbaa !5
  %271 = add nsw i64 %270, %255
  %272 = load i64, ptr %27, align 8, !tbaa !5
  %.not633 = icmp slt i64 %271, %272
  br i1 %.not633, label %390, label %273

273:                                              ; preds = %269
  %274 = add nsw i64 %272, -1
  %275 = mul nsw i64 %274, %32
  %276 = mul nsw i64 %272, %32
  %277 = getelementptr %struct.complex, ptr %34, i64 %274
  %278 = getelementptr %struct.complex, ptr %277, i64 %275
  %279 = load float, ptr %278, align 4, !tbaa !10
  %280 = call double @r_imag(ptr noundef nonnull %278) #4
  %281 = getelementptr %struct.complex, ptr %34, i64 %272
  %282 = getelementptr %struct.complex, ptr %281, i64 %275
  %283 = load float, ptr %282, align 4, !tbaa !10
  %284 = load i64, ptr %27, align 8, !tbaa !5
  %285 = add nsw i64 %284, -1
  %286 = mul nsw i64 %285, %32
  %287 = getelementptr %struct.complex, ptr %34, i64 %284
  %288 = getelementptr %struct.complex, ptr %287, i64 %286
  %289 = call double @r_imag(ptr noundef %288) #4
  %290 = insertelement <2 x float> poison, float %279, i64 0
  %291 = insertelement <2 x float> %290, float %283, i64 1
  %292 = fcmp oge <2 x float> %291, zeroinitializer
  %293 = fneg <2 x float> %291
  %294 = select <2 x i1> %292, <2 x float> %291, <2 x float> %293
  %295 = fpext <2 x float> %294 to <2 x double>
  %296 = insertelement <2 x double> poison, double %280, i64 0
  %297 = insertelement <2 x double> %296, double %289, i64 1
  %298 = fptrunc <2 x double> %297 to <2 x float>
  %299 = fcmp oge <2 x float> %298, zeroinitializer
  %300 = fneg <2 x float> %298
  %301 = select <2 x i1> %299, <2 x float> %298, <2 x float> %300
  %302 = fpext <2 x float> %301 to <2 x double>
  %303 = fadd <2 x double> %295, %302
  %shift = shufflevector <2 x double> %303, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %304 = fadd <2 x double> %303, %shift
  %305 = getelementptr %struct.complex, ptr %277, i64 %276
  %306 = load float, ptr %305, align 4, !tbaa !10
  %307 = load i64, ptr %27, align 8, !tbaa !5
  %308 = mul nsw i64 %307, %32
  %gep665 = getelementptr %struct.complex, ptr %invariant.gep664, i64 %307
  %309 = getelementptr %struct.complex, ptr %gep665, i64 %308
  %310 = call double @r_imag(ptr noundef %309) #4
  %311 = getelementptr %struct.complex, ptr %281, i64 %276
  %312 = load float, ptr %311, align 4, !tbaa !10
  %313 = load i64, ptr %27, align 8, !tbaa !5
  %314 = mul i64 %313, %112
  %315 = getelementptr inbounds %struct.complex, ptr %34, i64 %314
  %316 = call double @r_imag(ptr noundef %315) #4
  %317 = insertelement <2 x float> poison, float %306, i64 0
  %318 = insertelement <2 x float> %317, float %312, i64 1
  %319 = fcmp oge <2 x float> %318, zeroinitializer
  %320 = fneg <2 x float> %318
  %321 = select <2 x i1> %319, <2 x float> %318, <2 x float> %320
  %322 = fpext <2 x float> %321 to <2 x double>
  %323 = insertelement <2 x double> poison, double %310, i64 0
  %324 = insertelement <2 x double> %323, double %316, i64 1
  %325 = fptrunc <2 x double> %324 to <2 x float>
  %326 = fcmp oge <2 x float> %325, zeroinitializer
  %327 = fneg <2 x float> %325
  %328 = select <2 x i1> %326, <2 x float> %325, <2 x float> %327
  %329 = fpext <2 x float> %328 to <2 x double>
  %330 = fadd <2 x double> %322, %329
  %331 = fadd <2 x double> %304, %330
  %shift694 = shufflevector <2 x double> %330, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %332 = fadd <2 x double> %331, %shift694
  %333 = extractelement <2 x double> %332, i64 0
  %334 = fptrunc double %333 to float
  %335 = load i64, ptr %27, align 8, !tbaa !5
  %336 = add nsw i64 %335, -1
  %337 = mul i64 %336, %112
  %338 = getelementptr inbounds %struct.complex, ptr %34, i64 %337
  %339 = mul nsw i64 %336, %32
  %340 = getelementptr %struct.complex, ptr %34, i64 %335
  %341 = getelementptr %struct.complex, ptr %340, i64 %339
  %342 = mul nsw i64 %335, %32
  %343 = getelementptr i8, ptr %340, i64 -8
  %344 = getelementptr %struct.complex, ptr %343, i64 %342
  %345 = load float, ptr %344, align 4, !tbaa !10
  %346 = fdiv float %345, %334
  %347 = getelementptr inbounds i8, ptr %344, i64 4
  %348 = load float, ptr %347, align 4, !tbaa !13
  %349 = fdiv float %348, %334
  %350 = mul i64 %335, %112
  %351 = getelementptr inbounds %struct.complex, ptr %34, i64 %350
  %352 = load <2 x float>, ptr %338, align 4, !tbaa !17
  %353 = insertelement <2 x float> poison, float %334, i64 0
  %354 = shufflevector <2 x float> %353, <2 x float> poison, <2 x i32> zeroinitializer
  %355 = fdiv <2 x float> %352, %354
  %356 = load <2 x float>, ptr %351, align 4, !tbaa !17
  %357 = fdiv <2 x float> %356, %354
  %358 = fadd <2 x float> %355, %357
  %359 = fmul <2 x float> %358, <float 5.000000e-01, float 5.000000e-01>
  %360 = fsub <2 x float> %355, %359
  store <2 x float> %360, ptr %19, align 8, !tbaa !17
  %361 = fneg float %349
  %362 = load <2 x float>, ptr %341, align 4, !tbaa !17
  %363 = fdiv <2 x float> %362, %354
  %364 = fsub <2 x float> %357, %359
  %365 = shufflevector <2 x float> %360, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %366 = fneg <2 x float> %360
  %367 = shufflevector <2 x float> %365, <2 x float> %366, <2 x i32> <i32 0, i32 3>
  %368 = fmul <2 x float> %364, %367
  %369 = shufflevector <2 x float> %368, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %370 = shufflevector <2 x float> %360, <2 x float> poison, <2 x i32> zeroinitializer
  %371 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %370, <2 x float> %364, <2 x float> %369)
  %372 = insertelement <2 x float> poison, float %349, i64 0
  %373 = insertelement <2 x float> %372, float %361, i64 1
  %374 = fmul <2 x float> %363, %373
  %375 = shufflevector <2 x float> %374, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %376 = insertelement <2 x float> poison, float %346, i64 0
  %377 = shufflevector <2 x float> %376, <2 x float> poison, <2 x i32> zeroinitializer
  %378 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %377, <2 x float> %363, <2 x float> %375)
  %379 = fsub <2 x float> %371, %378
  store <2 x float> %379, ptr %17, align 8, !tbaa !17
  %380 = fneg <2 x float> %379
  store <2 x float> %380, ptr %18, align 8, !tbaa !17
  call void @c_sqrt(ptr noundef nonnull %17, ptr noundef nonnull %18) #4
  %381 = load i64, ptr %27, align 8, !tbaa !5
  %382 = getelementptr %struct.complex, ptr %35, i64 %381
  %383 = getelementptr i8, ptr %382, i64 -8
  %384 = load <2 x float>, ptr %17, align 8, !tbaa !17
  %385 = fadd <2 x float> %359, %384
  %386 = fmul <2 x float> %385, %354
  store <2 x float> %386, ptr %383, align 4, !tbaa !17
  %387 = fsub <2 x float> %359, %384
  store <2 x float> %387, ptr %18, align 8, !tbaa !17
  %388 = fmul <2 x float> %387, %354
  store <2 x float> %388, ptr %17, align 8, !tbaa !17
  store <2 x float> %388, ptr %382, align 4, !tbaa !17
  %389 = add nsw i64 %381, -1
  br label %390

390:                                              ; preds = %269, %273, %251
  %391 = phi i64 [ %381, %273 ], [ %272, %269 ], [ %198, %251 ]
  %.0598 = phi i64 [ %389, %273 ], [ %271, %269 ], [ %201, %251 ]
  %392 = sub nsw i64 %391, %.0598
  %393 = load i64, ptr %22, align 8, !tbaa !5
  %.not634 = icmp slt i64 %392, %393
  %394 = icmp sle i64 %391, %.0598
  %or.cond675 = or i1 %.not634, %394
  br i1 %or.cond675, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %390, %427
  %.2603657 = phi i64 [ %428, %427 ], [ %391, %390 ]
  br label %395

395:                                              ; preds = %.preheader, %426
  %.1656 = phi i64 [ 1, %.preheader ], [ %.2, %426 ]
  %.1597655 = phi i64 [ %.0598, %.preheader ], [ %396, %426 ]
  %396 = add nsw i64 %.1597655, 1
  %397 = getelementptr inbounds %struct.complex, ptr %35, i64 %.1597655
  %398 = load float, ptr %397, align 4, !tbaa !10
  %399 = call double @r_imag(ptr noundef nonnull %397) #4
  %400 = fptrunc double %399 to float
  %401 = insertelement <2 x float> poison, float %398, i64 0
  %402 = insertelement <2 x float> %401, float %400, i64 1
  %403 = fcmp oge <2 x float> %402, zeroinitializer
  %404 = fneg <2 x float> %402
  %405 = select <2 x i1> %403, <2 x float> %402, <2 x float> %404
  %406 = fpext <2 x float> %405 to <2 x double>
  %407 = getelementptr %struct.complex, ptr %7, i64 %.1597655
  %408 = load float, ptr %407, align 4, !tbaa !10
  %409 = call double @r_imag(ptr noundef nonnull %407) #4
  %410 = fptrunc double %409 to float
  %411 = insertelement <2 x float> poison, float %408, i64 0
  %412 = insertelement <2 x float> %411, float %410, i64 1
  %413 = fcmp oge <2 x float> %412, zeroinitializer
  %414 = fneg <2 x float> %412
  %415 = select <2 x i1> %413, <2 x float> %412, <2 x float> %414
  %416 = fpext <2 x float> %415 to <2 x double>
  %417 = shufflevector <2 x double> %406, <2 x double> %416, <2 x i32> <i32 0, i32 2>
  %418 = shufflevector <2 x double> %406, <2 x double> %416, <2 x i32> <i32 1, i32 3>
  %419 = fadd <2 x double> %417, %418
  %420 = extractelement <2 x double> %419, i64 0
  %421 = extractelement <2 x double> %419, i64 1
  %422 = fcmp olt double %420, %421
  br i1 %422, label %423, label %426

423:                                              ; preds = %395
  %424 = load <4 x float>, ptr %397, align 4, !tbaa !17
  %425 = shufflevector <4 x float> %424, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  store <4 x float> %425, ptr %397, align 4, !tbaa !17
  br label %426

426:                                              ; preds = %395, %423
  %.2 = phi i64 [ 0, %423 ], [ %.1656, %395 ]
  %.not635.not = icmp slt i64 %396, %.2603657
  br i1 %.not635.not, label %395, label %427, !llvm.loop !18

427:                                              ; preds = %426
  %428 = add nsw i64 %.2603657, -1
  %429 = icmp sle i64 %428, %.0598
  %430 = icmp ne i64 %.2, 0
  %or.cond = select i1 %429, i1 true, i1 %430
  br i1 %or.cond, label %.loopexit, label %.preheader, !llvm.loop !19

.loopexit:                                        ; preds = %427, %.lr.ph661, %218, %390
  %.1599 = phi i64 [ %.0598, %390 ], [ %220, %218 ], [ %220, %.lr.ph661 ], [ %.0598, %427 ]
  %431 = load i64, ptr %27, align 8, !tbaa !5
  %432 = sub nsw i64 %431, %.1599
  %433 = icmp eq i64 %432, 1
  br i1 %433, label %434, label %479

434:                                              ; preds = %.loopexit
  %435 = mul i64 %431, %112
  %436 = getelementptr inbounds %struct.complex, ptr %35, i64 %431
  %437 = getelementptr inbounds %struct.complex, ptr %34, i64 %435
  %438 = load <2 x float>, ptr %436, align 4, !tbaa !17
  %439 = load <2 x float>, ptr %437, align 4, !tbaa !17
  %440 = fsub <2 x float> %438, %439
  store <2 x float> %440, ptr %18, align 8, !tbaa !17
  store <2 x float> %440, ptr %17, align 8, !tbaa !17
  %441 = getelementptr i8, ptr %436, i64 -8
  %442 = load <2 x float>, ptr %441, align 4, !tbaa !17
  %443 = fsub <2 x float> %442, %439
  store <2 x float> %443, ptr %19, align 8, !tbaa !17
  %444 = extractelement <2 x float> %440, i64 0
  %445 = fcmp oge float %444, 0.000000e+00
  %446 = fneg float %444
  %447 = select i1 %445, float %444, float %446
  %448 = fpext float %447 to double
  %449 = call double @r_imag(ptr noundef nonnull %17) #4
  %450 = fptrunc double %449 to float
  %451 = fcmp oge float %450, 0.000000e+00
  %452 = fneg float %450
  %453 = select i1 %451, float %450, float %452
  %454 = fpext float %453 to double
  %455 = fadd double %448, %454
  %456 = load float, ptr %19, align 8, !tbaa !10
  %457 = call double @r_imag(ptr noundef nonnull %19) #4
  %458 = fptrunc double %457 to float
  %459 = insertelement <2 x float> poison, float %456, i64 0
  %460 = insertelement <2 x float> %459, float %458, i64 1
  %461 = fcmp oge <2 x float> %460, zeroinitializer
  %462 = fneg <2 x float> %460
  %463 = select <2 x i1> %461, <2 x float> %460, <2 x float> %462
  %464 = fpext <2 x float> %463 to <2 x double>
  %shift695 = shufflevector <2 x double> %464, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %465 = fadd <2 x double> %shift695, %464
  %466 = extractelement <2 x double> %465, i64 0
  %467 = fcmp olt double %455, %466
  %468 = load i64, ptr %27, align 8, !tbaa !5
  %469 = getelementptr %struct.complex, ptr %35, i64 %468
  br i1 %467, label %470, label %473

470:                                              ; preds = %434
  %471 = load float, ptr %469, align 4, !tbaa !10
  %472 = getelementptr i8, ptr %469, i64 -8
  store float %471, ptr %472, align 4, !tbaa !10
  br label %.sink.split

473:                                              ; preds = %434
  %474 = getelementptr i8, ptr %469, i64 -8
  %475 = load float, ptr %474, align 4, !tbaa !10
  store float %475, ptr %469, align 4, !tbaa !10
  br label %.sink.split

.sink.split:                                      ; preds = %473, %470
  %.sink690 = phi i64 [ 4, %470 ], [ -4, %473 ]
  %.sink688 = phi i64 [ -4, %470 ], [ 4, %473 ]
  %476 = getelementptr i8, ptr %469, i64 %.sink690
  %477 = load float, ptr %476, align 4, !tbaa !13
  %478 = getelementptr i8, ptr %469, i64 %.sink688
  store float %477, ptr %478, align 4, !tbaa !13
  br label %479

479:                                              ; preds = %.sink.split, %.loopexit
  %480 = phi i64 [ %431, %.loopexit ], [ %468, %.sink.split ]
  %481 = load i64, ptr %22, align 8, !tbaa !5
  %reass.sub676 = sub i64 %480, %.1599
  %482 = add i64 %reass.sub676, 1
  %483 = call i64 @llvm.smin.i64(i64 %481, i64 %482)
  %484 = srem i64 %483, 2
  %485 = sub nsw i64 %483, %484
  store i64 %485, ptr %22, align 8, !tbaa !5
  %486 = sub nsw i64 %480, %485
  %487 = mul nsw i64 %485, 3
  %488 = add nsw i64 %487, -3
  %489 = load i64, ptr %2, align 8, !tbaa !5
  %490 = sub nsw i64 %489, %488
  %491 = add nsw i64 %487, -2
  %492 = sub i64 %490, %487
  store i64 %492, ptr %25, align 8, !tbaa !5
  %.neg = mul i64 %485, -6
  %reass.sub677 = add i64 %.neg, %489
  %493 = add i64 %reass.sub677, 3
  store i64 %493, ptr %26, align 8, !tbaa !5
  %494 = getelementptr %struct.complex, ptr %7, i64 %486
  %495 = getelementptr inbounds %struct.complex, ptr %5, i64 %490
  %496 = getelementptr inbounds %struct.complex, ptr %5, i64 %487
  %497 = mul nsw i64 %491, %32
  %gep667 = getelementptr %struct.complex, ptr %invariant.gep, i64 %490
  %498 = getelementptr %struct.complex, ptr %gep667, i64 %497
  %499 = call i32 @claqr5_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %30, ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull %22, ptr noundef %494, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull @c__3, ptr noundef %495, ptr noundef nonnull %6, ptr noundef nonnull %26, ptr noundef %496, ptr noundef nonnull %6, ptr noundef nonnull %25, ptr noundef %498, ptr noundef nonnull %6) #4
  %.pre681 = load i64, ptr %20, align 8, !tbaa !5
  br label %500

500:                                              ; preds = %479, %207, %203
  %501 = phi i64 [ %.pre681, %479 ], [ %196, %207 ], [ %196, %203 ]
  %502 = add nsw i64 %.0592671, 1
  %.inv = icmp slt i64 %501, 1
  %.1593 = select i1 %.inv, i64 %502, i64 1
  %503 = add nuw nsw i64 %.0600669, 1
  %504 = load i64, ptr %16, align 8, !tbaa !5
  %.not619.not = icmp slt i64 %.0600669, %504
  br i1 %.not619.not, label %115, label %._crit_edge674.loopexit, !llvm.loop !20

._crit_edge674.loopexit:                          ; preds = %500
  %.pre682 = load i64, ptr %27, align 8, !tbaa !5
  br label %._crit_edge674

._crit_edge674:                                   ; preds = %._crit_edge674.loopexit, %82
  %505 = phi i64 [ %.pre682, %._crit_edge674.loopexit ], [ %96, %82 ]
  store i64 %505, ptr %14, align 8, !tbaa !5
  br label %.loopexit650

.loopexit650:                                     ; preds = %115, %._crit_edge674, %40, %42
  %.0 = phi i64 [ 1, %42 ], [ 1, %40 ], [ %77, %._crit_edge674 ], [ %77, %115 ]
  %506 = uitofp nneg i64 %.0 to float
  br label %507

507:                                              ; preds = %15, %.loopexit650, %80
  %.sink692 = phi float [ %506, %.loopexit650 ], [ %81, %80 ], [ 1.000000e+00, %15 ]
  store float %.sink692, ptr %12, align 4, !tbaa !10
  %508 = getelementptr inbounds i8, ptr %12, i64 4
  store float 0.000000e+00, ptr %508, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 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
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  ret i32 0
}

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

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

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

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

declare double @r_imag(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 @claqr4_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

; 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.smin.i64(i64, i64) #3

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fmuladd.v2f32(<2 x float>, <2 x float>, <2 x float>) #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 = !{!7, !7, i64 0}
!10 = !{!11, !12, i64 0}
!11 = !{!"", !12, i64 0, !12, i64 4}
!12 = !{!"float", !7, i64 0}
!13 = !{!11, !12, i64 4}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = !{!12, !12, i64 0}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DSEPass,DivRemPairsPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass