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

; 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 @claqr4_(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 %1897

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 %1881

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 @claqr2_(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 %1897

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 = %1874, %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 %1877

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 %1880

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 @claqr2_(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 %1866

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 %1866

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 %1600

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 %1445

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 ptr, ptr %22, align 8, !tbaa !5
  %942 = load i64, ptr %65, align 8, !tbaa !9
  %943 = load i64, ptr %32, align 8, !tbaa !9
  %944 = add nsw i64 %942, %943
  %945 = getelementptr inbounds %struct.complex, ptr %941, i64 %944
  %946 = load ptr, ptr %23, align 8, !tbaa !5
  %947 = load ptr, ptr %24, align 8, !tbaa !5
  %948 = load i64, ptr %64, align 8, !tbaa !9
  %949 = getelementptr inbounds %struct.complex, ptr %947, i64 %948
  %950 = getelementptr inbounds [1 x %struct.complex], ptr %87, i64 0, i64 0
  %951 = call i32 @clahqr_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %69, ptr noundef @c__1, ptr noundef %69, ptr noundef %945, ptr noundef %946, ptr noundef %949, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %950, ptr noundef @c__1, ptr noundef %73)
  %952 = load i64, ptr %73, align 8, !tbaa !9
  %953 = load i64, ptr %64, align 8, !tbaa !9
  %954 = add nsw i64 %953, %952
  store i64 %954, ptr %64, align 8, !tbaa !9
  %955 = load i64, ptr %64, align 8, !tbaa !9
  %956 = load i64, ptr %83, align 8, !tbaa !9
  %957 = icmp sge i64 %955, %956
  br i1 %957, label %958, label %1444

958:                                              ; preds = %916
  %959 = load i64, ptr %83, align 8, !tbaa !9
  %960 = sub nsw i64 %959, 1
  %961 = load i64, ptr %83, align 8, !tbaa !9
  %962 = sub nsw i64 %961, 1
  %963 = load i64, ptr %32, align 8, !tbaa !9
  %964 = mul nsw i64 %962, %963
  %965 = add nsw i64 %960, %964
  store i64 %965, ptr %37, align 8, !tbaa !9
  %966 = load i64, ptr %83, align 8, !tbaa !9
  %967 = load i64, ptr %83, align 8, !tbaa !9
  %968 = sub nsw i64 %967, 1
  %969 = load i64, ptr %32, align 8, !tbaa !9
  %970 = mul nsw i64 %968, %969
  %971 = add nsw i64 %966, %970
  store i64 %971, ptr %38, align 8, !tbaa !9
  %972 = load i64, ptr %83, align 8, !tbaa !9
  %973 = sub nsw i64 %972, 1
  %974 = load i64, ptr %83, align 8, !tbaa !9
  %975 = load i64, ptr %32, align 8, !tbaa !9
  %976 = mul nsw i64 %974, %975
  %977 = add nsw i64 %973, %976
  store i64 %977, ptr %39, align 8, !tbaa !9
  %978 = load i64, ptr %83, align 8, !tbaa !9
  %979 = load i64, ptr %83, align 8, !tbaa !9
  %980 = load i64, ptr %32, align 8, !tbaa !9
  %981 = mul nsw i64 %979, %980
  %982 = add nsw i64 %978, %981
  store i64 %982, ptr %40, align 8, !tbaa !9
  %983 = load ptr, ptr %22, align 8, !tbaa !5
  %984 = load i64, ptr %37, align 8, !tbaa !9
  %985 = getelementptr inbounds %struct.complex, ptr %983, i64 %984
  %986 = getelementptr inbounds %struct.complex, ptr %985, i32 0, i32 0
  %987 = load float, ptr %986, align 4, !tbaa !11
  store float %987, ptr %41, align 4, !tbaa !16
  %988 = load float, ptr %41, align 4, !tbaa !16
  %989 = fcmp oge float %988, 0.000000e+00
  br i1 %989, label %990, label %992

990:                                              ; preds = %958
  %991 = load float, ptr %41, align 4, !tbaa !16
  br label %995

992:                                              ; preds = %958
  %993 = load float, ptr %41, align 4, !tbaa !16
  %994 = fneg float %993
  br label %995

995:                                              ; preds = %992, %990
  %996 = phi float [ %991, %990 ], [ %994, %992 ]
  %997 = fpext float %996 to double
  %998 = load ptr, ptr %22, align 8, !tbaa !5
  %999 = load i64, ptr %83, align 8, !tbaa !9
  %1000 = sub nsw i64 %999, 1
  %1001 = load i64, ptr %83, align 8, !tbaa !9
  %1002 = sub nsw i64 %1001, 1
  %1003 = load i64, ptr %32, align 8, !tbaa !9
  %1004 = mul nsw i64 %1002, %1003
  %1005 = add nsw i64 %1000, %1004
  %1006 = getelementptr inbounds %struct.complex, ptr %998, i64 %1005
  %1007 = call double @r_imag(ptr noundef %1006)
  %1008 = fptrunc double %1007 to float
  store float %1008, ptr %42, align 4, !tbaa !16
  %1009 = load float, ptr %42, align 4, !tbaa !16
  %1010 = fcmp oge float %1009, 0.000000e+00
  br i1 %1010, label %1011, label %1013

1011:                                             ; preds = %995
  %1012 = load float, ptr %42, align 4, !tbaa !16
  br label %1016

1013:                                             ; preds = %995
  %1014 = load float, ptr %42, align 4, !tbaa !16
  %1015 = fneg float %1014
  br label %1016

1016:                                             ; preds = %1013, %1011
  %1017 = phi float [ %1012, %1011 ], [ %1015, %1013 ]
  %1018 = fpext float %1017 to double
  %1019 = fadd double %997, %1018
  %1020 = load ptr, ptr %22, align 8, !tbaa !5
  %1021 = load i64, ptr %38, align 8, !tbaa !9
  %1022 = getelementptr inbounds %struct.complex, ptr %1020, i64 %1021
  %1023 = getelementptr inbounds %struct.complex, ptr %1022, i32 0, i32 0
  %1024 = load float, ptr %1023, align 4, !tbaa !11
  store float %1024, ptr %43, align 4, !tbaa !16
  %1025 = load float, ptr %43, align 4, !tbaa !16
  %1026 = fcmp oge float %1025, 0.000000e+00
  br i1 %1026, label %1027, label %1029

1027:                                             ; preds = %1016
  %1028 = load float, ptr %43, align 4, !tbaa !16
  br label %1032

1029:                                             ; preds = %1016
  %1030 = load float, ptr %43, align 4, !tbaa !16
  %1031 = fneg float %1030
  br label %1032

1032:                                             ; preds = %1029, %1027
  %1033 = phi float [ %1028, %1027 ], [ %1031, %1029 ]
  %1034 = fpext float %1033 to double
  %1035 = load ptr, ptr %22, align 8, !tbaa !5
  %1036 = load i64, ptr %83, align 8, !tbaa !9
  %1037 = load i64, ptr %83, align 8, !tbaa !9
  %1038 = sub nsw i64 %1037, 1
  %1039 = load i64, ptr %32, align 8, !tbaa !9
  %1040 = mul nsw i64 %1038, %1039
  %1041 = add nsw i64 %1036, %1040
  %1042 = getelementptr inbounds %struct.complex, ptr %1035, i64 %1041
  %1043 = call double @r_imag(ptr noundef %1042)
  %1044 = fptrunc double %1043 to float
  store float %1044, ptr %44, align 4, !tbaa !16
  %1045 = load float, ptr %44, align 4, !tbaa !16
  %1046 = fcmp oge float %1045, 0.000000e+00
  br i1 %1046, label %1047, label %1049

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

1049:                                             ; preds = %1032
  %1050 = load float, ptr %44, 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 = fadd double %1034, %1054
  %1056 = fadd double %1019, %1055
  %1057 = load ptr, ptr %22, align 8, !tbaa !5
  %1058 = load i64, ptr %39, align 8, !tbaa !9
  %1059 = getelementptr inbounds %struct.complex, ptr %1057, i64 %1058
  %1060 = getelementptr inbounds %struct.complex, ptr %1059, i32 0, i32 0
  %1061 = load float, ptr %1060, align 4, !tbaa !11
  store float %1061, ptr %45, align 4, !tbaa !16
  %1062 = load float, ptr %45, align 4, !tbaa !16
  %1063 = fcmp oge float %1062, 0.000000e+00
  br i1 %1063, label %1064, label %1066

1064:                                             ; preds = %1052
  %1065 = load float, ptr %45, align 4, !tbaa !16
  br label %1069

1066:                                             ; preds = %1052
  %1067 = load float, ptr %45, align 4, !tbaa !16
  %1068 = fneg float %1067
  br label %1069

1069:                                             ; preds = %1066, %1064
  %1070 = phi float [ %1065, %1064 ], [ %1068, %1066 ]
  %1071 = fpext float %1070 to double
  %1072 = load ptr, ptr %22, align 8, !tbaa !5
  %1073 = load i64, ptr %83, align 8, !tbaa !9
  %1074 = sub nsw i64 %1073, 1
  %1075 = load i64, ptr %83, align 8, !tbaa !9
  %1076 = load i64, ptr %32, align 8, !tbaa !9
  %1077 = mul nsw i64 %1075, %1076
  %1078 = add nsw i64 %1074, %1077
  %1079 = getelementptr inbounds %struct.complex, ptr %1072, i64 %1078
  %1080 = call double @r_imag(ptr noundef %1079)
  %1081 = fptrunc double %1080 to float
  store float %1081, ptr %46, align 4, !tbaa !16
  %1082 = load float, ptr %46, align 4, !tbaa !16
  %1083 = fcmp oge float %1082, 0.000000e+00
  br i1 %1083, label %1084, label %1086

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

1086:                                             ; preds = %1069
  %1087 = load float, ptr %46, 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 = fadd double %1071, %1091
  %1093 = fadd double %1056, %1092
  %1094 = load ptr, ptr %22, align 8, !tbaa !5
  %1095 = load i64, ptr %40, align 8, !tbaa !9
  %1096 = getelementptr inbounds %struct.complex, ptr %1094, i64 %1095
  %1097 = getelementptr inbounds %struct.complex, ptr %1096, i32 0, i32 0
  %1098 = load float, ptr %1097, align 4, !tbaa !11
  store float %1098, ptr %47, align 4, !tbaa !16
  %1099 = load float, ptr %47, align 4, !tbaa !16
  %1100 = fcmp oge float %1099, 0.000000e+00
  br i1 %1100, label %1101, label %1103

1101:                                             ; preds = %1089
  %1102 = load float, ptr %47, align 4, !tbaa !16
  br label %1106

1103:                                             ; preds = %1089
  %1104 = load float, ptr %47, align 4, !tbaa !16
  %1105 = fneg float %1104
  br label %1106

1106:                                             ; preds = %1103, %1101
  %1107 = phi float [ %1102, %1101 ], [ %1105, %1103 ]
  %1108 = fpext float %1107 to double
  %1109 = load ptr, ptr %22, align 8, !tbaa !5
  %1110 = load i64, ptr %83, align 8, !tbaa !9
  %1111 = load i64, ptr %83, align 8, !tbaa !9
  %1112 = load i64, ptr %32, align 8, !tbaa !9
  %1113 = mul nsw i64 %1111, %1112
  %1114 = add nsw i64 %1110, %1113
  %1115 = getelementptr inbounds %struct.complex, ptr %1109, i64 %1114
  %1116 = call double @r_imag(ptr noundef %1115)
  %1117 = fptrunc double %1116 to float
  store float %1117, ptr %48, align 4, !tbaa !16
  %1118 = load float, ptr %48, align 4, !tbaa !16
  %1119 = fcmp oge float %1118, 0.000000e+00
  br i1 %1119, label %1120, label %1122

1120:                                             ; preds = %1106
  %1121 = load float, ptr %48, align 4, !tbaa !16
  br label %1125

1122:                                             ; preds = %1106
  %1123 = load float, ptr %48, align 4, !tbaa !16
  %1124 = fneg float %1123
  br label %1125

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

1444:                                             ; preds = %1125, %916
  br label %1445

1445:                                             ; preds = %1444, %908
  %1446 = load i64, ptr %83, align 8, !tbaa !9
  %1447 = load i64, ptr %64, align 8, !tbaa !9
  %1448 = sub nsw i64 %1446, %1447
  %1449 = add nsw i64 %1448, 1
  %1450 = load i64, ptr %69, align 8, !tbaa !9
  %1451 = icmp sgt i64 %1449, %1450
  br i1 %1451, label %1452, label %1599

1452:                                             ; preds = %1445
  store i64 0, ptr %97, align 8, !tbaa !9
  %1453 = load i64, ptr %64, align 8, !tbaa !9
  %1454 = add nsw i64 %1453, 1
  store i64 %1454, ptr %37, align 8, !tbaa !9
  %1455 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1455, ptr %55, align 8, !tbaa !9
  br label %1456

1456:                                             ; preds = %1594, %1452
  %1457 = load i64, ptr %55, align 8, !tbaa !9
  %1458 = load i64, ptr %37, align 8, !tbaa !9
  %1459 = icmp sge i64 %1457, %1458
  br i1 %1459, label %1460, label %1597

1460:                                             ; preds = %1456
  %1461 = load i64, ptr %97, align 8, !tbaa !9
  %1462 = icmp ne i64 %1461, 0
  br i1 %1462, label %1463, label %1464

1463:                                             ; preds = %1460
  br label %1598

1464:                                             ; preds = %1460
  store i64 1, ptr %97, align 8, !tbaa !9
  %1465 = load i64, ptr %55, align 8, !tbaa !9
  %1466 = sub nsw i64 %1465, 1
  store i64 %1466, ptr %38, align 8, !tbaa !9
  %1467 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %1467, ptr %54, align 8, !tbaa !9
  br label %1468

1468:                                             ; preds = %1590, %1464
  %1469 = load i64, ptr %54, align 8, !tbaa !9
  %1470 = load i64, ptr %38, align 8, !tbaa !9
  %1471 = icmp sle i64 %1469, %1470
  br i1 %1471, label %1472, label %1593

1472:                                             ; preds = %1468
  %1473 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1473, ptr %39, align 8, !tbaa !9
  %1474 = load i64, ptr %54, align 8, !tbaa !9
  %1475 = add nsw i64 %1474, 1
  store i64 %1475, ptr %40, align 8, !tbaa !9
  %1476 = load ptr, ptr %24, align 8, !tbaa !5
  %1477 = load i64, ptr %39, align 8, !tbaa !9
  %1478 = getelementptr inbounds %struct.complex, ptr %1476, i64 %1477
  %1479 = getelementptr inbounds %struct.complex, ptr %1478, i32 0, i32 0
  %1480 = load float, ptr %1479, align 4, !tbaa !11
  store float %1480, ptr %41, align 4, !tbaa !16
  %1481 = load float, ptr %41, align 4, !tbaa !16
  %1482 = fcmp oge float %1481, 0.000000e+00
  br i1 %1482, label %1483, label %1485

1483:                                             ; preds = %1472
  %1484 = load float, ptr %41, align 4, !tbaa !16
  br label %1488

1485:                                             ; preds = %1472
  %1486 = load float, ptr %41, align 4, !tbaa !16
  %1487 = fneg float %1486
  br label %1488

1488:                                             ; preds = %1485, %1483
  %1489 = phi float [ %1484, %1483 ], [ %1487, %1485 ]
  %1490 = fpext float %1489 to double
  %1491 = load ptr, ptr %24, align 8, !tbaa !5
  %1492 = load i64, ptr %54, align 8, !tbaa !9
  %1493 = getelementptr inbounds %struct.complex, ptr %1491, i64 %1492
  %1494 = call double @r_imag(ptr noundef %1493)
  %1495 = fptrunc double %1494 to float
  store float %1495, ptr %42, align 4, !tbaa !16
  %1496 = load float, ptr %42, align 4, !tbaa !16
  %1497 = fcmp oge float %1496, 0.000000e+00
  br i1 %1497, label %1498, label %1500

1498:                                             ; preds = %1488
  %1499 = load float, ptr %42, align 4, !tbaa !16
  br label %1503

1500:                                             ; preds = %1488
  %1501 = load float, ptr %42, align 4, !tbaa !16
  %1502 = fneg float %1501
  br label %1503

1503:                                             ; preds = %1500, %1498
  %1504 = phi float [ %1499, %1498 ], [ %1502, %1500 ]
  %1505 = fpext float %1504 to double
  %1506 = fadd double %1490, %1505
  %1507 = load ptr, ptr %24, align 8, !tbaa !5
  %1508 = load i64, ptr %40, align 8, !tbaa !9
  %1509 = getelementptr inbounds %struct.complex, ptr %1507, i64 %1508
  %1510 = getelementptr inbounds %struct.complex, ptr %1509, i32 0, i32 0
  %1511 = load float, ptr %1510, align 4, !tbaa !11
  store float %1511, ptr %43, align 4, !tbaa !16
  %1512 = load float, ptr %43, align 4, !tbaa !16
  %1513 = fcmp oge float %1512, 0.000000e+00
  br i1 %1513, label %1514, label %1516

1514:                                             ; preds = %1503
  %1515 = load float, ptr %43, align 4, !tbaa !16
  br label %1519

1516:                                             ; preds = %1503
  %1517 = load float, ptr %43, align 4, !tbaa !16
  %1518 = fneg float %1517
  br label %1519

1519:                                             ; preds = %1516, %1514
  %1520 = phi float [ %1515, %1514 ], [ %1518, %1516 ]
  %1521 = fpext float %1520 to double
  %1522 = load ptr, ptr %24, align 8, !tbaa !5
  %1523 = load i64, ptr %54, align 8, !tbaa !9
  %1524 = add nsw i64 %1523, 1
  %1525 = getelementptr inbounds %struct.complex, ptr %1522, i64 %1524
  %1526 = call double @r_imag(ptr noundef %1525)
  %1527 = fptrunc double %1526 to float
  store float %1527, ptr %44, align 4, !tbaa !16
  %1528 = load float, ptr %44, align 4, !tbaa !16
  %1529 = fcmp oge float %1528, 0.000000e+00
  br i1 %1529, label %1530, label %1532

1530:                                             ; preds = %1519
  %1531 = load float, ptr %44, align 4, !tbaa !16
  br label %1535

1532:                                             ; preds = %1519
  %1533 = load float, ptr %44, align 4, !tbaa !16
  %1534 = fneg float %1533
  br label %1535

1535:                                             ; preds = %1532, %1530
  %1536 = phi float [ %1531, %1530 ], [ %1534, %1532 ]
  %1537 = fpext float %1536 to double
  %1538 = fadd double %1521, %1537
  %1539 = fcmp olt double %1506, %1538
  br i1 %1539, label %1540, label %1589

1540:                                             ; preds = %1535
  store i64 0, ptr %97, align 8, !tbaa !9
  %1541 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1541, ptr %39, align 8, !tbaa !9
  %1542 = load ptr, ptr %24, align 8, !tbaa !5
  %1543 = load i64, ptr %39, align 8, !tbaa !9
  %1544 = getelementptr inbounds %struct.complex, ptr %1542, i64 %1543
  %1545 = getelementptr inbounds %struct.complex, ptr %1544, i32 0, i32 0
  %1546 = load float, ptr %1545, align 4, !tbaa !11
  %1547 = getelementptr inbounds %struct.complex, ptr %85, i32 0, i32 0
  store float %1546, ptr %1547, align 4, !tbaa !11
  %1548 = load ptr, ptr %24, align 8, !tbaa !5
  %1549 = load i64, ptr %39, align 8, !tbaa !9
  %1550 = getelementptr inbounds %struct.complex, ptr %1548, i64 %1549
  %1551 = getelementptr inbounds %struct.complex, ptr %1550, i32 0, i32 1
  %1552 = load float, ptr %1551, align 4, !tbaa !14
  %1553 = getelementptr inbounds %struct.complex, ptr %85, i32 0, i32 1
  store float %1552, ptr %1553, align 4, !tbaa !14
  %1554 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1554, ptr %39, align 8, !tbaa !9
  %1555 = load i64, ptr %54, align 8, !tbaa !9
  %1556 = add nsw i64 %1555, 1
  store i64 %1556, ptr %40, align 8, !tbaa !9
  %1557 = load ptr, ptr %24, align 8, !tbaa !5
  %1558 = load i64, ptr %40, align 8, !tbaa !9
  %1559 = getelementptr inbounds %struct.complex, ptr %1557, i64 %1558
  %1560 = getelementptr inbounds %struct.complex, ptr %1559, i32 0, i32 0
  %1561 = load float, ptr %1560, align 4, !tbaa !11
  %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
  store float %1561, ptr %1565, align 4, !tbaa !11
  %1566 = load ptr, ptr %24, align 8, !tbaa !5
  %1567 = load i64, ptr %40, align 8, !tbaa !9
  %1568 = getelementptr inbounds %struct.complex, ptr %1566, i64 %1567
  %1569 = getelementptr inbounds %struct.complex, ptr %1568, i32 0, i32 1
  %1570 = load float, ptr %1569, align 4, !tbaa !14
  %1571 = load ptr, ptr %24, align 8, !tbaa !5
  %1572 = load i64, ptr %39, align 8, !tbaa !9
  %1573 = getelementptr inbounds %struct.complex, ptr %1571, i64 %1572
  %1574 = getelementptr inbounds %struct.complex, ptr %1573, i32 0, i32 1
  store float %1570, ptr %1574, align 4, !tbaa !14
  %1575 = load i64, ptr %54, align 8, !tbaa !9
  %1576 = add nsw i64 %1575, 1
  store i64 %1576, ptr %39, align 8, !tbaa !9
  %1577 = getelementptr inbounds %struct.complex, ptr %85, i32 0, i32 0
  %1578 = load float, ptr %1577, align 4, !tbaa !11
  %1579 = load ptr, ptr %24, align 8, !tbaa !5
  %1580 = load i64, ptr %39, align 8, !tbaa !9
  %1581 = getelementptr inbounds %struct.complex, ptr %1579, i64 %1580
  %1582 = getelementptr inbounds %struct.complex, ptr %1581, i32 0, i32 0
  store float %1578, ptr %1582, align 4, !tbaa !11
  %1583 = getelementptr inbounds %struct.complex, ptr %85, i32 0, i32 1
  %1584 = load float, ptr %1583, align 4, !tbaa !14
  %1585 = load ptr, ptr %24, align 8, !tbaa !5
  %1586 = load i64, ptr %39, align 8, !tbaa !9
  %1587 = getelementptr inbounds %struct.complex, ptr %1585, i64 %1586
  %1588 = getelementptr inbounds %struct.complex, ptr %1587, i32 0, i32 1
  store float %1584, ptr %1588, align 4, !tbaa !14
  br label %1589

1589:                                             ; preds = %1540, %1535
  br label %1590

1590:                                             ; preds = %1589
  %1591 = load i64, ptr %54, align 8, !tbaa !9
  %1592 = add nsw i64 %1591, 1
  store i64 %1592, ptr %54, align 8, !tbaa !9
  br label %1468, !llvm.loop !20

1593:                                             ; preds = %1468
  br label %1594

1594:                                             ; preds = %1593
  %1595 = load i64, ptr %55, align 8, !tbaa !9
  %1596 = add nsw i64 %1595, -1
  store i64 %1596, ptr %55, align 8, !tbaa !9
  br label %1456, !llvm.loop !21

1597:                                             ; preds = %1456
  br label %1598

1598:                                             ; preds = %1597, %1463
  br label %1599

1599:                                             ; preds = %1598, %1445
  br label %1600

1600:                                             ; preds = %1599, %907
  %1601 = load i64, ptr %83, align 8, !tbaa !9
  %1602 = load i64, ptr %64, align 8, !tbaa !9
  %1603 = sub nsw i64 %1601, %1602
  %1604 = add nsw i64 %1603, 1
  %1605 = icmp eq i64 %1604, 2
  br i1 %1605, label %1606, label %1776

1606:                                             ; preds = %1600
  %1607 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1607, ptr %37, align 8, !tbaa !9
  %1608 = load i64, ptr %83, align 8, !tbaa !9
  %1609 = load i64, ptr %83, align 8, !tbaa !9
  %1610 = load i64, ptr %32, align 8, !tbaa !9
  %1611 = mul nsw i64 %1609, %1610
  %1612 = add nsw i64 %1608, %1611
  store i64 %1612, ptr %38, align 8, !tbaa !9
  %1613 = load ptr, ptr %24, align 8, !tbaa !5
  %1614 = load i64, ptr %37, align 8, !tbaa !9
  %1615 = getelementptr inbounds %struct.complex, ptr %1613, i64 %1614
  %1616 = getelementptr inbounds %struct.complex, ptr %1615, i32 0, i32 0
  %1617 = load float, ptr %1616, align 4, !tbaa !11
  %1618 = load ptr, ptr %22, align 8, !tbaa !5
  %1619 = load i64, ptr %38, align 8, !tbaa !9
  %1620 = getelementptr inbounds %struct.complex, ptr %1618, i64 %1619
  %1621 = getelementptr inbounds %struct.complex, ptr %1620, i32 0, i32 0
  %1622 = load float, ptr %1621, align 4, !tbaa !11
  %1623 = fsub float %1617, %1622
  %1624 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1623, ptr %1624, align 4, !tbaa !11
  %1625 = load ptr, ptr %24, align 8, !tbaa !5
  %1626 = load i64, ptr %37, align 8, !tbaa !9
  %1627 = getelementptr inbounds %struct.complex, ptr %1625, i64 %1626
  %1628 = getelementptr inbounds %struct.complex, ptr %1627, i32 0, i32 1
  %1629 = load float, ptr %1628, align 4, !tbaa !14
  %1630 = load ptr, ptr %22, align 8, !tbaa !5
  %1631 = load i64, ptr %38, align 8, !tbaa !9
  %1632 = getelementptr inbounds %struct.complex, ptr %1630, i64 %1631
  %1633 = getelementptr inbounds %struct.complex, ptr %1632, i32 0, i32 1
  %1634 = load float, ptr %1633, align 4, !tbaa !14
  %1635 = fsub float %1629, %1634
  %1636 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1635, ptr %1636, align 4, !tbaa !14
  %1637 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1638 = load float, ptr %1637, align 4, !tbaa !11
  %1639 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1638, ptr %1639, align 4, !tbaa !11
  %1640 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1641 = load float, ptr %1640, align 4, !tbaa !14
  %1642 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1641, ptr %1642, align 4, !tbaa !14
  %1643 = load i64, ptr %83, align 8, !tbaa !9
  %1644 = sub nsw i64 %1643, 1
  store i64 %1644, ptr %39, align 8, !tbaa !9
  %1645 = load i64, ptr %83, align 8, !tbaa !9
  %1646 = load i64, ptr %83, align 8, !tbaa !9
  %1647 = load i64, ptr %32, align 8, !tbaa !9
  %1648 = mul nsw i64 %1646, %1647
  %1649 = add nsw i64 %1645, %1648
  store i64 %1649, ptr %40, align 8, !tbaa !9
  %1650 = load ptr, ptr %24, align 8, !tbaa !5
  %1651 = load i64, ptr %39, align 8, !tbaa !9
  %1652 = getelementptr inbounds %struct.complex, ptr %1650, i64 %1651
  %1653 = getelementptr inbounds %struct.complex, ptr %1652, i32 0, i32 0
  %1654 = load float, ptr %1653, align 4, !tbaa !11
  %1655 = load ptr, ptr %22, align 8, !tbaa !5
  %1656 = load i64, ptr %40, align 8, !tbaa !9
  %1657 = getelementptr inbounds %struct.complex, ptr %1655, i64 %1656
  %1658 = getelementptr inbounds %struct.complex, ptr %1657, i32 0, i32 0
  %1659 = load float, ptr %1658, align 4, !tbaa !11
  %1660 = fsub float %1654, %1659
  %1661 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1660, ptr %1661, align 4, !tbaa !11
  %1662 = load ptr, ptr %24, align 8, !tbaa !5
  %1663 = load i64, ptr %39, align 8, !tbaa !9
  %1664 = getelementptr inbounds %struct.complex, ptr %1662, i64 %1663
  %1665 = getelementptr inbounds %struct.complex, ptr %1664, i32 0, i32 1
  %1666 = load float, ptr %1665, align 4, !tbaa !14
  %1667 = load ptr, ptr %22, align 8, !tbaa !5
  %1668 = load i64, ptr %40, align 8, !tbaa !9
  %1669 = getelementptr inbounds %struct.complex, ptr %1667, i64 %1668
  %1670 = getelementptr inbounds %struct.complex, ptr %1669, i32 0, i32 1
  %1671 = load float, ptr %1670, align 4, !tbaa !14
  %1672 = fsub float %1666, %1671
  %1673 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1672, ptr %1673, align 4, !tbaa !14
  %1674 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1675 = load float, ptr %1674, align 4, !tbaa !11
  %1676 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1675, ptr %1676, align 4, !tbaa !11
  %1677 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1678 = load float, ptr %1677, align 4, !tbaa !14
  %1679 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1678, ptr %1679, align 4, !tbaa !14
  %1680 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1681 = load float, ptr %1680, align 4, !tbaa !11
  store float %1681, ptr %41, align 4, !tbaa !16
  %1682 = load float, ptr %41, align 4, !tbaa !16
  %1683 = fcmp oge float %1682, 0.000000e+00
  br i1 %1683, label %1684, label %1686

1684:                                             ; preds = %1606
  %1685 = load float, ptr %41, align 4, !tbaa !16
  br label %1689

1686:                                             ; preds = %1606
  %1687 = load float, ptr %41, align 4, !tbaa !16
  %1688 = fneg float %1687
  br label %1689

1689:                                             ; preds = %1686, %1684
  %1690 = phi float [ %1685, %1684 ], [ %1688, %1686 ]
  %1691 = fpext float %1690 to double
  %1692 = call double @r_imag(ptr noundef %49)
  %1693 = fptrunc double %1692 to float
  store float %1693, ptr %42, align 4, !tbaa !16
  %1694 = load float, ptr %42, align 4, !tbaa !16
  %1695 = fcmp oge float %1694, 0.000000e+00
  br i1 %1695, label %1696, label %1698

1696:                                             ; preds = %1689
  %1697 = load float, ptr %42, align 4, !tbaa !16
  br label %1701

1698:                                             ; preds = %1689
  %1699 = load float, ptr %42, align 4, !tbaa !16
  %1700 = fneg float %1699
  br label %1701

1701:                                             ; preds = %1698, %1696
  %1702 = phi float [ %1697, %1696 ], [ %1700, %1698 ]
  %1703 = fpext float %1702 to double
  %1704 = fadd double %1691, %1703
  %1705 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1706 = load float, ptr %1705, align 4, !tbaa !11
  store float %1706, ptr %43, align 4, !tbaa !16
  %1707 = load float, ptr %43, align 4, !tbaa !16
  %1708 = fcmp oge float %1707, 0.000000e+00
  br i1 %1708, label %1709, label %1711

1709:                                             ; preds = %1701
  %1710 = load float, ptr %43, align 4, !tbaa !16
  br label %1714

1711:                                             ; preds = %1701
  %1712 = load float, ptr %43, align 4, !tbaa !16
  %1713 = fneg float %1712
  br label %1714

1714:                                             ; preds = %1711, %1709
  %1715 = phi float [ %1710, %1709 ], [ %1713, %1711 ]
  %1716 = fpext float %1715 to double
  %1717 = call double @r_imag(ptr noundef %51)
  %1718 = fptrunc double %1717 to float
  store float %1718, ptr %44, align 4, !tbaa !16
  %1719 = load float, ptr %44, align 4, !tbaa !16
  %1720 = fcmp oge float %1719, 0.000000e+00
  br i1 %1720, label %1721, label %1723

1721:                                             ; preds = %1714
  %1722 = load float, ptr %44, align 4, !tbaa !16
  br label %1726

1723:                                             ; preds = %1714
  %1724 = load float, ptr %44, align 4, !tbaa !16
  %1725 = fneg float %1724
  br label %1726

1726:                                             ; preds = %1723, %1721
  %1727 = phi float [ %1722, %1721 ], [ %1725, %1723 ]
  %1728 = fpext float %1727 to double
  %1729 = fadd double %1716, %1728
  %1730 = fcmp olt double %1704, %1729
  br i1 %1730, label %1731, label %1753

1731:                                             ; preds = %1726
  %1732 = load i64, ptr %83, align 8, !tbaa !9
  %1733 = sub nsw i64 %1732, 1
  store i64 %1733, ptr %37, align 8, !tbaa !9
  %1734 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %1734, ptr %38, align 8, !tbaa !9
  %1735 = load ptr, ptr %24, align 8, !tbaa !5
  %1736 = load i64, ptr %38, align 8, !tbaa !9
  %1737 = getelementptr inbounds %struct.complex, ptr %1735, i64 %1736
  %1738 = getelementptr inbounds %struct.complex, ptr %1737, i32 0, i32 0
  %1739 = load float, ptr %1738, align 4, !tbaa !11
  %1740 = load ptr, ptr %24, align 8, !tbaa !5
  %1741 = load i64, ptr %37, align 8, !tbaa !9
  %1742 = getelementptr inbounds %struct.complex, ptr %1740, i64 %1741
  %1743 = getelementptr inbounds %struct.complex, ptr %1742, i32 0, i32 0
  store float %1739, ptr %1743, align 4, !tbaa !11
  %1744 = load ptr, ptr %24, align 8, !tbaa !5
  %1745 = load i64, ptr %38, align 8, !tbaa !9
  %1746 = getelementptr inbounds %struct.complex, ptr %1744, i64 %1745
  %1747 = getelementptr inbounds %struct.complex, ptr %1746, i32 0, i32 1
  %1748 = load float, ptr %1747, align 4, !tbaa !14
  %1749 = load ptr, ptr %24, align 8, !tbaa !5
  %1750 = load i64, ptr %37, align 8, !tbaa !9
  %1751 = getelementptr inbounds %struct.complex, ptr %1749, i64 %1750
  %1752 = getelementptr inbounds %struct.complex, ptr %1751, i32 0, i32 1
  store float %1748, ptr %1752, align 4, !tbaa !14
  br label %1775

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

1775:                                             ; preds = %1753, %1731
  br label %1776

1776:                                             ; preds = %1775, %1600
  %1777 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %1777, ptr %37, align 8, !tbaa !9
  %1778 = load i64, ptr %83, align 8, !tbaa !9
  %1779 = load i64, ptr %64, align 8, !tbaa !9
  %1780 = sub nsw i64 %1778, %1779
  %1781 = add nsw i64 %1780, 1
  store i64 %1781, ptr %38, align 8, !tbaa !9
  %1782 = load i64, ptr %37, align 8, !tbaa !9
  %1783 = load i64, ptr %38, align 8, !tbaa !9
  %1784 = icmp sle i64 %1782, %1783
  br i1 %1784, label %1785, label %1787

1785:                                             ; preds = %1776
  %1786 = load i64, ptr %37, align 8, !tbaa !9
  br label %1789

1787:                                             ; preds = %1776
  %1788 = load i64, ptr %38, align 8, !tbaa !9
  br label %1789

1789:                                             ; preds = %1787, %1785
  %1790 = phi i64 [ %1786, %1785 ], [ %1788, %1787 ]
  store i64 %1790, ptr %69, align 8, !tbaa !9
  %1791 = load i64, ptr %69, align 8, !tbaa !9
  %1792 = srem i64 %1791, 2
  %1793 = load i64, ptr %69, align 8, !tbaa !9
  %1794 = sub nsw i64 %1793, %1792
  store i64 %1794, ptr %69, align 8, !tbaa !9
  %1795 = load i64, ptr %83, align 8, !tbaa !9
  %1796 = load i64, ptr %69, align 8, !tbaa !9
  %1797 = sub nsw i64 %1795, %1796
  %1798 = add nsw i64 %1797, 1
  store i64 %1798, ptr %64, align 8, !tbaa !9
  %1799 = load i64, ptr %69, align 8, !tbaa !9
  %1800 = mul nsw i64 %1799, 3
  %1801 = sub nsw i64 %1800, 3
  store i64 %1801, ptr %74, align 8, !tbaa !9
  %1802 = load ptr, ptr %19, align 8, !tbaa !5
  %1803 = load i64, ptr %1802, align 8, !tbaa !9
  %1804 = load i64, ptr %74, align 8, !tbaa !9
  %1805 = sub nsw i64 %1803, %1804
  %1806 = add nsw i64 %1805, 1
  store i64 %1806, ptr %66, align 8, !tbaa !9
  %1807 = load i64, ptr %74, align 8, !tbaa !9
  %1808 = add nsw i64 %1807, 1
  store i64 %1808, ptr %77, align 8, !tbaa !9
  %1809 = load ptr, ptr %19, align 8, !tbaa !5
  %1810 = load i64, ptr %1809, align 8, !tbaa !9
  %1811 = load i64, ptr %74, align 8, !tbaa !9
  %1812 = sub nsw i64 %1810, %1811
  %1813 = sub nsw i64 %1812, 3
  %1814 = load i64, ptr %74, align 8, !tbaa !9
  %1815 = add nsw i64 %1814, 1
  %1816 = sub nsw i64 %1813, %1815
  %1817 = add nsw i64 %1816, 1
  store i64 %1817, ptr %75, align 8, !tbaa !9
  %1818 = load i64, ptr %74, align 8, !tbaa !9
  %1819 = add nsw i64 %1818, 4
  store i64 %1819, ptr %80, align 8, !tbaa !9
  %1820 = load ptr, ptr %19, align 8, !tbaa !5
  %1821 = load i64, ptr %1820, align 8, !tbaa !9
  %1822 = load i64, ptr %74, align 8, !tbaa !9
  %1823 = sub nsw i64 %1821, %1822
  %1824 = load i64, ptr %80, align 8, !tbaa !9
  %1825 = sub nsw i64 %1823, %1824
  %1826 = add nsw i64 %1825, 1
  store i64 %1826, ptr %76, align 8, !tbaa !9
  %1827 = load ptr, ptr %17, align 8, !tbaa !5
  %1828 = load ptr, ptr %18, align 8, !tbaa !5
  %1829 = load ptr, ptr %19, align 8, !tbaa !5
  %1830 = load ptr, ptr %24, align 8, !tbaa !5
  %1831 = load i64, ptr %64, align 8, !tbaa !9
  %1832 = getelementptr inbounds %struct.complex, ptr %1830, i64 %1831
  %1833 = load ptr, ptr %22, align 8, !tbaa !5
  %1834 = load i64, ptr %33, align 8, !tbaa !9
  %1835 = getelementptr inbounds %struct.complex, ptr %1833, i64 %1834
  %1836 = load ptr, ptr %23, align 8, !tbaa !5
  %1837 = load ptr, ptr %25, align 8, !tbaa !5
  %1838 = load ptr, ptr %26, align 8, !tbaa !5
  %1839 = load ptr, ptr %27, align 8, !tbaa !5
  %1840 = load i64, ptr %35, align 8, !tbaa !9
  %1841 = getelementptr inbounds %struct.complex, ptr %1839, i64 %1840
  %1842 = load ptr, ptr %28, align 8, !tbaa !5
  %1843 = load ptr, ptr %29, align 8, !tbaa !5
  %1844 = getelementptr inbounds %struct.complex, ptr %1843, i64 1
  %1845 = load ptr, ptr %22, align 8, !tbaa !5
  %1846 = load i64, ptr %66, align 8, !tbaa !9
  %1847 = load i64, ptr %32, align 8, !tbaa !9
  %1848 = add nsw i64 %1846, %1847
  %1849 = getelementptr inbounds %struct.complex, ptr %1845, i64 %1848
  %1850 = load ptr, ptr %23, align 8, !tbaa !5
  %1851 = load ptr, ptr %22, align 8, !tbaa !5
  %1852 = load i64, ptr %80, align 8, !tbaa !9
  %1853 = load i64, ptr %32, align 8, !tbaa !9
  %1854 = add nsw i64 %1852, %1853
  %1855 = getelementptr inbounds %struct.complex, ptr %1851, i64 %1854
  %1856 = load ptr, ptr %23, align 8, !tbaa !5
  %1857 = load ptr, ptr %22, align 8, !tbaa !5
  %1858 = load i64, ptr %66, align 8, !tbaa !9
  %1859 = load i64, ptr %77, align 8, !tbaa !9
  %1860 = load i64, ptr %32, align 8, !tbaa !9
  %1861 = mul nsw i64 %1859, %1860
  %1862 = add nsw i64 %1858, %1861
  %1863 = getelementptr inbounds %struct.complex, ptr %1857, i64 %1862
  %1864 = load ptr, ptr %23, align 8, !tbaa !5
  %1865 = call i32 @claqr5_(ptr noundef %1827, ptr noundef %1828, ptr noundef %88, ptr noundef %1829, ptr noundef %86, ptr noundef %83, ptr noundef %69, ptr noundef %1832, ptr noundef %1835, ptr noundef %1836, ptr noundef %1837, ptr noundef %1838, ptr noundef %1841, ptr noundef %1842, ptr noundef %1844, ptr noundef @c__3, ptr noundef %1849, ptr noundef %1850, ptr noundef %76, ptr noundef %1855, ptr noundef %1856, ptr noundef %75, ptr noundef %1863, ptr noundef %1864)
  br label %1866

1866:                                             ; preds = %1789, %753, %734
  %1867 = load i64, ptr %61, align 8, !tbaa !9
  %1868 = icmp sgt i64 %1867, 0
  br i1 %1868, label %1869, label %1870

1869:                                             ; preds = %1866
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %1873

1870:                                             ; preds = %1866
  %1871 = load i64, ptr %82, align 8, !tbaa !9
  %1872 = add nsw i64 %1871, 1
  store i64 %1872, ptr %82, align 8, !tbaa !9
  br label %1873

1873:                                             ; preds = %1870, %1869
  br label %1874

1874:                                             ; preds = %1873
  %1875 = load i64, ptr %63, align 8, !tbaa !9
  %1876 = add nsw i64 %1875, 1
  store i64 %1876, ptr %63, align 8, !tbaa !9
  br label %442, !llvm.loop !22

1877:                                             ; preds = %442
  %1878 = load i64, ptr %83, align 8, !tbaa !9
  %1879 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 %1878, ptr %1879, align 8, !tbaa !9
  br label %1880

1880:                                             ; preds = %1877, %451
  br label %1881

1881:                                             ; preds = %1880, %159
  %1882 = load i64, ptr %98, align 8, !tbaa !9
  %1883 = sitofp i64 %1882 to float
  store float %1883, ptr %41, align 4, !tbaa !16
  %1884 = load float, ptr %41, align 4, !tbaa !16
  %1885 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1884, ptr %1885, align 4, !tbaa !11
  %1886 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float 0.000000e+00, ptr %1886, align 4, !tbaa !14
  %1887 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1888 = load float, ptr %1887, align 4, !tbaa !11
  %1889 = load ptr, ptr %29, align 8, !tbaa !5
  %1890 = getelementptr inbounds %struct.complex, ptr %1889, i64 1
  %1891 = getelementptr inbounds %struct.complex, ptr %1890, i32 0, i32 0
  store float %1888, ptr %1891, align 4, !tbaa !11
  %1892 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1893 = load float, ptr %1892, align 4, !tbaa !14
  %1894 = load ptr, ptr %29, align 8, !tbaa !5
  %1895 = getelementptr inbounds %struct.complex, ptr %1894, i64 1
  %1896 = getelementptr inbounds %struct.complex, ptr %1895, i32 0, i32 1
  store float %1893, ptr %1896, align 4, !tbaa !14
  store i32 0, ptr %16, align 4
  store i32 1, ptr %99, align 4
  br label %1897

1897:                                             ; preds = %1881, %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
  %1898 = load i32, ptr %16, align 4
  ret i32 %1898
}

; 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 @claqr2_(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

; 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 @claqr4_(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 %501, 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
  %.not629 = icmp eq i64 %41, -1
  br i1 %.not629, label %.loopexit641, 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 %.loopexit641

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
  %.not602 = icmp eq i64 %46, 0
  %spec.select = select i1 %.not602, 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 @claqr2_(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 %501

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 @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
  %85 = call i64 @llvm.smax.i64(i64 %84, i64 0)
  %86 = 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
  %87 = call i64 @llvm.smax.i64(i64 %86, i64 0)
  %88 = call i64 @llvm.umin.i64(i64 %87, i64 2)
  store i64 %88, ptr %30, align 8, !tbaa !5
  %89 = load i64, ptr %2, align 8, !tbaa !5
  %90 = add nsw i64 %89, -1
  %91 = sdiv i64 %90, 3
  %92 = load i64, ptr %13, align 8, !tbaa !5
  %93 = sdiv i64 %92, 2
  %94 = call i64 @llvm.smin.i64(i64 %91, i64 %93)
  store i64 %94, ptr %23, align 8, !tbaa !5
  %95 = load i64, ptr %4, align 8, !tbaa !5
  %96 = load i64, ptr %3, align 8, !tbaa !5
  %97 = sub nsw i64 %95, %96
  %98 = icmp slt i64 %97, 10
  %99 = mul i64 %97, 30
  %100 = add i64 %99, 30
  %101 = select i1 %98, i64 300, i64 %100
  store i64 %95, ptr %27, align 8, !tbaa !5
  store i64 %101, ptr %16, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %34, i64 8
  %invariant.gep655 = getelementptr i8, ptr %34, i64 -8
  %.not610659 = icmp slt i64 %101, 1
  br i1 %.not610659, label %._crit_edge665, label %.lr.ph664

.lr.ph664:                                        ; preds = %82
  %102 = add nsw i64 %89, 6
  %103 = sdiv i64 %102, 9
  %104 = shl i64 %92, 1
  %105 = sdiv i64 %104, 3
  %106 = call i64 @llvm.smin.i64(i64 %103, i64 %105)
  %107 = srem i64 %106, 2
  %108 = sub nsw i64 %106, %107
  %109 = call i64 @llvm.smax.i64(i64 %83, i64 11)
  %110 = call i64 @llvm.smin.i64(i64 %109, i64 %94)
  %111 = call i64 @llvm.smin.i64(i64 %108, 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.ph664, %494
  %.0583662 = phi i64 [ 1, %.lr.ph664 ], [ %.1584, %494 ]
  %.0585661 = phi i64 [ undef, %.lr.ph664 ], [ %.1586, %494 ]
  %.0591660 = phi i64 [ 1, %.lr.ph664 ], [ %497, %494 ]
  %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 %.loopexit641, label %.preheader640

.preheader640:                                    ; preds = %115
  %.not611.not642 = icmp sgt i64 %116, %117
  br i1 %.not611.not642, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader640, %129
  %.0592643 = phi i64 [ %119, %129 ], [ %116, %.preheader640 ]
  %119 = add nsw i64 %.0592643, -1
  %120 = mul nsw i64 %119, %32
  %121 = getelementptr %struct.complex, ptr %34, i64 %.0592643
  %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
  %.not611.not = icmp sgt i64 %119, %117
  br i1 %.not611.not, label %.lr.ph, label %._crit_edge, !llvm.loop !14

._crit_edge:                                      ; preds = %125, %129, %.preheader640
  %.1593 = phi i64 [ %117, %.preheader640 ], [ %117, %129 ], [ %.0592643, %125 ]
  store i64 %.1593, ptr %28, align 8, !tbaa !5
  %130 = sub nsw i64 %116, %.1593
  %131 = add nsw i64 %130, 1
  %132 = call i64 @llvm.smin.i64(i64 %131, i64 %94)
  %133 = icmp slt i64 %.0583662, 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, %94
  br i1 %137, label %138, label %175

138:                                              ; preds = %._crit_edge
  %.not616 = icmp slt i64 %136, %130
  br i1 %.not616, 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 %.0585661, 0
  %.not617 = icmp slt i64 %.pre, %132
  %or.cond630 = select i1 %177, i1 %.not617, i1 false
  br i1 %or.cond630, label %183, label %178

178:                                              ; preds = %176
  %179 = add nsw i64 %.0585661, 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 ]
  %.1586 = phi i64 [ %spec.store.select, %178 ], [ -1, %175 ], [ %.0585661, %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
  %.neg632 = add i64 %185, 1
  %190 = shl i64 %184, 1
  %reass.sub = sub i64 %.neg632, %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
  %gep654 = getelementptr %struct.complex, ptr %114, i64 %184
  %195 = call i32 @claqr2_(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 %gep654, 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_edge670, label %203

._crit_edge670:                                   ; preds = %183
  %.pre671 = load i64, ptr %28, align 8, !tbaa !5
  %.pre675 = sub nsw i64 %198, %.pre671
  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, %85
  %.not618 = icmp sgt i64 %204, %206
  br i1 %.not618, label %494, label %207

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

210:                                              ; preds = %._crit_edge670, %207
  %.pre-phi = phi i64 [ %.pre675, %._crit_edge670 ], [ %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 %.0583662, 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
  %.not627649 = icmp slt i64 %198, %221
  br i1 %.not627649, label %.loopexit, label %.lr.ph652

.lr.ph652:                                        ; preds = %218, %.lr.ph652
  %.0587650 = phi i64 [ %250, %.lr.ph652 ], [ %198, %218 ]
  %222 = mul i64 %.0587650, %112
  %223 = add nsw i64 %.0587650, -1
  %224 = mul nsw i64 %223, %32
  %225 = getelementptr %struct.complex, ptr %34, i64 %.0587650
  %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 %.0587650
  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 %.0587650, -2
  %.not627 = icmp slt i64 %250, %221
  br i1 %.not627, label %.loopexit, label %.lr.ph652, !llvm.loop !16

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

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 = getelementptr %struct.complex, ptr %7, i64 %254
  %263 = 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 %262, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull @c__1, ptr noundef nonnull %24) #4
  %264 = load i64, ptr %24, align 8, !tbaa !5
  %265 = add nsw i64 %264, %255
  %266 = load i64, ptr %27, align 8, !tbaa !5
  %.not624 = icmp slt i64 %265, %266
  br i1 %.not624, label %384, label %267

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

384:                                              ; preds = %253, %267, %251
  %385 = phi i64 [ %375, %267 ], [ %266, %253 ], [ %198, %251 ]
  %.0589 = phi i64 [ %383, %267 ], [ %265, %253 ], [ %201, %251 ]
  %386 = sub nsw i64 %385, %.0589
  %387 = load i64, ptr %22, align 8, !tbaa !5
  %.not625 = icmp slt i64 %386, %387
  %388 = icmp sle i64 %385, %.0589
  %or.cond666 = or i1 %.not625, %388
  br i1 %or.cond666, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %384, %421
  %.2594648 = phi i64 [ %422, %421 ], [ %385, %384 ]
  br label %389

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

417:                                              ; preds = %389
  %418 = load <4 x float>, ptr %391, align 4, !tbaa !17
  %419 = shufflevector <4 x float> %418, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  store <4 x float> %419, ptr %391, align 4, !tbaa !17
  br label %420

420:                                              ; preds = %389, %417
  %.2 = phi i64 [ 0, %417 ], [ %.1647, %389 ]
  %.not626.not = icmp slt i64 %390, %.2594648
  br i1 %.not626.not, label %389, label %421, !llvm.loop !18

421:                                              ; preds = %420
  %422 = add nsw i64 %.2594648, -1
  %423 = icmp sle i64 %422, %.0589
  %424 = icmp ne i64 %.2, 0
  %or.cond = select i1 %423, i1 true, i1 %424
  br i1 %or.cond, label %.loopexit, label %.preheader, !llvm.loop !19

.loopexit:                                        ; preds = %421, %.lr.ph652, %218, %384
  %.1590 = phi i64 [ %.0589, %384 ], [ %220, %218 ], [ %220, %.lr.ph652 ], [ %.0589, %421 ]
  %425 = load i64, ptr %27, align 8, !tbaa !5
  %426 = sub nsw i64 %425, %.1590
  %427 = icmp eq i64 %426, 1
  br i1 %427, label %428, label %473

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

464:                                              ; preds = %428
  %465 = load float, ptr %463, align 4, !tbaa !10
  %466 = getelementptr i8, ptr %463, i64 -8
  store float %465, ptr %466, align 4, !tbaa !10
  br label %.sink.split

467:                                              ; preds = %428
  %468 = getelementptr i8, ptr %463, i64 -8
  %469 = load float, ptr %468, align 4, !tbaa !10
  store float %469, ptr %463, align 4, !tbaa !10
  br label %.sink.split

.sink.split:                                      ; preds = %467, %464
  %.sink681 = phi i64 [ 4, %464 ], [ -4, %467 ]
  %.sink679 = phi i64 [ -4, %464 ], [ 4, %467 ]
  %470 = getelementptr i8, ptr %463, i64 %.sink681
  %471 = load float, ptr %470, align 4, !tbaa !13
  %472 = getelementptr i8, ptr %463, i64 %.sink679
  store float %471, ptr %472, align 4, !tbaa !13
  br label %473

473:                                              ; preds = %.sink.split, %.loopexit
  %474 = phi i64 [ %425, %.loopexit ], [ %462, %.sink.split ]
  %475 = load i64, ptr %22, align 8, !tbaa !5
  %reass.sub667 = sub i64 %474, %.1590
  %476 = add i64 %reass.sub667, 1
  %477 = call i64 @llvm.smin.i64(i64 %475, i64 %476)
  %478 = srem i64 %477, 2
  %479 = sub nsw i64 %477, %478
  store i64 %479, ptr %22, align 8, !tbaa !5
  %480 = sub nsw i64 %474, %479
  %481 = mul nsw i64 %479, 3
  %482 = add nsw i64 %481, -3
  %483 = load i64, ptr %2, align 8, !tbaa !5
  %484 = sub nsw i64 %483, %482
  %485 = add nsw i64 %481, -2
  %486 = sub i64 %484, %481
  store i64 %486, ptr %25, align 8, !tbaa !5
  %.neg = mul i64 %479, -6
  %reass.sub668 = add i64 %.neg, %483
  %487 = add i64 %reass.sub668, 3
  store i64 %487, ptr %26, align 8, !tbaa !5
  %488 = getelementptr %struct.complex, ptr %7, i64 %480
  %489 = getelementptr inbounds %struct.complex, ptr %5, i64 %484
  %490 = getelementptr inbounds %struct.complex, ptr %5, i64 %481
  %491 = mul nsw i64 %485, %32
  %gep658 = getelementptr %struct.complex, ptr %invariant.gep, i64 %484
  %492 = getelementptr %struct.complex, ptr %gep658, i64 %491
  %493 = 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 %488, 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 %489, ptr noundef nonnull %6, ptr noundef nonnull %26, ptr noundef %490, ptr noundef nonnull %6, ptr noundef nonnull %25, ptr noundef %492, ptr noundef nonnull %6) #4
  %.pre672 = load i64, ptr %20, align 8, !tbaa !5
  br label %494

494:                                              ; preds = %473, %207, %203
  %495 = phi i64 [ %.pre672, %473 ], [ %196, %207 ], [ %196, %203 ]
  %496 = add nsw i64 %.0583662, 1
  %.inv = icmp slt i64 %495, 1
  %.1584 = select i1 %.inv, i64 %496, i64 1
  %497 = add nuw nsw i64 %.0591660, 1
  %498 = load i64, ptr %16, align 8, !tbaa !5
  %.not610.not = icmp slt i64 %.0591660, %498
  br i1 %.not610.not, label %115, label %._crit_edge665.loopexit, !llvm.loop !20

._crit_edge665.loopexit:                          ; preds = %494
  %.pre673 = load i64, ptr %27, align 8, !tbaa !5
  br label %._crit_edge665

._crit_edge665:                                   ; preds = %._crit_edge665.loopexit, %82
  %499 = phi i64 [ %.pre673, %._crit_edge665.loopexit ], [ %95, %82 ]
  store i64 %499, ptr %14, align 8, !tbaa !5
  br label %.loopexit641

.loopexit641:                                     ; preds = %115, %._crit_edge665, %40, %42
  %.0 = phi i64 [ 1, %42 ], [ 1, %40 ], [ %77, %._crit_edge665 ], [ %77, %115 ]
  %500 = uitofp nneg i64 %.0 to float
  br label %501

501:                                              ; preds = %15, %.loopexit641, %80
  %.sink683 = phi float [ %500, %.loopexit641 ], [ %81, %80 ], [ 1.000000e+00, %15 ]
  store float %.sink683, ptr %12, align 4, !tbaa !10
  %502 = getelementptr inbounds i8, ptr %12, i64 4
  store float 0.000000e+00, ptr %502, 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 @claqr2_(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 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