; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__15 = external hidden global i32, align 4
@c_n1 = external hidden global i32, align 4
@c__12 = external hidden global i32, align 4
@c__14 = external hidden global i32, align 4
@c__16 = external hidden global i32, align 4
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4

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

141:                                              ; preds = %15
  %142 = load ptr, ptr %28, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.complex, ptr %142, i64 1
  %144 = getelementptr inbounds %struct.complex, ptr %143, i32 0, i32 0
  store float 1.000000e+00, ptr %144, align 4, !tbaa !11
  %145 = load ptr, ptr %28, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.complex, ptr %145, i64 1
  %147 = getelementptr inbounds %struct.complex, ptr %146, i32 0, i32 1
  store float 0.000000e+00, ptr %147, align 4, !tbaa !14
  store i32 1, ptr %98, align 4
  br label %2018

148:                                              ; preds = %15
  %149 = load ptr, ptr %18, align 8, !tbaa !5
  %150 = load i32, ptr %149, align 4, !tbaa !9
  %151 = icmp sle i32 %150, 15
  br i1 %151, label %152, label %178

152:                                              ; preds = %148
  store i32 1, ptr %87, align 4, !tbaa !9
  %153 = load ptr, ptr %29, align 8, !tbaa !5
  %154 = load i32, ptr %153, align 4, !tbaa !9
  %155 = icmp ne i32 %154, -1
  br i1 %155, label %156, label %177

156:                                              ; preds = %152
  %157 = load ptr, ptr %16, align 8, !tbaa !5
  %158 = load ptr, ptr %17, align 8, !tbaa !5
  %159 = load ptr, ptr %18, align 8, !tbaa !5
  %160 = load ptr, ptr %19, align 8, !tbaa !5
  %161 = load ptr, ptr %20, align 8, !tbaa !5
  %162 = load ptr, ptr %21, align 8, !tbaa !5
  %163 = load i32, ptr %32, align 4, !tbaa !9
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds %struct.complex, ptr %162, i64 %164
  %166 = load ptr, ptr %22, align 8, !tbaa !5
  %167 = load ptr, ptr %23, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.complex, ptr %167, i64 1
  %169 = load ptr, ptr %24, align 8, !tbaa !5
  %170 = load ptr, ptr %25, align 8, !tbaa !5
  %171 = load ptr, ptr %26, align 8, !tbaa !5
  %172 = load i32, ptr %34, align 4, !tbaa !9
  %173 = sext i32 %172 to i64
  %174 = getelementptr inbounds %struct.complex, ptr %171, i64 %173
  %175 = load ptr, ptr %27, align 8, !tbaa !5
  %176 = load ptr, ptr %30, align 8, !tbaa !5
  call void @clahqr_(ptr noundef %157, ptr noundef %158, ptr noundef %159, ptr noundef %160, ptr noundef %161, ptr noundef %165, ptr noundef %166, ptr noundef %168, ptr noundef %169, ptr noundef %170, ptr noundef %174, ptr noundef %175, ptr noundef %176)
  br label %177

177:                                              ; preds = %156, %152
  br label %2002

178:                                              ; preds = %148
  %179 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 0, ptr %179, align 4, !tbaa !9
  %180 = load ptr, ptr %16, align 8, !tbaa !5
  %181 = load i32, ptr %180, align 4, !tbaa !9
  %182 = icmp ne i32 %181, 0
  br i1 %182, label %183, label %185

183:                                              ; preds = %178
  %184 = getelementptr inbounds [2 x i8], ptr %83, i64 0, i64 0
  store i8 83, ptr %184, align 1, !tbaa !15
  br label %187

185:                                              ; preds = %178
  %186 = getelementptr inbounds [2 x i8], ptr %83, i64 0, i64 0
  store i8 69, ptr %186, align 1, !tbaa !15
  br label %187

187:                                              ; preds = %185, %183
  %188 = load ptr, ptr %17, align 8, !tbaa !5
  %189 = load i32, ptr %188, align 4, !tbaa !9
  %190 = icmp ne i32 %189, 0
  br i1 %190, label %191, label %193

191:                                              ; preds = %187
  %192 = getelementptr inbounds [2 x i8], ptr %83, i64 0, i64 1
  store i8 86, ptr %192, align 1, !tbaa !15
  br label %195

193:                                              ; preds = %187
  %194 = getelementptr inbounds [2 x i8], ptr %83, i64 0, i64 1
  store i8 78, ptr %194, align 1, !tbaa !15
  br label %195

195:                                              ; preds = %193, %191
  %196 = getelementptr inbounds [2 x i8], ptr %83, i64 0, i64 0
  %197 = load ptr, ptr %18, align 8, !tbaa !5
  %198 = load ptr, ptr %19, align 8, !tbaa !5
  %199 = load ptr, ptr %20, align 8, !tbaa !5
  %200 = load ptr, ptr %29, align 8, !tbaa !5
  %201 = call i32 @ilaenv_(ptr noundef @c__13, ptr noundef @.str, ptr noundef %196, ptr noundef %197, ptr noundef %198, ptr noundef %199, ptr noundef %200, i32 noundef 6, i32 noundef 2)
  store i32 %201, ptr %96, align 4, !tbaa !9
  %202 = load i32, ptr %96, align 4, !tbaa !9
  %203 = icmp sge i32 2, %202
  br i1 %203, label %204, label %205

204:                                              ; preds = %195
  br label %207

205:                                              ; preds = %195
  %206 = load i32, ptr %96, align 4, !tbaa !9
  br label %207

207:                                              ; preds = %205, %204
  %208 = phi i32 [ 2, %204 ], [ %206, %205 ]
  store i32 %208, ptr %96, align 4, !tbaa !9
  %209 = load ptr, ptr %20, align 8, !tbaa !5
  %210 = load i32, ptr %209, align 4, !tbaa !9
  %211 = load ptr, ptr %19, align 8, !tbaa !5
  %212 = load i32, ptr %211, align 4, !tbaa !9
  %213 = sub nsw i32 %210, %212
  %214 = add nsw i32 %213, 1
  store i32 %214, ptr %35, align 4, !tbaa !9
  %215 = load ptr, ptr %18, align 8, !tbaa !5
  %216 = load i32, ptr %215, align 4, !tbaa !9
  %217 = sub nsw i32 %216, 1
  %218 = sdiv i32 %217, 3
  store i32 %218, ptr %36, align 4, !tbaa !9
  %219 = load i32, ptr %35, align 4, !tbaa !9
  %220 = load i32, ptr %36, align 4, !tbaa !9
  %221 = icmp sle i32 %219, %220
  br i1 %221, label %222, label %224

222:                                              ; preds = %207
  %223 = load i32, ptr %35, align 4, !tbaa !9
  br label %226

224:                                              ; preds = %207
  %225 = load i32, ptr %36, align 4, !tbaa !9
  br label %226

226:                                              ; preds = %224, %222
  %227 = phi i32 [ %223, %222 ], [ %225, %224 ]
  store i32 %227, ptr %35, align 4, !tbaa !9
  %228 = load i32, ptr %35, align 4, !tbaa !9
  %229 = load i32, ptr %96, align 4, !tbaa !9
  %230 = icmp sle i32 %228, %229
  br i1 %230, label %231, label %233

231:                                              ; preds = %226
  %232 = load i32, ptr %35, align 4, !tbaa !9
  br label %235

233:                                              ; preds = %226
  %234 = load i32, ptr %96, align 4, !tbaa !9
  br label %235

235:                                              ; preds = %233, %231
  %236 = phi i32 [ %232, %231 ], [ %234, %233 ]
  store i32 %236, ptr %96, align 4, !tbaa !9
  %237 = getelementptr inbounds [2 x i8], ptr %83, i64 0, i64 0
  %238 = load ptr, ptr %18, align 8, !tbaa !5
  %239 = load ptr, ptr %19, align 8, !tbaa !5
  %240 = load ptr, ptr %20, align 8, !tbaa !5
  %241 = load ptr, ptr %29, align 8, !tbaa !5
  %242 = call i32 @ilaenv_(ptr noundef @c__15, ptr noundef @.str, ptr noundef %237, ptr noundef %238, ptr noundef %239, ptr noundef %240, ptr noundef %241, i32 noundef 6, i32 noundef 2)
  store i32 %242, ptr %95, align 4, !tbaa !9
  %243 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %243, ptr %35, align 4, !tbaa !9
  %244 = load ptr, ptr %18, align 8, !tbaa !5
  %245 = load i32, ptr %244, align 4, !tbaa !9
  %246 = sub nsw i32 %245, 3
  %247 = sdiv i32 %246, 6
  store i32 %247, ptr %36, align 4, !tbaa !9
  %248 = load i32, ptr %35, align 4, !tbaa !9
  %249 = load i32, ptr %36, align 4, !tbaa !9
  %250 = icmp sle i32 %248, %249
  br i1 %250, label %251, label %253

251:                                              ; preds = %235
  %252 = load i32, ptr %35, align 4, !tbaa !9
  br label %255

253:                                              ; preds = %235
  %254 = load i32, ptr %36, align 4, !tbaa !9
  br label %255

255:                                              ; preds = %253, %251
  %256 = phi i32 [ %252, %251 ], [ %254, %253 ]
  store i32 %256, ptr %35, align 4, !tbaa !9
  %257 = load ptr, ptr %20, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = load ptr, ptr %19, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = sub nsw i32 %258, %260
  store i32 %261, ptr %36, align 4, !tbaa !9
  %262 = load i32, ptr %35, align 4, !tbaa !9
  %263 = load i32, ptr %36, align 4, !tbaa !9
  %264 = icmp sle i32 %262, %263
  br i1 %264, label %265, label %267

265:                                              ; preds = %255
  %266 = load i32, ptr %35, align 4, !tbaa !9
  br label %269

267:                                              ; preds = %255
  %268 = load i32, ptr %36, align 4, !tbaa !9
  br label %269

269:                                              ; preds = %267, %265
  %270 = phi i32 [ %266, %265 ], [ %268, %267 ]
  store i32 %270, ptr %95, align 4, !tbaa !9
  store i32 2, ptr %35, align 4, !tbaa !9
  %271 = load i32, ptr %95, align 4, !tbaa !9
  %272 = load i32, ptr %95, align 4, !tbaa !9
  %273 = srem i32 %272, 2
  %274 = sub nsw i32 %271, %273
  store i32 %274, ptr %36, align 4, !tbaa !9
  %275 = load i32, ptr %35, align 4, !tbaa !9
  %276 = load i32, ptr %36, align 4, !tbaa !9
  %277 = icmp sge i32 %275, %276
  br i1 %277, label %278, label %280

278:                                              ; preds = %269
  %279 = load i32, ptr %35, align 4, !tbaa !9
  br label %282

280:                                              ; preds = %269
  %281 = load i32, ptr %36, align 4, !tbaa !9
  br label %282

282:                                              ; preds = %280, %278
  %283 = phi i32 [ %279, %278 ], [ %281, %280 ]
  store i32 %283, ptr %95, align 4, !tbaa !9
  %284 = load i32, ptr %96, align 4, !tbaa !9
  %285 = add nsw i32 %284, 1
  store i32 %285, ptr %35, align 4, !tbaa !9
  %286 = load ptr, ptr %16, align 8, !tbaa !5
  %287 = load ptr, ptr %17, align 8, !tbaa !5
  %288 = load ptr, ptr %18, align 8, !tbaa !5
  %289 = load ptr, ptr %19, align 8, !tbaa !5
  %290 = load ptr, ptr %20, align 8, !tbaa !5
  %291 = load ptr, ptr %21, align 8, !tbaa !5
  %292 = load i32, ptr %32, align 4, !tbaa !9
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds %struct.complex, ptr %291, i64 %293
  %295 = load ptr, ptr %22, align 8, !tbaa !5
  %296 = load ptr, ptr %24, align 8, !tbaa !5
  %297 = load ptr, ptr %25, align 8, !tbaa !5
  %298 = load ptr, ptr %26, align 8, !tbaa !5
  %299 = load i32, ptr %34, align 4, !tbaa !9
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds %struct.complex, ptr %298, i64 %300
  %302 = load ptr, ptr %27, align 8, !tbaa !5
  %303 = load ptr, ptr %23, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.complex, ptr %303, i64 1
  %305 = load ptr, ptr %21, align 8, !tbaa !5
  %306 = load i32, ptr %32, align 4, !tbaa !9
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds %struct.complex, ptr %305, i64 %307
  %309 = load ptr, ptr %22, align 8, !tbaa !5
  %310 = load ptr, ptr %18, align 8, !tbaa !5
  %311 = load ptr, ptr %21, align 8, !tbaa !5
  %312 = load i32, ptr %32, align 4, !tbaa !9
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds %struct.complex, ptr %311, i64 %313
  %315 = load ptr, ptr %22, align 8, !tbaa !5
  %316 = load ptr, ptr %18, align 8, !tbaa !5
  %317 = load ptr, ptr %21, align 8, !tbaa !5
  %318 = load i32, ptr %32, align 4, !tbaa !9
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds %struct.complex, ptr %317, i64 %319
  %321 = load ptr, ptr %22, align 8, !tbaa !5
  %322 = load ptr, ptr %28, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.complex, ptr %322, i64 1
  call void @claqr2_(ptr noundef %286, ptr noundef %287, ptr noundef %288, ptr noundef %289, ptr noundef %290, ptr noundef %35, ptr noundef %294, ptr noundef %295, ptr noundef %296, ptr noundef %297, ptr noundef %301, ptr noundef %302, ptr noundef %80, ptr noundef %72, ptr noundef %304, ptr noundef %308, ptr noundef %309, ptr noundef %310, ptr noundef %314, ptr noundef %315, ptr noundef %316, ptr noundef %320, ptr noundef %321, ptr noundef %323, ptr noundef @c_n1)
  %324 = load i32, ptr %95, align 4, !tbaa !9
  %325 = mul nsw i32 %324, 3
  %326 = sdiv i32 %325, 2
  store i32 %326, ptr %35, align 4, !tbaa !9
  %327 = load ptr, ptr %28, align 8, !tbaa !5
  %328 = getelementptr inbounds %struct.complex, ptr %327, i64 1
  %329 = getelementptr inbounds %struct.complex, ptr %328, i32 0, i32 0
  %330 = load float, ptr %329, align 4, !tbaa !11
  %331 = fptosi float %330 to i32
  store i32 %331, ptr %36, align 4, !tbaa !9
  %332 = load i32, ptr %35, align 4, !tbaa !9
  %333 = load i32, ptr %36, align 4, !tbaa !9
  %334 = icmp sge i32 %332, %333
  br i1 %334, label %335, label %337

335:                                              ; preds = %282
  %336 = load i32, ptr %35, align 4, !tbaa !9
  br label %339

337:                                              ; preds = %282
  %338 = load i32, ptr %36, align 4, !tbaa !9
  br label %339

339:                                              ; preds = %337, %335
  %340 = phi i32 [ %336, %335 ], [ %338, %337 ]
  store i32 %340, ptr %87, align 4, !tbaa !9
  %341 = load ptr, ptr %29, align 8, !tbaa !5
  %342 = load i32, ptr %341, align 4, !tbaa !9
  %343 = icmp eq i32 %342, -1
  br i1 %343, label %344, label %360

344:                                              ; preds = %339
  %345 = load i32, ptr %87, align 4, !tbaa !9
  %346 = sitofp i32 %345 to float
  store float %346, ptr %40, align 4, !tbaa !16
  %347 = load float, ptr %40, align 4, !tbaa !16
  %348 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %347, ptr %348, align 4, !tbaa !11
  %349 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float 0.000000e+00, ptr %349, align 4, !tbaa !14
  %350 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %351 = load float, ptr %350, align 4, !tbaa !11
  %352 = load ptr, ptr %28, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.complex, ptr %352, i64 1
  %354 = getelementptr inbounds %struct.complex, ptr %353, i32 0, i32 0
  store float %351, ptr %354, align 4, !tbaa !11
  %355 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %356 = load float, ptr %355, align 4, !tbaa !14
  %357 = load ptr, ptr %28, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.complex, ptr %357, i64 1
  %359 = getelementptr inbounds %struct.complex, ptr %358, i32 0, i32 1
  store float %356, ptr %359, align 4, !tbaa !14
  store i32 1, ptr %98, align 4
  br label %2018

360:                                              ; preds = %339
  %361 = getelementptr inbounds [2 x i8], ptr %83, i64 0, i64 0
  %362 = load ptr, ptr %18, align 8, !tbaa !5
  %363 = load ptr, ptr %19, align 8, !tbaa !5
  %364 = load ptr, ptr %20, align 8, !tbaa !5
  %365 = load ptr, ptr %29, align 8, !tbaa !5
  %366 = call i32 @ilaenv_(ptr noundef @c__12, ptr noundef @.str, ptr noundef %361, ptr noundef %362, ptr noundef %363, ptr noundef %364, ptr noundef %365, i32 noundef 6, i32 noundef 2)
  store i32 %366, ptr %56, align 4, !tbaa !9
  %367 = load i32, ptr %56, align 4, !tbaa !9
  %368 = icmp sge i32 15, %367
  br i1 %368, label %369, label %370

369:                                              ; preds = %360
  br label %372

370:                                              ; preds = %360
  %371 = load i32, ptr %56, align 4, !tbaa !9
  br label %372

372:                                              ; preds = %370, %369
  %373 = phi i32 [ 15, %369 ], [ %371, %370 ]
  store i32 %373, ptr %56, align 4, !tbaa !9
  %374 = getelementptr inbounds [2 x i8], ptr %83, i64 0, i64 0
  %375 = load ptr, ptr %18, align 8, !tbaa !5
  %376 = load ptr, ptr %19, align 8, !tbaa !5
  %377 = load ptr, ptr %20, align 8, !tbaa !5
  %378 = load ptr, ptr %29, align 8, !tbaa !5
  %379 = call i32 @ilaenv_(ptr noundef @c__14, ptr noundef @.str, ptr noundef %374, ptr noundef %375, ptr noundef %376, ptr noundef %377, ptr noundef %378, i32 noundef 6, i32 noundef 2)
  store i32 %379, ptr %74, align 4, !tbaa !9
  %380 = load i32, ptr %74, align 4, !tbaa !9
  %381 = icmp sge i32 0, %380
  br i1 %381, label %382, label %383

382:                                              ; preds = %372
  br label %385

383:                                              ; preds = %372
  %384 = load i32, ptr %74, align 4, !tbaa !9
  br label %385

385:                                              ; preds = %383, %382
  %386 = phi i32 [ 0, %382 ], [ %384, %383 ]
  store i32 %386, ptr %74, align 4, !tbaa !9
  %387 = getelementptr inbounds [2 x i8], ptr %83, i64 0, i64 0
  %388 = load ptr, ptr %18, align 8, !tbaa !5
  %389 = load ptr, ptr %19, align 8, !tbaa !5
  %390 = load ptr, ptr %20, align 8, !tbaa !5
  %391 = load ptr, ptr %29, align 8, !tbaa !5
  %392 = call i32 @ilaenv_(ptr noundef @c__16, ptr noundef @.str, ptr noundef %387, ptr noundef %388, ptr noundef %389, ptr noundef %390, ptr noundef %391, i32 noundef 6, i32 noundef 2)
  store i32 %392, ptr %60, align 4, !tbaa !9
  %393 = load i32, ptr %60, align 4, !tbaa !9
  %394 = icmp sge i32 0, %393
  br i1 %394, label %395, label %396

395:                                              ; preds = %385
  br label %398

396:                                              ; preds = %385
  %397 = load i32, ptr %60, align 4, !tbaa !9
  br label %398

398:                                              ; preds = %396, %395
  %399 = phi i32 [ 0, %395 ], [ %397, %396 ]
  store i32 %399, ptr %60, align 4, !tbaa !9
  %400 = load i32, ptr %60, align 4, !tbaa !9
  %401 = icmp sle i32 2, %400
  br i1 %401, label %402, label %403

402:                                              ; preds = %398
  br label %405

403:                                              ; preds = %398
  %404 = load i32, ptr %60, align 4, !tbaa !9
  br label %405

405:                                              ; preds = %403, %402
  %406 = phi i32 [ 2, %402 ], [ %404, %403 ]
  store i32 %406, ptr %60, align 4, !tbaa !9
  %407 = load ptr, ptr %18, align 8, !tbaa !5
  %408 = load i32, ptr %407, align 4, !tbaa !9
  %409 = sub nsw i32 %408, 1
  %410 = sdiv i32 %409, 3
  store i32 %410, ptr %35, align 4, !tbaa !9
  %411 = load ptr, ptr %29, align 8, !tbaa !5
  %412 = load i32, ptr %411, align 4, !tbaa !9
  %413 = sdiv i32 %412, 2
  store i32 %413, ptr %36, align 4, !tbaa !9
  %414 = load i32, ptr %35, align 4, !tbaa !9
  %415 = load i32, ptr %36, align 4, !tbaa !9
  %416 = icmp sle i32 %414, %415
  br i1 %416, label %417, label %419

417:                                              ; preds = %405
  %418 = load i32, ptr %35, align 4, !tbaa !9
  br label %421

419:                                              ; preds = %405
  %420 = load i32, ptr %36, align 4, !tbaa !9
  br label %421

421:                                              ; preds = %419, %417
  %422 = phi i32 [ %418, %417 ], [ %420, %419 ]
  store i32 %422, ptr %66, align 4, !tbaa !9
  %423 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %423, ptr %82, align 4, !tbaa !9
  %424 = load ptr, ptr %18, align 8, !tbaa !5
  %425 = load i32, ptr %424, align 4, !tbaa !9
  %426 = sub nsw i32 %425, 3
  %427 = sdiv i32 %426, 6
  store i32 %427, ptr %35, align 4, !tbaa !9
  %428 = load ptr, ptr %29, align 8, !tbaa !5
  %429 = load i32, ptr %428, align 4, !tbaa !9
  %430 = shl i32 %429, 1
  %431 = sdiv i32 %430, 3
  store i32 %431, ptr %36, align 4, !tbaa !9
  %432 = load i32, ptr %35, align 4, !tbaa !9
  %433 = load i32, ptr %36, align 4, !tbaa !9
  %434 = icmp sle i32 %432, %433
  br i1 %434, label %435, label %437

435:                                              ; preds = %421
  %436 = load i32, ptr %35, align 4, !tbaa !9
  br label %439

437:                                              ; preds = %421
  %438 = load i32, ptr %36, align 4, !tbaa !9
  br label %439

439:                                              ; preds = %437, %435
  %440 = phi i32 [ %436, %435 ], [ %438, %437 ]
  store i32 %440, ptr %65, align 4, !tbaa !9
  %441 = load i32, ptr %65, align 4, !tbaa !9
  %442 = srem i32 %441, 2
  %443 = load i32, ptr %65, align 4, !tbaa !9
  %444 = sub nsw i32 %443, %442
  store i32 %444, ptr %65, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  store i32 10, ptr %35, align 4, !tbaa !9
  %445 = load ptr, ptr %20, align 8, !tbaa !5
  %446 = load i32, ptr %445, align 4, !tbaa !9
  %447 = load ptr, ptr %19, align 8, !tbaa !5
  %448 = load i32, ptr %447, align 4, !tbaa !9
  %449 = sub nsw i32 %446, %448
  %450 = add nsw i32 %449, 1
  store i32 %450, ptr %36, align 4, !tbaa !9
  %451 = load i32, ptr %35, align 4, !tbaa !9
  %452 = load i32, ptr %36, align 4, !tbaa !9
  %453 = icmp sge i32 %451, %452
  br i1 %453, label %454, label %456

454:                                              ; preds = %439
  %455 = load i32, ptr %35, align 4, !tbaa !9
  br label %458

456:                                              ; preds = %439
  %457 = load i32, ptr %36, align 4, !tbaa !9
  br label %458

458:                                              ; preds = %456, %454
  %459 = phi i32 [ %455, %454 ], [ %457, %456 ]
  %460 = mul nsw i32 30, %459
  store i32 %460, ptr %64, align 4, !tbaa !9
  %461 = load ptr, ptr %20, align 8, !tbaa !5
  %462 = load i32, ptr %461, align 4, !tbaa !9
  store i32 %462, ptr %55, align 4, !tbaa !9
  %463 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %463, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %464

464:                                              ; preds = %1995, %458
  %465 = load i32, ptr %75, align 4, !tbaa !9
  %466 = load i32, ptr %35, align 4, !tbaa !9
  %467 = icmp sle i32 %465, %466
  br i1 %467, label %468, label %1998

468:                                              ; preds = %464
  %469 = load i32, ptr %55, align 4, !tbaa !9
  %470 = load ptr, ptr %19, align 8, !tbaa !5
  %471 = load i32, ptr %470, align 4, !tbaa !9
  %472 = icmp slt i32 %469, %471
  br i1 %472, label %473, label %474

473:                                              ; preds = %468
  br label %2001

474:                                              ; preds = %468
  %475 = load ptr, ptr %19, align 8, !tbaa !5
  %476 = load i32, ptr %475, align 4, !tbaa !9
  %477 = add nsw i32 %476, 1
  store i32 %477, ptr %36, align 4, !tbaa !9
  %478 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %478, ptr %62, align 4, !tbaa !9
  br label %479

479:                                              ; preds = %507, %474
  %480 = load i32, ptr %62, align 4, !tbaa !9
  %481 = load i32, ptr %36, align 4, !tbaa !9
  %482 = icmp sge i32 %480, %481
  br i1 %482, label %483, label %510

483:                                              ; preds = %479
  %484 = load i32, ptr %62, align 4, !tbaa !9
  %485 = load i32, ptr %62, align 4, !tbaa !9
  %486 = sub nsw i32 %485, 1
  %487 = load i32, ptr %31, align 4, !tbaa !9
  %488 = mul nsw i32 %486, %487
  %489 = add nsw i32 %484, %488
  store i32 %489, ptr %37, align 4, !tbaa !9
  %490 = load ptr, ptr %21, align 8, !tbaa !5
  %491 = load i32, ptr %37, align 4, !tbaa !9
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds %struct.complex, ptr %490, i64 %492
  %494 = getelementptr inbounds %struct.complex, ptr %493, i32 0, i32 0
  %495 = load float, ptr %494, align 4, !tbaa !11
  %496 = fcmp oeq float %495, 0.000000e+00
  br i1 %496, label %497, label %506

497:                                              ; preds = %483
  %498 = load ptr, ptr %21, align 8, !tbaa !5
  %499 = load i32, ptr %37, align 4, !tbaa !9
  %500 = sext i32 %499 to i64
  %501 = getelementptr inbounds %struct.complex, ptr %498, i64 %500
  %502 = getelementptr inbounds %struct.complex, ptr %501, i32 0, i32 1
  %503 = load float, ptr %502, align 4, !tbaa !14
  %504 = fcmp oeq float %503, 0.000000e+00
  br i1 %504, label %505, label %506

505:                                              ; preds = %497
  br label %513

506:                                              ; preds = %497, %483
  br label %507

507:                                              ; preds = %506
  %508 = load i32, ptr %62, align 4, !tbaa !9
  %509 = add nsw i32 %508, -1
  store i32 %509, ptr %62, align 4, !tbaa !9
  br label %479, !llvm.loop !17

510:                                              ; preds = %479
  %511 = load ptr, ptr %19, align 8, !tbaa !5
  %512 = load i32, ptr %511, align 4, !tbaa !9
  store i32 %512, ptr %62, align 4, !tbaa !9
  br label %513

513:                                              ; preds = %510, %505
  %514 = load i32, ptr %62, align 4, !tbaa !9
  store i32 %514, ptr %58, align 4, !tbaa !9
  %515 = load i32, ptr %55, align 4, !tbaa !9
  %516 = load i32, ptr %58, align 4, !tbaa !9
  %517 = sub nsw i32 %515, %516
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr %73, align 4, !tbaa !9
  %519 = load i32, ptr %73, align 4, !tbaa !9
  %520 = load i32, ptr %66, align 4, !tbaa !9
  %521 = icmp sle i32 %519, %520
  br i1 %521, label %522, label %524

522:                                              ; preds = %513
  %523 = load i32, ptr %73, align 4, !tbaa !9
  br label %526

524:                                              ; preds = %513
  %525 = load i32, ptr %66, align 4, !tbaa !9
  br label %526

526:                                              ; preds = %524, %522
  %527 = phi i32 [ %523, %522 ], [ %525, %524 ]
  store i32 %527, ptr %85, align 4, !tbaa !9
  %528 = load i32, ptr %54, align 4, !tbaa !9
  %529 = icmp slt i32 %528, 5
  br i1 %529, label %530, label %540

530:                                              ; preds = %526
  %531 = load i32, ptr %85, align 4, !tbaa !9
  %532 = load i32, ptr %96, align 4, !tbaa !9
  %533 = icmp sle i32 %531, %532
  br i1 %533, label %534, label %536

534:                                              ; preds = %530
  %535 = load i32, ptr %85, align 4, !tbaa !9
  br label %538

536:                                              ; preds = %530
  %537 = load i32, ptr %96, align 4, !tbaa !9
  br label %538

538:                                              ; preds = %536, %534
  %539 = phi i32 [ %535, %534 ], [ %537, %536 ]
  store i32 %539, ptr %82, align 4, !tbaa !9
  br label %553

540:                                              ; preds = %526
  %541 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %541, ptr %36, align 4, !tbaa !9
  %542 = load i32, ptr %82, align 4, !tbaa !9
  %543 = shl i32 %542, 1
  store i32 %543, ptr %37, align 4, !tbaa !9
  %544 = load i32, ptr %36, align 4, !tbaa !9
  %545 = load i32, ptr %37, align 4, !tbaa !9
  %546 = icmp sle i32 %544, %545
  br i1 %546, label %547, label %549

547:                                              ; preds = %540
  %548 = load i32, ptr %36, align 4, !tbaa !9
  br label %551

549:                                              ; preds = %540
  %550 = load i32, ptr %37, align 4, !tbaa !9
  br label %551

551:                                              ; preds = %549, %547
  %552 = phi i32 [ %548, %547 ], [ %550, %549 ]
  store i32 %552, ptr %82, align 4, !tbaa !9
  br label %553

553:                                              ; preds = %551, %538
  %554 = load i32, ptr %82, align 4, !tbaa !9
  %555 = load i32, ptr %66, align 4, !tbaa !9
  %556 = icmp slt i32 %554, %555
  br i1 %556, label %557, label %667

557:                                              ; preds = %553
  %558 = load i32, ptr %82, align 4, !tbaa !9
  %559 = load i32, ptr %73, align 4, !tbaa !9
  %560 = sub nsw i32 %559, 1
  %561 = icmp sge i32 %558, %560
  br i1 %561, label %562, label %564

562:                                              ; preds = %557
  %563 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %563, ptr %82, align 4, !tbaa !9
  br label %666

564:                                              ; preds = %557
  %565 = load i32, ptr %55, align 4, !tbaa !9
  %566 = load i32, ptr %82, align 4, !tbaa !9
  %567 = sub nsw i32 %565, %566
  %568 = add nsw i32 %567, 1
  store i32 %568, ptr %67, align 4, !tbaa !9
  %569 = load i32, ptr %67, align 4, !tbaa !9
  %570 = load i32, ptr %67, align 4, !tbaa !9
  %571 = sub nsw i32 %570, 1
  %572 = load i32, ptr %31, align 4, !tbaa !9
  %573 = mul nsw i32 %571, %572
  %574 = add nsw i32 %569, %573
  store i32 %574, ptr %36, align 4, !tbaa !9
  %575 = load i32, ptr %67, align 4, !tbaa !9
  %576 = sub nsw i32 %575, 1
  %577 = load i32, ptr %67, align 4, !tbaa !9
  %578 = sub nsw i32 %577, 2
  %579 = load i32, ptr %31, align 4, !tbaa !9
  %580 = mul nsw i32 %578, %579
  %581 = add nsw i32 %576, %580
  store i32 %581, ptr %37, align 4, !tbaa !9
  %582 = load ptr, ptr %21, align 8, !tbaa !5
  %583 = load i32, ptr %36, align 4, !tbaa !9
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds %struct.complex, ptr %582, i64 %584
  %586 = getelementptr inbounds %struct.complex, ptr %585, i32 0, i32 0
  %587 = load float, ptr %586, align 4, !tbaa !11
  store float %587, ptr %40, align 4, !tbaa !16
  %588 = load float, ptr %40, align 4, !tbaa !16
  %589 = fcmp oge float %588, 0.000000e+00
  br i1 %589, label %590, label %592

590:                                              ; preds = %564
  %591 = load float, ptr %40, align 4, !tbaa !16
  br label %595

592:                                              ; preds = %564
  %593 = load float, ptr %40, align 4, !tbaa !16
  %594 = fneg float %593
  br label %595

595:                                              ; preds = %592, %590
  %596 = phi float [ %591, %590 ], [ %594, %592 ]
  %597 = load ptr, ptr %21, align 8, !tbaa !5
  %598 = load i32, ptr %67, align 4, !tbaa !9
  %599 = load i32, ptr %67, align 4, !tbaa !9
  %600 = sub nsw i32 %599, 1
  %601 = load i32, ptr %31, align 4, !tbaa !9
  %602 = mul nsw i32 %600, %601
  %603 = add nsw i32 %598, %602
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds %struct.complex, ptr %597, i64 %604
  %606 = call <2 x float> @Cf(ptr noundef %605)
  store <2 x float> %606, ptr %99, align 4
  %607 = getelementptr inbounds { float, float }, ptr %99, i32 0, i32 0
  %608 = load float, ptr %607, align 4
  %609 = getelementptr inbounds { float, float }, ptr %99, i32 0, i32 1
  %610 = load float, ptr %609, align 4
  store float %610, ptr %41, align 4, !tbaa !16
  %611 = load float, ptr %41, align 4, !tbaa !16
  %612 = fcmp oge float %611, 0.000000e+00
  br i1 %612, label %613, label %615

613:                                              ; preds = %595
  %614 = load float, ptr %41, align 4, !tbaa !16
  br label %618

615:                                              ; preds = %595
  %616 = load float, ptr %41, align 4, !tbaa !16
  %617 = fneg float %616
  br label %618

618:                                              ; preds = %615, %613
  %619 = phi float [ %614, %613 ], [ %617, %615 ]
  %620 = fadd float %596, %619
  %621 = load ptr, ptr %21, align 8, !tbaa !5
  %622 = load i32, ptr %37, align 4, !tbaa !9
  %623 = sext i32 %622 to i64
  %624 = getelementptr inbounds %struct.complex, ptr %621, i64 %623
  %625 = getelementptr inbounds %struct.complex, ptr %624, i32 0, i32 0
  %626 = load float, ptr %625, align 4, !tbaa !11
  store float %626, ptr %42, align 4, !tbaa !16
  %627 = load float, ptr %42, align 4, !tbaa !16
  %628 = fcmp oge float %627, 0.000000e+00
  br i1 %628, label %629, label %631

629:                                              ; preds = %618
  %630 = load float, ptr %42, align 4, !tbaa !16
  br label %634

631:                                              ; preds = %618
  %632 = load float, ptr %42, align 4, !tbaa !16
  %633 = fneg float %632
  br label %634

634:                                              ; preds = %631, %629
  %635 = phi float [ %630, %629 ], [ %633, %631 ]
  %636 = load ptr, ptr %21, align 8, !tbaa !5
  %637 = load i32, ptr %67, align 4, !tbaa !9
  %638 = sub nsw i32 %637, 1
  %639 = load i32, ptr %67, align 4, !tbaa !9
  %640 = sub nsw i32 %639, 2
  %641 = load i32, ptr %31, align 4, !tbaa !9
  %642 = mul nsw i32 %640, %641
  %643 = add nsw i32 %638, %642
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds %struct.complex, ptr %636, i64 %644
  %646 = call <2 x float> @Cf(ptr noundef %645)
  store <2 x float> %646, ptr %100, align 4
  %647 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 0
  %648 = load float, ptr %647, align 4
  %649 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 1
  %650 = load float, ptr %649, align 4
  store float %650, ptr %43, align 4, !tbaa !16
  %651 = load float, ptr %43, align 4, !tbaa !16
  %652 = fcmp oge float %651, 0.000000e+00
  br i1 %652, label %653, label %655

653:                                              ; preds = %634
  %654 = load float, ptr %43, align 4, !tbaa !16
  br label %658

655:                                              ; preds = %634
  %656 = load float, ptr %43, align 4, !tbaa !16
  %657 = fneg float %656
  br label %658

658:                                              ; preds = %655, %653
  %659 = phi float [ %654, %653 ], [ %657, %655 ]
  %660 = fadd float %635, %659
  %661 = fcmp ogt float %620, %660
  br i1 %661, label %662, label %665

662:                                              ; preds = %658
  %663 = load i32, ptr %82, align 4, !tbaa !9
  %664 = add nsw i32 %663, 1
  store i32 %664, ptr %82, align 4, !tbaa !9
  br label %665

665:                                              ; preds = %662, %658
  br label %666

666:                                              ; preds = %665, %562
  br label %667

667:                                              ; preds = %666, %553
  %668 = load i32, ptr %54, align 4, !tbaa !9
  %669 = icmp slt i32 %668, 5
  br i1 %669, label %670, label %671

670:                                              ; preds = %667
  store i32 -1, ptr %53, align 4, !tbaa !9
  br label %691

671:                                              ; preds = %667
  %672 = load i32, ptr %53, align 4, !tbaa !9
  %673 = icmp sge i32 %672, 0
  br i1 %673, label %678, label %674

674:                                              ; preds = %671
  %675 = load i32, ptr %82, align 4, !tbaa !9
  %676 = load i32, ptr %85, align 4, !tbaa !9
  %677 = icmp sge i32 %675, %676
  br i1 %677, label %678, label %690

678:                                              ; preds = %674, %671
  %679 = load i32, ptr %53, align 4, !tbaa !9
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr %53, align 4, !tbaa !9
  %681 = load i32, ptr %82, align 4, !tbaa !9
  %682 = load i32, ptr %53, align 4, !tbaa !9
  %683 = sub nsw i32 %681, %682
  %684 = icmp slt i32 %683, 2
  br i1 %684, label %685, label %686

685:                                              ; preds = %678
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %686

686:                                              ; preds = %685, %678
  %687 = load i32, ptr %53, align 4, !tbaa !9
  %688 = load i32, ptr %82, align 4, !tbaa !9
  %689 = sub nsw i32 %688, %687
  store i32 %689, ptr %82, align 4, !tbaa !9
  br label %690

690:                                              ; preds = %686, %674
  br label %691

691:                                              ; preds = %690, %670
  %692 = load ptr, ptr %18, align 8, !tbaa !5
  %693 = load i32, ptr %692, align 4, !tbaa !9
  %694 = load i32, ptr %82, align 4, !tbaa !9
  %695 = sub nsw i32 %693, %694
  %696 = add nsw i32 %695, 1
  store i32 %696, ptr %79, align 4, !tbaa !9
  %697 = load i32, ptr %82, align 4, !tbaa !9
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr %77, align 4, !tbaa !9
  %699 = load ptr, ptr %18, align 8, !tbaa !5
  %700 = load i32, ptr %699, align 4, !tbaa !9
  %701 = load i32, ptr %82, align 4, !tbaa !9
  %702 = sub nsw i32 %700, %701
  %703 = sub nsw i32 %702, 1
  %704 = load i32, ptr %77, align 4, !tbaa !9
  %705 = sub nsw i32 %703, %704
  %706 = add nsw i32 %705, 1
  store i32 %706, ptr %92, align 4, !tbaa !9
  %707 = load i32, ptr %82, align 4, !tbaa !9
  %708 = add nsw i32 %707, 2
  store i32 %708, ptr %97, align 4, !tbaa !9
  %709 = load ptr, ptr %18, align 8, !tbaa !5
  %710 = load i32, ptr %709, align 4, !tbaa !9
  %711 = load i32, ptr %82, align 4, !tbaa !9
  %712 = sub nsw i32 %710, %711
  %713 = load i32, ptr %97, align 4, !tbaa !9
  %714 = sub nsw i32 %712, %713
  %715 = add nsw i32 %714, 1
  store i32 %715, ptr %93, align 4, !tbaa !9
  %716 = load ptr, ptr %16, align 8, !tbaa !5
  %717 = load ptr, ptr %17, align 8, !tbaa !5
  %718 = load ptr, ptr %18, align 8, !tbaa !5
  %719 = load ptr, ptr %21, align 8, !tbaa !5
  %720 = load i32, ptr %32, align 4, !tbaa !9
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds %struct.complex, ptr %719, i64 %721
  %723 = load ptr, ptr %22, align 8, !tbaa !5
  %724 = load ptr, ptr %24, align 8, !tbaa !5
  %725 = load ptr, ptr %25, align 8, !tbaa !5
  %726 = load ptr, ptr %26, align 8, !tbaa !5
  %727 = load i32, ptr %34, align 4, !tbaa !9
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds %struct.complex, ptr %726, i64 %728
  %730 = load ptr, ptr %27, align 8, !tbaa !5
  %731 = load ptr, ptr %23, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.complex, ptr %731, i64 1
  %733 = load ptr, ptr %21, align 8, !tbaa !5
  %734 = load i32, ptr %79, align 4, !tbaa !9
  %735 = load i32, ptr %31, align 4, !tbaa !9
  %736 = add nsw i32 %734, %735
  %737 = sext i32 %736 to i64
  %738 = getelementptr inbounds %struct.complex, ptr %733, i64 %737
  %739 = load ptr, ptr %22, align 8, !tbaa !5
  %740 = load ptr, ptr %21, align 8, !tbaa !5
  %741 = load i32, ptr %79, align 4, !tbaa !9
  %742 = load i32, ptr %77, align 4, !tbaa !9
  %743 = load i32, ptr %31, align 4, !tbaa !9
  %744 = mul nsw i32 %742, %743
  %745 = add nsw i32 %741, %744
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds %struct.complex, ptr %740, i64 %746
  %748 = load ptr, ptr %22, align 8, !tbaa !5
  %749 = load ptr, ptr %21, align 8, !tbaa !5
  %750 = load i32, ptr %97, align 4, !tbaa !9
  %751 = load i32, ptr %31, align 4, !tbaa !9
  %752 = add nsw i32 %750, %751
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds %struct.complex, ptr %749, i64 %753
  %755 = load ptr, ptr %22, align 8, !tbaa !5
  %756 = load ptr, ptr %28, align 8, !tbaa !5
  %757 = getelementptr inbounds %struct.complex, ptr %756, i64 1
  %758 = load ptr, ptr %29, align 8, !tbaa !5
  call void @claqr2_(ptr noundef %716, ptr noundef %717, ptr noundef %718, ptr noundef %58, ptr noundef %55, ptr noundef %82, ptr noundef %722, ptr noundef %723, ptr noundef %724, ptr noundef %725, ptr noundef %729, ptr noundef %730, ptr noundef %80, ptr noundef %72, ptr noundef %732, ptr noundef %738, ptr noundef %739, ptr noundef %92, ptr noundef %747, ptr noundef %748, ptr noundef %93, ptr noundef %754, ptr noundef %755, ptr noundef %757, ptr noundef %758)
  %759 = load i32, ptr %72, align 4, !tbaa !9
  %760 = load i32, ptr %55, align 4, !tbaa !9
  %761 = sub nsw i32 %760, %759
  store i32 %761, ptr %55, align 4, !tbaa !9
  %762 = load i32, ptr %55, align 4, !tbaa !9
  %763 = load i32, ptr %80, align 4, !tbaa !9
  %764 = sub nsw i32 %762, %763
  %765 = add nsw i32 %764, 1
  store i32 %765, ptr %76, align 4, !tbaa !9
  %766 = load i32, ptr %72, align 4, !tbaa !9
  %767 = icmp eq i32 %766, 0
  br i1 %767, label %790, label %768

768:                                              ; preds = %691
  %769 = load i32, ptr %72, align 4, !tbaa !9
  %770 = mul nsw i32 %769, 100
  %771 = load i32, ptr %82, align 4, !tbaa !9
  %772 = load i32, ptr %74, align 4, !tbaa !9
  %773 = mul nsw i32 %771, %772
  %774 = icmp sle i32 %770, %773
  br i1 %774, label %775, label %1987

775:                                              ; preds = %768
  %776 = load i32, ptr %55, align 4, !tbaa !9
  %777 = load i32, ptr %58, align 4, !tbaa !9
  %778 = sub nsw i32 %776, %777
  %779 = add nsw i32 %778, 1
  %780 = load i32, ptr %56, align 4, !tbaa !9
  %781 = load i32, ptr %66, align 4, !tbaa !9
  %782 = icmp sle i32 %780, %781
  br i1 %782, label %783, label %785

783:                                              ; preds = %775
  %784 = load i32, ptr %56, align 4, !tbaa !9
  br label %787

785:                                              ; preds = %775
  %786 = load i32, ptr %66, align 4, !tbaa !9
  br label %787

787:                                              ; preds = %785, %783
  %788 = phi i32 [ %784, %783 ], [ %786, %785 ]
  %789 = icmp sgt i32 %779, %788
  br i1 %789, label %790, label %1987

790:                                              ; preds = %787, %691
  store i32 2, ptr %38, align 4, !tbaa !9
  %791 = load i32, ptr %55, align 4, !tbaa !9
  %792 = load i32, ptr %58, align 4, !tbaa !9
  %793 = sub nsw i32 %791, %792
  store i32 %793, ptr %39, align 4, !tbaa !9
  %794 = load i32, ptr %65, align 4, !tbaa !9
  %795 = load i32, ptr %95, align 4, !tbaa !9
  %796 = icmp sle i32 %794, %795
  br i1 %796, label %797, label %799

797:                                              ; preds = %790
  %798 = load i32, ptr %65, align 4, !tbaa !9
  br label %801

799:                                              ; preds = %790
  %800 = load i32, ptr %95, align 4, !tbaa !9
  br label %801

801:                                              ; preds = %799, %797
  %802 = phi i32 [ %798, %797 ], [ %800, %799 ]
  store i32 %802, ptr %36, align 4, !tbaa !9
  %803 = load i32, ptr %38, align 4, !tbaa !9
  %804 = load i32, ptr %39, align 4, !tbaa !9
  %805 = icmp sge i32 %803, %804
  br i1 %805, label %806, label %808

806:                                              ; preds = %801
  %807 = load i32, ptr %38, align 4, !tbaa !9
  br label %810

808:                                              ; preds = %801
  %809 = load i32, ptr %39, align 4, !tbaa !9
  br label %810

810:                                              ; preds = %808, %806
  %811 = phi i32 [ %807, %806 ], [ %809, %808 ]
  store i32 %811, ptr %37, align 4, !tbaa !9
  %812 = load i32, ptr %36, align 4, !tbaa !9
  %813 = load i32, ptr %37, align 4, !tbaa !9
  %814 = icmp sle i32 %812, %813
  br i1 %814, label %815, label %817

815:                                              ; preds = %810
  %816 = load i32, ptr %36, align 4, !tbaa !9
  br label %819

817:                                              ; preds = %810
  %818 = load i32, ptr %37, align 4, !tbaa !9
  br label %819

819:                                              ; preds = %817, %815
  %820 = phi i32 [ %816, %815 ], [ %818, %817 ]
  store i32 %820, ptr %81, align 4, !tbaa !9
  %821 = load i32, ptr %81, align 4, !tbaa !9
  %822 = srem i32 %821, 2
  %823 = load i32, ptr %81, align 4, !tbaa !9
  %824 = sub nsw i32 %823, %822
  store i32 %824, ptr %81, align 4, !tbaa !9
  %825 = load i32, ptr %54, align 4, !tbaa !9
  %826 = srem i32 %825, 6
  %827 = icmp eq i32 %826, 0
  br i1 %827, label %828, label %952

828:                                              ; preds = %819
  %829 = load i32, ptr %55, align 4, !tbaa !9
  %830 = load i32, ptr %81, align 4, !tbaa !9
  %831 = sub nsw i32 %829, %830
  %832 = add nsw i32 %831, 1
  store i32 %832, ptr %76, align 4, !tbaa !9
  %833 = load i32, ptr %76, align 4, !tbaa !9
  %834 = add nsw i32 %833, 1
  store i32 %834, ptr %36, align 4, !tbaa !9
  %835 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %835, ptr %61, align 4, !tbaa !9
  br label %836

836:                                              ; preds = %948, %828
  %837 = load i32, ptr %61, align 4, !tbaa !9
  %838 = load i32, ptr %36, align 4, !tbaa !9
  %839 = icmp sge i32 %837, %838
  br i1 %839, label %840, label %951

840:                                              ; preds = %836
  %841 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %841, ptr %37, align 4, !tbaa !9
  %842 = load i32, ptr %61, align 4, !tbaa !9
  %843 = load i32, ptr %61, align 4, !tbaa !9
  %844 = load i32, ptr %31, align 4, !tbaa !9
  %845 = mul nsw i32 %843, %844
  %846 = add nsw i32 %842, %845
  store i32 %846, ptr %38, align 4, !tbaa !9
  %847 = load i32, ptr %61, align 4, !tbaa !9
  %848 = load i32, ptr %61, align 4, !tbaa !9
  %849 = sub nsw i32 %848, 1
  %850 = load i32, ptr %31, align 4, !tbaa !9
  %851 = mul nsw i32 %849, %850
  %852 = add nsw i32 %847, %851
  store i32 %852, ptr %39, align 4, !tbaa !9
  %853 = load ptr, ptr %21, align 8, !tbaa !5
  %854 = load i32, ptr %39, align 4, !tbaa !9
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds %struct.complex, ptr %853, i64 %855
  %857 = getelementptr inbounds %struct.complex, ptr %856, i32 0, i32 0
  %858 = load float, ptr %857, align 4, !tbaa !11
  store float %858, ptr %40, align 4, !tbaa !16
  %859 = load float, ptr %40, align 4, !tbaa !16
  %860 = fcmp oge float %859, 0.000000e+00
  br i1 %860, label %861, label %863

861:                                              ; preds = %840
  %862 = load float, ptr %40, align 4, !tbaa !16
  br label %866

863:                                              ; preds = %840
  %864 = load float, ptr %40, align 4, !tbaa !16
  %865 = fneg float %864
  br label %866

866:                                              ; preds = %863, %861
  %867 = phi float [ %862, %861 ], [ %865, %863 ]
  %868 = load ptr, ptr %21, align 8, !tbaa !5
  %869 = load i32, ptr %61, align 4, !tbaa !9
  %870 = load i32, ptr %61, align 4, !tbaa !9
  %871 = sub nsw i32 %870, 1
  %872 = load i32, ptr %31, align 4, !tbaa !9
  %873 = mul nsw i32 %871, %872
  %874 = add nsw i32 %869, %873
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds %struct.complex, ptr %868, i64 %875
  %877 = call <2 x float> @Cf(ptr noundef %876)
  store <2 x float> %877, ptr %101, align 4
  %878 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 0
  %879 = load float, ptr %878, align 4
  %880 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 1
  %881 = load float, ptr %880, align 4
  store float %881, ptr %41, align 4, !tbaa !16
  %882 = load float, ptr %41, align 4, !tbaa !16
  %883 = fcmp oge float %882, 0.000000e+00
  br i1 %883, label %884, label %886

884:                                              ; preds = %866
  %885 = load float, ptr %41, align 4, !tbaa !16
  br label %889

886:                                              ; preds = %866
  %887 = load float, ptr %41, align 4, !tbaa !16
  %888 = fneg float %887
  br label %889

889:                                              ; preds = %886, %884
  %890 = phi float [ %885, %884 ], [ %888, %886 ]
  %891 = fadd float %867, %890
  %892 = fmul float %891, 7.500000e-01
  store float %892, ptr %42, align 4, !tbaa !16
  %893 = load ptr, ptr %21, align 8, !tbaa !5
  %894 = load i32, ptr %38, align 4, !tbaa !9
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds %struct.complex, ptr %893, i64 %895
  %897 = getelementptr inbounds %struct.complex, ptr %896, i32 0, i32 0
  %898 = load float, ptr %897, align 4, !tbaa !11
  %899 = load float, ptr %42, align 4, !tbaa !16
  %900 = fadd float %898, %899
  %901 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %900, ptr %901, align 4, !tbaa !11
  %902 = load ptr, ptr %21, align 8, !tbaa !5
  %903 = load i32, ptr %38, align 4, !tbaa !9
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds %struct.complex, ptr %902, i64 %904
  %906 = getelementptr inbounds %struct.complex, ptr %905, i32 0, i32 1
  %907 = load float, ptr %906, align 4, !tbaa !14
  %908 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %907, ptr %908, align 4, !tbaa !14
  %909 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %910 = load float, ptr %909, align 4, !tbaa !11
  %911 = load ptr, ptr %23, align 8, !tbaa !5
  %912 = load i32, ptr %37, align 4, !tbaa !9
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds %struct.complex, ptr %911, i64 %913
  %915 = getelementptr inbounds %struct.complex, ptr %914, i32 0, i32 0
  store float %910, ptr %915, align 4, !tbaa !11
  %916 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %917 = load float, ptr %916, align 4, !tbaa !14
  %918 = load ptr, ptr %23, align 8, !tbaa !5
  %919 = load i32, ptr %37, align 4, !tbaa !9
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds %struct.complex, ptr %918, i64 %920
  %922 = getelementptr inbounds %struct.complex, ptr %921, i32 0, i32 1
  store float %917, ptr %922, align 4, !tbaa !14
  %923 = load i32, ptr %61, align 4, !tbaa !9
  %924 = sub nsw i32 %923, 1
  store i32 %924, ptr %37, align 4, !tbaa !9
  %925 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %925, ptr %38, align 4, !tbaa !9
  %926 = load ptr, ptr %23, align 8, !tbaa !5
  %927 = load i32, ptr %38, align 4, !tbaa !9
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds %struct.complex, ptr %926, i64 %928
  %930 = getelementptr inbounds %struct.complex, ptr %929, i32 0, i32 0
  %931 = load float, ptr %930, align 4, !tbaa !11
  %932 = load ptr, ptr %23, align 8, !tbaa !5
  %933 = load i32, ptr %37, align 4, !tbaa !9
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds %struct.complex, ptr %932, i64 %934
  %936 = getelementptr inbounds %struct.complex, ptr %935, i32 0, i32 0
  store float %931, ptr %936, align 4, !tbaa !11
  %937 = load ptr, ptr %23, align 8, !tbaa !5
  %938 = load i32, ptr %38, align 4, !tbaa !9
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds %struct.complex, ptr %937, i64 %939
  %941 = getelementptr inbounds %struct.complex, ptr %940, i32 0, i32 1
  %942 = load float, ptr %941, align 4, !tbaa !14
  %943 = load ptr, ptr %23, align 8, !tbaa !5
  %944 = load i32, ptr %37, align 4, !tbaa !9
  %945 = sext i32 %944 to i64
  %946 = getelementptr inbounds %struct.complex, ptr %943, i64 %945
  %947 = getelementptr inbounds %struct.complex, ptr %946, i32 0, i32 1
  store float %942, ptr %947, align 4, !tbaa !14
  br label %948

948:                                              ; preds = %889
  %949 = load i32, ptr %61, align 4, !tbaa !9
  %950 = add nsw i32 %949, -2
  store i32 %950, ptr %61, align 4, !tbaa !9
  br label %836, !llvm.loop !19

951:                                              ; preds = %836
  br label %1699

952:                                              ; preds = %819
  %953 = load i32, ptr %55, align 4, !tbaa !9
  %954 = load i32, ptr %76, align 4, !tbaa !9
  %955 = sub nsw i32 %953, %954
  %956 = add nsw i32 %955, 1
  %957 = load i32, ptr %81, align 4, !tbaa !9
  %958 = sdiv i32 %957, 2
  %959 = icmp sle i32 %956, %958
  br i1 %959, label %960, label %1530

960:                                              ; preds = %952
  %961 = load i32, ptr %55, align 4, !tbaa !9
  %962 = load i32, ptr %81, align 4, !tbaa !9
  %963 = sub nsw i32 %961, %962
  %964 = add nsw i32 %963, 1
  store i32 %964, ptr %76, align 4, !tbaa !9
  %965 = load ptr, ptr %18, align 8, !tbaa !5
  %966 = load i32, ptr %965, align 4, !tbaa !9
  %967 = load i32, ptr %81, align 4, !tbaa !9
  %968 = sub nsw i32 %966, %967
  %969 = add nsw i32 %968, 1
  store i32 %969, ptr %77, align 4, !tbaa !9
  %970 = load ptr, ptr %21, align 8, !tbaa !5
  %971 = load i32, ptr %76, align 4, !tbaa !9
  %972 = load i32, ptr %76, align 4, !tbaa !9
  %973 = load i32, ptr %31, align 4, !tbaa !9
  %974 = mul nsw i32 %972, %973
  %975 = add nsw i32 %971, %974
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds %struct.complex, ptr %970, i64 %976
  %978 = load ptr, ptr %22, align 8, !tbaa !5
  %979 = load ptr, ptr %21, align 8, !tbaa !5
  %980 = load i32, ptr %77, align 4, !tbaa !9
  %981 = load i32, ptr %31, align 4, !tbaa !9
  %982 = add nsw i32 %980, %981
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds %struct.complex, ptr %979, i64 %983
  %985 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.1, ptr noundef %81, ptr noundef %81, ptr noundef %977, ptr noundef %978, ptr noundef %984, ptr noundef %985)
  %986 = load ptr, ptr %21, align 8, !tbaa !5
  %987 = load i32, ptr %77, align 4, !tbaa !9
  %988 = load i32, ptr %31, align 4, !tbaa !9
  %989 = add nsw i32 %987, %988
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds %struct.complex, ptr %986, i64 %990
  %992 = load ptr, ptr %22, align 8, !tbaa !5
  %993 = load ptr, ptr %23, align 8, !tbaa !5
  %994 = load i32, ptr %76, align 4, !tbaa !9
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds %struct.complex, ptr %993, i64 %995
  %997 = getelementptr inbounds [1 x %struct.complex], ptr %59, i64 0, i64 0
  call void @clahqr_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %81, ptr noundef @c__1, ptr noundef %81, ptr noundef %991, ptr noundef %992, ptr noundef %996, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %997, ptr noundef @c__1, ptr noundef %90)
  %998 = load i32, ptr %90, align 4, !tbaa !9
  %999 = load i32, ptr %76, align 4, !tbaa !9
  %1000 = add nsw i32 %999, %998
  store i32 %1000, ptr %76, align 4, !tbaa !9
  %1001 = load i32, ptr %76, align 4, !tbaa !9
  %1002 = load i32, ptr %55, align 4, !tbaa !9
  %1003 = icmp sge i32 %1001, %1002
  br i1 %1003, label %1004, label %1529

1004:                                             ; preds = %960
  %1005 = load i32, ptr %55, align 4, !tbaa !9
  %1006 = sub nsw i32 %1005, 1
  %1007 = load i32, ptr %55, align 4, !tbaa !9
  %1008 = sub nsw i32 %1007, 1
  %1009 = load i32, ptr %31, align 4, !tbaa !9
  %1010 = mul nsw i32 %1008, %1009
  %1011 = add nsw i32 %1006, %1010
  store i32 %1011, ptr %36, align 4, !tbaa !9
  %1012 = load i32, ptr %55, align 4, !tbaa !9
  %1013 = load i32, ptr %55, align 4, !tbaa !9
  %1014 = sub nsw i32 %1013, 1
  %1015 = load i32, ptr %31, align 4, !tbaa !9
  %1016 = mul nsw i32 %1014, %1015
  %1017 = add nsw i32 %1012, %1016
  store i32 %1017, ptr %37, align 4, !tbaa !9
  %1018 = load i32, ptr %55, align 4, !tbaa !9
  %1019 = sub nsw i32 %1018, 1
  %1020 = load i32, ptr %55, align 4, !tbaa !9
  %1021 = load i32, ptr %31, align 4, !tbaa !9
  %1022 = mul nsw i32 %1020, %1021
  %1023 = add nsw i32 %1019, %1022
  store i32 %1023, ptr %38, align 4, !tbaa !9
  %1024 = load i32, ptr %55, align 4, !tbaa !9
  %1025 = load i32, ptr %55, align 4, !tbaa !9
  %1026 = load i32, ptr %31, align 4, !tbaa !9
  %1027 = mul nsw i32 %1025, %1026
  %1028 = add nsw i32 %1024, %1027
  store i32 %1028, ptr %39, align 4, !tbaa !9
  %1029 = load ptr, ptr %21, align 8, !tbaa !5
  %1030 = load i32, ptr %36, align 4, !tbaa !9
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds %struct.complex, ptr %1029, i64 %1031
  %1033 = getelementptr inbounds %struct.complex, ptr %1032, i32 0, i32 0
  %1034 = load float, ptr %1033, align 4, !tbaa !11
  store float %1034, ptr %40, align 4, !tbaa !16
  %1035 = load float, ptr %40, align 4, !tbaa !16
  %1036 = fcmp oge float %1035, 0.000000e+00
  br i1 %1036, label %1037, label %1039

1037:                                             ; preds = %1004
  %1038 = load float, ptr %40, align 4, !tbaa !16
  br label %1042

1039:                                             ; preds = %1004
  %1040 = load float, ptr %40, align 4, !tbaa !16
  %1041 = fneg float %1040
  br label %1042

1042:                                             ; preds = %1039, %1037
  %1043 = phi float [ %1038, %1037 ], [ %1041, %1039 ]
  %1044 = load ptr, ptr %21, align 8, !tbaa !5
  %1045 = load i32, ptr %55, align 4, !tbaa !9
  %1046 = sub nsw i32 %1045, 1
  %1047 = load i32, ptr %55, align 4, !tbaa !9
  %1048 = sub nsw i32 %1047, 1
  %1049 = load i32, ptr %31, align 4, !tbaa !9
  %1050 = mul nsw i32 %1048, %1049
  %1051 = add nsw i32 %1046, %1050
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds %struct.complex, ptr %1044, i64 %1052
  %1054 = call <2 x float> @Cf(ptr noundef %1053)
  store <2 x float> %1054, ptr %102, align 4
  %1055 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 0
  %1056 = load float, ptr %1055, align 4
  %1057 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 1
  %1058 = load float, ptr %1057, align 4
  store float %1058, ptr %41, align 4, !tbaa !16
  %1059 = load float, ptr %41, align 4, !tbaa !16
  %1060 = fcmp oge float %1059, 0.000000e+00
  br i1 %1060, label %1061, label %1063

1061:                                             ; preds = %1042
  %1062 = load float, ptr %41, align 4, !tbaa !16
  br label %1066

1063:                                             ; preds = %1042
  %1064 = load float, ptr %41, align 4, !tbaa !16
  %1065 = fneg float %1064
  br label %1066

1066:                                             ; preds = %1063, %1061
  %1067 = phi float [ %1062, %1061 ], [ %1065, %1063 ]
  %1068 = fadd float %1043, %1067
  %1069 = load ptr, ptr %21, align 8, !tbaa !5
  %1070 = load i32, ptr %37, align 4, !tbaa !9
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds %struct.complex, ptr %1069, i64 %1071
  %1073 = getelementptr inbounds %struct.complex, ptr %1072, i32 0, i32 0
  %1074 = load float, ptr %1073, align 4, !tbaa !11
  store float %1074, ptr %42, align 4, !tbaa !16
  %1075 = load float, ptr %42, align 4, !tbaa !16
  %1076 = fcmp oge float %1075, 0.000000e+00
  br i1 %1076, label %1077, label %1079

1077:                                             ; preds = %1066
  %1078 = load float, ptr %42, align 4, !tbaa !16
  br label %1082

1079:                                             ; preds = %1066
  %1080 = load float, ptr %42, align 4, !tbaa !16
  %1081 = fneg float %1080
  br label %1082

1082:                                             ; preds = %1079, %1077
  %1083 = phi float [ %1078, %1077 ], [ %1081, %1079 ]
  %1084 = load ptr, ptr %21, align 8, !tbaa !5
  %1085 = load i32, ptr %55, align 4, !tbaa !9
  %1086 = load i32, ptr %55, align 4, !tbaa !9
  %1087 = sub nsw i32 %1086, 1
  %1088 = load i32, ptr %31, align 4, !tbaa !9
  %1089 = mul nsw i32 %1087, %1088
  %1090 = add nsw i32 %1085, %1089
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds %struct.complex, ptr %1084, i64 %1091
  %1093 = call <2 x float> @Cf(ptr noundef %1092)
  store <2 x float> %1093, ptr %103, align 4
  %1094 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 0
  %1095 = load float, ptr %1094, align 4
  %1096 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 1
  %1097 = load float, ptr %1096, align 4
  store float %1097, ptr %43, align 4, !tbaa !16
  %1098 = load float, ptr %43, align 4, !tbaa !16
  %1099 = fcmp oge float %1098, 0.000000e+00
  br i1 %1099, label %1100, label %1102

1100:                                             ; preds = %1082
  %1101 = load float, ptr %43, align 4, !tbaa !16
  br label %1105

1102:                                             ; preds = %1082
  %1103 = load float, ptr %43, align 4, !tbaa !16
  %1104 = fneg float %1103
  br label %1105

1105:                                             ; preds = %1102, %1100
  %1106 = phi float [ %1101, %1100 ], [ %1104, %1102 ]
  %1107 = fadd float %1083, %1106
  %1108 = fadd float %1068, %1107
  %1109 = load ptr, ptr %21, align 8, !tbaa !5
  %1110 = load i32, ptr %38, align 4, !tbaa !9
  %1111 = sext i32 %1110 to i64
  %1112 = getelementptr inbounds %struct.complex, ptr %1109, i64 %1111
  %1113 = getelementptr inbounds %struct.complex, ptr %1112, i32 0, i32 0
  %1114 = load float, ptr %1113, align 4, !tbaa !11
  store float %1114, ptr %44, align 4, !tbaa !16
  %1115 = load float, ptr %44, align 4, !tbaa !16
  %1116 = fcmp oge float %1115, 0.000000e+00
  br i1 %1116, label %1117, label %1119

1117:                                             ; preds = %1105
  %1118 = load float, ptr %44, align 4, !tbaa !16
  br label %1122

1119:                                             ; preds = %1105
  %1120 = load float, ptr %44, align 4, !tbaa !16
  %1121 = fneg float %1120
  br label %1122

1122:                                             ; preds = %1119, %1117
  %1123 = phi float [ %1118, %1117 ], [ %1121, %1119 ]
  %1124 = load ptr, ptr %21, align 8, !tbaa !5
  %1125 = load i32, ptr %55, align 4, !tbaa !9
  %1126 = sub nsw i32 %1125, 1
  %1127 = load i32, ptr %55, align 4, !tbaa !9
  %1128 = load i32, ptr %31, align 4, !tbaa !9
  %1129 = mul nsw i32 %1127, %1128
  %1130 = add nsw i32 %1126, %1129
  %1131 = sext i32 %1130 to i64
  %1132 = getelementptr inbounds %struct.complex, ptr %1124, i64 %1131
  %1133 = call <2 x float> @Cf(ptr noundef %1132)
  store <2 x float> %1133, ptr %104, align 4
  %1134 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 0
  %1135 = load float, ptr %1134, align 4
  %1136 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 1
  %1137 = load float, ptr %1136, align 4
  store float %1137, ptr %45, align 4, !tbaa !16
  %1138 = load float, ptr %45, align 4, !tbaa !16
  %1139 = fcmp oge float %1138, 0.000000e+00
  br i1 %1139, label %1140, label %1142

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

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

1145:                                             ; preds = %1142, %1140
  %1146 = phi float [ %1141, %1140 ], [ %1144, %1142 ]
  %1147 = fadd float %1123, %1146
  %1148 = fadd float %1108, %1147
  %1149 = load ptr, ptr %21, align 8, !tbaa !5
  %1150 = load i32, ptr %39, align 4, !tbaa !9
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr inbounds %struct.complex, ptr %1149, i64 %1151
  %1153 = getelementptr inbounds %struct.complex, ptr %1152, i32 0, i32 0
  %1154 = load float, ptr %1153, align 4, !tbaa !11
  store float %1154, ptr %46, align 4, !tbaa !16
  %1155 = load float, ptr %46, align 4, !tbaa !16
  %1156 = fcmp oge float %1155, 0.000000e+00
  br i1 %1156, label %1157, label %1159

1157:                                             ; preds = %1145
  %1158 = load float, ptr %46, align 4, !tbaa !16
  br label %1162

1159:                                             ; preds = %1145
  %1160 = load float, ptr %46, align 4, !tbaa !16
  %1161 = fneg float %1160
  br label %1162

1162:                                             ; preds = %1159, %1157
  %1163 = phi float [ %1158, %1157 ], [ %1161, %1159 ]
  %1164 = load ptr, ptr %21, align 8, !tbaa !5
  %1165 = load i32, ptr %55, align 4, !tbaa !9
  %1166 = load i32, ptr %55, align 4, !tbaa !9
  %1167 = load i32, ptr %31, align 4, !tbaa !9
  %1168 = mul nsw i32 %1166, %1167
  %1169 = add nsw i32 %1165, %1168
  %1170 = sext i32 %1169 to i64
  %1171 = getelementptr inbounds %struct.complex, ptr %1164, i64 %1170
  %1172 = call <2 x float> @Cf(ptr noundef %1171)
  store <2 x float> %1172, ptr %105, align 4
  %1173 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 0
  %1174 = load float, ptr %1173, align 4
  %1175 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 1
  %1176 = load float, ptr %1175, align 4
  store float %1176, ptr %47, align 4, !tbaa !16
  %1177 = load float, ptr %47, align 4, !tbaa !16
  %1178 = fcmp oge float %1177, 0.000000e+00
  br i1 %1178, label %1179, label %1181

1179:                                             ; preds = %1162
  %1180 = load float, ptr %47, align 4, !tbaa !16
  br label %1184

1181:                                             ; preds = %1162
  %1182 = load float, ptr %47, align 4, !tbaa !16
  %1183 = fneg float %1182
  br label %1184

1184:                                             ; preds = %1181, %1179
  %1185 = phi float [ %1180, %1179 ], [ %1183, %1181 ]
  %1186 = fadd float %1163, %1185
  %1187 = fadd float %1148, %1186
  store float %1187, ptr %63, align 4, !tbaa !16
  %1188 = load i32, ptr %55, align 4, !tbaa !9
  %1189 = sub nsw i32 %1188, 1
  %1190 = load i32, ptr %55, align 4, !tbaa !9
  %1191 = sub nsw i32 %1190, 1
  %1192 = load i32, ptr %31, align 4, !tbaa !9
  %1193 = mul nsw i32 %1191, %1192
  %1194 = add nsw i32 %1189, %1193
  store i32 %1194, ptr %36, align 4, !tbaa !9
  %1195 = load ptr, ptr %21, align 8, !tbaa !5
  %1196 = load i32, ptr %36, align 4, !tbaa !9
  %1197 = sext i32 %1196 to i64
  %1198 = getelementptr inbounds %struct.complex, ptr %1195, i64 %1197
  %1199 = getelementptr inbounds %struct.complex, ptr %1198, i32 0, i32 0
  %1200 = load float, ptr %1199, align 4, !tbaa !11
  %1201 = load float, ptr %63, align 4, !tbaa !16
  %1202 = fdiv float %1200, %1201
  %1203 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1202, ptr %1203, align 4, !tbaa !11
  %1204 = load ptr, ptr %21, align 8, !tbaa !5
  %1205 = load i32, ptr %36, align 4, !tbaa !9
  %1206 = sext i32 %1205 to i64
  %1207 = getelementptr inbounds %struct.complex, ptr %1204, i64 %1206
  %1208 = getelementptr inbounds %struct.complex, ptr %1207, i32 0, i32 1
  %1209 = load float, ptr %1208, align 4, !tbaa !14
  %1210 = load float, ptr %63, align 4, !tbaa !16
  %1211 = fdiv float %1209, %1210
  %1212 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1211, ptr %1212, align 4, !tbaa !14
  %1213 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1214 = load float, ptr %1213, align 4, !tbaa !11
  %1215 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 0
  store float %1214, ptr %1215, align 4, !tbaa !11
  %1216 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1217 = load float, ptr %1216, align 4, !tbaa !14
  %1218 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 1
  store float %1217, ptr %1218, align 4, !tbaa !14
  %1219 = load i32, ptr %55, align 4, !tbaa !9
  %1220 = load i32, ptr %55, align 4, !tbaa !9
  %1221 = sub nsw i32 %1220, 1
  %1222 = load i32, ptr %31, align 4, !tbaa !9
  %1223 = mul nsw i32 %1221, %1222
  %1224 = add nsw i32 %1219, %1223
  store i32 %1224, ptr %36, align 4, !tbaa !9
  %1225 = load ptr, ptr %21, align 8, !tbaa !5
  %1226 = load i32, ptr %36, align 4, !tbaa !9
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds %struct.complex, ptr %1225, i64 %1227
  %1229 = getelementptr inbounds %struct.complex, ptr %1228, i32 0, i32 0
  %1230 = load float, ptr %1229, align 4, !tbaa !11
  %1231 = load float, ptr %63, align 4, !tbaa !16
  %1232 = fdiv float %1230, %1231
  %1233 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1232, ptr %1233, align 4, !tbaa !11
  %1234 = load ptr, ptr %21, align 8, !tbaa !5
  %1235 = load i32, ptr %36, align 4, !tbaa !9
  %1236 = sext i32 %1235 to i64
  %1237 = getelementptr inbounds %struct.complex, ptr %1234, i64 %1236
  %1238 = getelementptr inbounds %struct.complex, ptr %1237, i32 0, i32 1
  %1239 = load float, ptr %1238, align 4, !tbaa !14
  %1240 = load float, ptr %63, align 4, !tbaa !16
  %1241 = fdiv float %1239, %1240
  %1242 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1241, ptr %1242, align 4, !tbaa !14
  %1243 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1244 = load float, ptr %1243, align 4, !tbaa !11
  %1245 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  store float %1244, ptr %1245, align 4, !tbaa !11
  %1246 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1247 = load float, ptr %1246, align 4, !tbaa !14
  %1248 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  store float %1247, ptr %1248, align 4, !tbaa !14
  %1249 = load i32, ptr %55, align 4, !tbaa !9
  %1250 = sub nsw i32 %1249, 1
  %1251 = load i32, ptr %55, align 4, !tbaa !9
  %1252 = load i32, ptr %31, align 4, !tbaa !9
  %1253 = mul nsw i32 %1251, %1252
  %1254 = add nsw i32 %1250, %1253
  store i32 %1254, ptr %36, align 4, !tbaa !9
  %1255 = load ptr, ptr %21, align 8, !tbaa !5
  %1256 = load i32, ptr %36, align 4, !tbaa !9
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds %struct.complex, ptr %1255, i64 %1257
  %1259 = getelementptr inbounds %struct.complex, ptr %1258, i32 0, i32 0
  %1260 = load float, ptr %1259, align 4, !tbaa !11
  %1261 = load float, ptr %63, align 4, !tbaa !16
  %1262 = fdiv float %1260, %1261
  %1263 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1262, ptr %1263, align 4, !tbaa !11
  %1264 = load ptr, ptr %21, align 8, !tbaa !5
  %1265 = load i32, ptr %36, align 4, !tbaa !9
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds %struct.complex, ptr %1264, i64 %1266
  %1268 = getelementptr inbounds %struct.complex, ptr %1267, i32 0, i32 1
  %1269 = load float, ptr %1268, align 4, !tbaa !14
  %1270 = load float, ptr %63, align 4, !tbaa !16
  %1271 = fdiv float %1269, %1270
  %1272 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1271, ptr %1272, align 4, !tbaa !14
  %1273 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1274 = load float, ptr %1273, align 4, !tbaa !11
  %1275 = getelementptr inbounds %struct.complex, ptr %69, i32 0, i32 0
  store float %1274, ptr %1275, align 4, !tbaa !11
  %1276 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1277 = load float, ptr %1276, align 4, !tbaa !14
  %1278 = getelementptr inbounds %struct.complex, ptr %69, i32 0, i32 1
  store float %1277, ptr %1278, align 4, !tbaa !14
  %1279 = load i32, ptr %55, align 4, !tbaa !9
  %1280 = load i32, ptr %55, align 4, !tbaa !9
  %1281 = load i32, ptr %31, align 4, !tbaa !9
  %1282 = mul nsw i32 %1280, %1281
  %1283 = add nsw i32 %1279, %1282
  store i32 %1283, ptr %36, align 4, !tbaa !9
  %1284 = load ptr, ptr %21, align 8, !tbaa !5
  %1285 = load i32, ptr %36, align 4, !tbaa !9
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds %struct.complex, ptr %1284, i64 %1286
  %1288 = getelementptr inbounds %struct.complex, ptr %1287, i32 0, i32 0
  %1289 = load float, ptr %1288, align 4, !tbaa !11
  %1290 = load float, ptr %63, align 4, !tbaa !16
  %1291 = fdiv float %1289, %1290
  %1292 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1291, ptr %1292, align 4, !tbaa !11
  %1293 = load ptr, ptr %21, align 8, !tbaa !5
  %1294 = load i32, ptr %36, align 4, !tbaa !9
  %1295 = sext i32 %1294 to i64
  %1296 = getelementptr inbounds %struct.complex, ptr %1293, i64 %1295
  %1297 = getelementptr inbounds %struct.complex, ptr %1296, i32 0, i32 1
  %1298 = load float, ptr %1297, align 4, !tbaa !14
  %1299 = load float, ptr %63, align 4, !tbaa !16
  %1300 = fdiv float %1298, %1299
  %1301 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1300, ptr %1301, align 4, !tbaa !14
  %1302 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1303 = load float, ptr %1302, align 4, !tbaa !11
  %1304 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %1303, ptr %1304, align 4, !tbaa !11
  %1305 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1306 = load float, ptr %1305, align 4, !tbaa !14
  %1307 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %1306, ptr %1307, align 4, !tbaa !14
  %1308 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 0
  %1309 = load float, ptr %1308, align 4, !tbaa !11
  %1310 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1311 = load float, ptr %1310, align 4, !tbaa !11
  %1312 = fadd float %1309, %1311
  %1313 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1312, ptr %1313, align 4, !tbaa !11
  %1314 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 1
  %1315 = load float, ptr %1314, align 4, !tbaa !14
  %1316 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1317 = load float, ptr %1316, align 4, !tbaa !14
  %1318 = fadd float %1315, %1317
  %1319 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1318, ptr %1319, align 4, !tbaa !14
  %1320 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1321 = load float, ptr %1320, align 4, !tbaa !11
  %1322 = fdiv float %1321, 2.000000e+00
  %1323 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1322, ptr %1323, align 4, !tbaa !11
  %1324 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1325 = load float, ptr %1324, align 4, !tbaa !14
  %1326 = fdiv float %1325, 2.000000e+00
  %1327 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1326, ptr %1327, align 4, !tbaa !14
  %1328 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1329 = load float, ptr %1328, align 4, !tbaa !11
  %1330 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  store float %1329, ptr %1330, align 4, !tbaa !11
  %1331 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1332 = load float, ptr %1331, align 4, !tbaa !14
  %1333 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  store float %1332, ptr %1333, align 4, !tbaa !14
  %1334 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 0
  %1335 = load float, ptr %1334, align 4, !tbaa !11
  %1336 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %1337 = load float, ptr %1336, align 4, !tbaa !11
  %1338 = fsub float %1335, %1337
  %1339 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1338, ptr %1339, align 4, !tbaa !11
  %1340 = getelementptr inbounds %struct.complex, ptr %68, i32 0, i32 1
  %1341 = load float, ptr %1340, align 4, !tbaa !14
  %1342 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %1343 = load float, ptr %1342, align 4, !tbaa !14
  %1344 = fsub float %1341, %1343
  %1345 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1344, ptr %1345, align 4, !tbaa !14
  %1346 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1347 = load float, ptr %1346, align 4, !tbaa !11
  %1348 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %1349 = load float, ptr %1348, align 4, !tbaa !11
  %1350 = fsub float %1347, %1349
  %1351 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1350, ptr %1351, align 4, !tbaa !11
  %1352 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1353 = load float, ptr %1352, align 4, !tbaa !14
  %1354 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %1355 = load float, ptr %1354, align 4, !tbaa !14
  %1356 = fsub float %1353, %1355
  %1357 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1356, ptr %1357, align 4, !tbaa !14
  %1358 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1359 = load float, ptr %1358, align 4, !tbaa !11
  %1360 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1361 = load float, ptr %1360, align 4, !tbaa !11
  %1362 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1363 = load float, ptr %1362, align 4, !tbaa !14
  %1364 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1365 = load float, ptr %1364, align 4, !tbaa !14
  %1366 = fmul float %1363, %1365
  %1367 = fneg float %1366
  %1368 = call float @llvm.fmuladd.f32(float %1359, float %1361, float %1367)
  %1369 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1368, ptr %1369, align 4, !tbaa !11
  %1370 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1371 = load float, ptr %1370, align 4, !tbaa !11
  %1372 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1373 = load float, ptr %1372, align 4, !tbaa !14
  %1374 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1375 = load float, ptr %1374, align 4, !tbaa !14
  %1376 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1377 = load float, ptr %1376, align 4, !tbaa !11
  %1378 = fmul float %1375, %1377
  %1379 = call float @llvm.fmuladd.f32(float %1371, float %1373, float %1378)
  %1380 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1379, ptr %1380, align 4, !tbaa !14
  %1381 = getelementptr inbounds %struct.complex, ptr %69, i32 0, i32 0
  %1382 = load float, ptr %1381, align 4, !tbaa !11
  %1383 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %1384 = load float, ptr %1383, align 4, !tbaa !11
  %1385 = getelementptr inbounds %struct.complex, ptr %69, i32 0, i32 1
  %1386 = load float, ptr %1385, align 4, !tbaa !14
  %1387 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %1388 = load float, ptr %1387, align 4, !tbaa !14
  %1389 = fmul float %1386, %1388
  %1390 = fneg float %1389
  %1391 = call float @llvm.fmuladd.f32(float %1382, float %1384, float %1390)
  %1392 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1391, ptr %1392, align 4, !tbaa !11
  %1393 = getelementptr inbounds %struct.complex, ptr %69, i32 0, i32 0
  %1394 = load float, ptr %1393, align 4, !tbaa !11
  %1395 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %1396 = load float, ptr %1395, align 4, !tbaa !14
  %1397 = getelementptr inbounds %struct.complex, ptr %69, i32 0, i32 1
  %1398 = load float, ptr %1397, align 4, !tbaa !14
  %1399 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %1400 = load float, ptr %1399, align 4, !tbaa !11
  %1401 = fmul float %1398, %1400
  %1402 = call float @llvm.fmuladd.f32(float %1394, float %1396, float %1401)
  %1403 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1402, ptr %1403, align 4, !tbaa !14
  %1404 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1405 = load float, ptr %1404, align 4, !tbaa !11
  %1406 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1407 = load float, ptr %1406, align 4, !tbaa !11
  %1408 = fsub float %1405, %1407
  %1409 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1408, ptr %1409, align 4, !tbaa !11
  %1410 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1411 = load float, ptr %1410, align 4, !tbaa !14
  %1412 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1413 = load float, ptr %1412, align 4, !tbaa !14
  %1414 = fsub float %1411, %1413
  %1415 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1414, ptr %1415, align 4, !tbaa !14
  %1416 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1417 = load float, ptr %1416, align 4, !tbaa !11
  %1418 = getelementptr inbounds %struct.complex, ptr %89, i32 0, i32 0
  store float %1417, ptr %1418, align 4, !tbaa !11
  %1419 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1420 = load float, ptr %1419, align 4, !tbaa !14
  %1421 = getelementptr inbounds %struct.complex, ptr %89, i32 0, i32 1
  store float %1420, ptr %1421, align 4, !tbaa !14
  %1422 = getelementptr inbounds %struct.complex, ptr %89, i32 0, i32 0
  %1423 = load float, ptr %1422, align 4, !tbaa !11
  %1424 = fneg float %1423
  %1425 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1424, ptr %1425, align 4, !tbaa !11
  %1426 = getelementptr inbounds %struct.complex, ptr %89, i32 0, i32 1
  %1427 = load float, ptr %1426, align 4, !tbaa !14
  %1428 = fneg float %1427
  %1429 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1428, ptr %1429, align 4, !tbaa !14
  %1430 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %1430, ptr %106, align 4
  %1431 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 0
  %1432 = load float, ptr %1431, align 4
  %1433 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 1
  %1434 = load float, ptr %1433, align 4
  %1435 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 0
  %1436 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 1
  store float %1432, ptr %1435, align 4
  store float %1434, ptr %1436, align 4
  %1437 = load <2 x float>, ptr %107, align 4
  %1438 = call <2 x float> @csqrtf(<2 x float> noundef %1437) #7
  store <2 x float> %1438, ptr %108, align 4
  %1439 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 0
  %1440 = load float, ptr %1439, align 4
  %1441 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 1
  %1442 = load float, ptr %1441, align 4
  %1443 = call ptr @_pCf(ptr noundef %48)
  %1444 = getelementptr inbounds { float, float }, ptr %1443, i32 0, i32 0
  %1445 = getelementptr inbounds { float, float }, ptr %1443, i32 0, i32 1
  store float %1440, ptr %1444, align 4
  store float %1442, ptr %1445, align 4
  %1446 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1447 = load float, ptr %1446, align 4, !tbaa !11
  %1448 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %1447, ptr %1448, align 4, !tbaa !11
  %1449 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1450 = load float, ptr %1449, align 4, !tbaa !14
  %1451 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %1450, ptr %1451, align 4, !tbaa !14
  %1452 = load i32, ptr %55, align 4, !tbaa !9
  %1453 = sub nsw i32 %1452, 1
  store i32 %1453, ptr %36, align 4, !tbaa !9
  %1454 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %1455 = load float, ptr %1454, align 4, !tbaa !11
  %1456 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %1457 = load float, ptr %1456, align 4, !tbaa !11
  %1458 = fadd float %1455, %1457
  %1459 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1458, ptr %1459, align 4, !tbaa !11
  %1460 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %1461 = load float, ptr %1460, align 4, !tbaa !14
  %1462 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  %1463 = load float, ptr %1462, align 4, !tbaa !14
  %1464 = fadd float %1461, %1463
  %1465 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1464, ptr %1465, align 4, !tbaa !14
  %1466 = load float, ptr %63, align 4, !tbaa !16
  %1467 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1468 = load float, ptr %1467, align 4, !tbaa !11
  %1469 = fmul float %1466, %1468
  %1470 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1469, ptr %1470, align 4, !tbaa !11
  %1471 = load float, ptr %63, align 4, !tbaa !16
  %1472 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1473 = load float, ptr %1472, align 4, !tbaa !14
  %1474 = fmul float %1471, %1473
  %1475 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1474, ptr %1475, align 4, !tbaa !14
  %1476 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1477 = load float, ptr %1476, align 4, !tbaa !11
  %1478 = load ptr, ptr %23, align 8, !tbaa !5
  %1479 = load i32, ptr %36, align 4, !tbaa !9
  %1480 = sext i32 %1479 to i64
  %1481 = getelementptr inbounds %struct.complex, ptr %1478, i64 %1480
  %1482 = getelementptr inbounds %struct.complex, ptr %1481, i32 0, i32 0
  store float %1477, ptr %1482, align 4, !tbaa !11
  %1483 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1484 = load float, ptr %1483, align 4, !tbaa !14
  %1485 = load ptr, ptr %23, align 8, !tbaa !5
  %1486 = load i32, ptr %36, align 4, !tbaa !9
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds %struct.complex, ptr %1485, i64 %1487
  %1489 = getelementptr inbounds %struct.complex, ptr %1488, i32 0, i32 1
  store float %1484, ptr %1489, align 4, !tbaa !14
  %1490 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1490, ptr %36, align 4, !tbaa !9
  %1491 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %1492 = load float, ptr %1491, align 4, !tbaa !11
  %1493 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %1494 = load float, ptr %1493, align 4, !tbaa !11
  %1495 = fsub float %1492, %1494
  %1496 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1495, ptr %1496, align 4, !tbaa !11
  %1497 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %1498 = load float, ptr %1497, align 4, !tbaa !14
  %1499 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  %1500 = load float, ptr %1499, align 4, !tbaa !14
  %1501 = fsub float %1498, %1500
  %1502 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1501, ptr %1502, align 4, !tbaa !14
  %1503 = load float, ptr %63, align 4, !tbaa !16
  %1504 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1505 = load float, ptr %1504, align 4, !tbaa !11
  %1506 = fmul float %1503, %1505
  %1507 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1506, ptr %1507, align 4, !tbaa !11
  %1508 = load float, ptr %63, align 4, !tbaa !16
  %1509 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1510 = load float, ptr %1509, align 4, !tbaa !14
  %1511 = fmul float %1508, %1510
  %1512 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1511, ptr %1512, align 4, !tbaa !14
  %1513 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1514 = load float, ptr %1513, align 4, !tbaa !11
  %1515 = load ptr, ptr %23, align 8, !tbaa !5
  %1516 = load i32, ptr %36, align 4, !tbaa !9
  %1517 = sext i32 %1516 to i64
  %1518 = getelementptr inbounds %struct.complex, ptr %1515, i64 %1517
  %1519 = getelementptr inbounds %struct.complex, ptr %1518, i32 0, i32 0
  store float %1514, ptr %1519, align 4, !tbaa !11
  %1520 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1521 = load float, ptr %1520, align 4, !tbaa !14
  %1522 = load ptr, ptr %23, align 8, !tbaa !5
  %1523 = load i32, ptr %36, align 4, !tbaa !9
  %1524 = sext i32 %1523 to i64
  %1525 = getelementptr inbounds %struct.complex, ptr %1522, i64 %1524
  %1526 = getelementptr inbounds %struct.complex, ptr %1525, i32 0, i32 1
  store float %1521, ptr %1526, align 4, !tbaa !14
  %1527 = load i32, ptr %55, align 4, !tbaa !9
  %1528 = sub nsw i32 %1527, 1
  store i32 %1528, ptr %76, align 4, !tbaa !9
  br label %1529

1529:                                             ; preds = %1184, %960
  br label %1530

1530:                                             ; preds = %1529, %952
  %1531 = load i32, ptr %55, align 4, !tbaa !9
  %1532 = load i32, ptr %76, align 4, !tbaa !9
  %1533 = sub nsw i32 %1531, %1532
  %1534 = add nsw i32 %1533, 1
  %1535 = load i32, ptr %81, align 4, !tbaa !9
  %1536 = icmp sgt i32 %1534, %1535
  br i1 %1536, label %1537, label %1698

1537:                                             ; preds = %1530
  store i32 0, ptr %86, align 4, !tbaa !9
  %1538 = load i32, ptr %76, align 4, !tbaa !9
  %1539 = add nsw i32 %1538, 1
  store i32 %1539, ptr %36, align 4, !tbaa !9
  %1540 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1540, ptr %62, align 4, !tbaa !9
  br label %1541

1541:                                             ; preds = %1693, %1537
  %1542 = load i32, ptr %62, align 4, !tbaa !9
  %1543 = load i32, ptr %36, align 4, !tbaa !9
  %1544 = icmp sge i32 %1542, %1543
  br i1 %1544, label %1545, label %1696

1545:                                             ; preds = %1541
  %1546 = load i32, ptr %86, align 4, !tbaa !9
  %1547 = icmp ne i32 %1546, 0
  br i1 %1547, label %1548, label %1549

1548:                                             ; preds = %1545
  br label %1697

1549:                                             ; preds = %1545
  store i32 1, ptr %86, align 4, !tbaa !9
  %1550 = load i32, ptr %62, align 4, !tbaa !9
  %1551 = sub nsw i32 %1550, 1
  store i32 %1551, ptr %37, align 4, !tbaa !9
  %1552 = load i32, ptr %76, align 4, !tbaa !9
  store i32 %1552, ptr %61, align 4, !tbaa !9
  br label %1553

1553:                                             ; preds = %1689, %1549
  %1554 = load i32, ptr %61, align 4, !tbaa !9
  %1555 = load i32, ptr %37, align 4, !tbaa !9
  %1556 = icmp sle i32 %1554, %1555
  br i1 %1556, label %1557, label %1692

1557:                                             ; preds = %1553
  %1558 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %1558, ptr %38, align 4, !tbaa !9
  %1559 = load i32, ptr %61, align 4, !tbaa !9
  %1560 = add nsw i32 %1559, 1
  store i32 %1560, ptr %39, align 4, !tbaa !9
  %1561 = load ptr, ptr %23, align 8, !tbaa !5
  %1562 = load i32, ptr %38, align 4, !tbaa !9
  %1563 = sext i32 %1562 to i64
  %1564 = getelementptr inbounds %struct.complex, ptr %1561, i64 %1563
  %1565 = getelementptr inbounds %struct.complex, ptr %1564, i32 0, i32 0
  %1566 = load float, ptr %1565, align 4, !tbaa !11
  store float %1566, ptr %40, align 4, !tbaa !16
  %1567 = load float, ptr %40, align 4, !tbaa !16
  %1568 = fcmp oge float %1567, 0.000000e+00
  br i1 %1568, label %1569, label %1571

1569:                                             ; preds = %1557
  %1570 = load float, ptr %40, align 4, !tbaa !16
  br label %1574

1571:                                             ; preds = %1557
  %1572 = load float, ptr %40, align 4, !tbaa !16
  %1573 = fneg float %1572
  br label %1574

1574:                                             ; preds = %1571, %1569
  %1575 = phi float [ %1570, %1569 ], [ %1573, %1571 ]
  %1576 = load ptr, ptr %23, align 8, !tbaa !5
  %1577 = load i32, ptr %61, align 4, !tbaa !9
  %1578 = sext i32 %1577 to i64
  %1579 = getelementptr inbounds %struct.complex, ptr %1576, i64 %1578
  %1580 = call <2 x float> @Cf(ptr noundef %1579)
  store <2 x float> %1580, ptr %109, align 4
  %1581 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 0
  %1582 = load float, ptr %1581, align 4
  %1583 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 1
  %1584 = load float, ptr %1583, align 4
  store float %1584, ptr %41, align 4, !tbaa !16
  %1585 = load float, ptr %41, align 4, !tbaa !16
  %1586 = fcmp oge float %1585, 0.000000e+00
  br i1 %1586, label %1587, label %1589

1587:                                             ; preds = %1574
  %1588 = load float, ptr %41, align 4, !tbaa !16
  br label %1592

1589:                                             ; preds = %1574
  %1590 = load float, ptr %41, align 4, !tbaa !16
  %1591 = fneg float %1590
  br label %1592

1592:                                             ; preds = %1589, %1587
  %1593 = phi float [ %1588, %1587 ], [ %1591, %1589 ]
  %1594 = fadd float %1575, %1593
  %1595 = load ptr, ptr %23, align 8, !tbaa !5
  %1596 = load i32, ptr %39, align 4, !tbaa !9
  %1597 = sext i32 %1596 to i64
  %1598 = getelementptr inbounds %struct.complex, ptr %1595, i64 %1597
  %1599 = getelementptr inbounds %struct.complex, ptr %1598, i32 0, i32 0
  %1600 = load float, ptr %1599, align 4, !tbaa !11
  store float %1600, ptr %42, align 4, !tbaa !16
  %1601 = load float, ptr %42, align 4, !tbaa !16
  %1602 = fcmp oge float %1601, 0.000000e+00
  br i1 %1602, label %1603, label %1605

1603:                                             ; preds = %1592
  %1604 = load float, ptr %42, align 4, !tbaa !16
  br label %1608

1605:                                             ; preds = %1592
  %1606 = load float, ptr %42, align 4, !tbaa !16
  %1607 = fneg float %1606
  br label %1608

1608:                                             ; preds = %1605, %1603
  %1609 = phi float [ %1604, %1603 ], [ %1607, %1605 ]
  %1610 = load ptr, ptr %23, align 8, !tbaa !5
  %1611 = load i32, ptr %61, align 4, !tbaa !9
  %1612 = add nsw i32 %1611, 1
  %1613 = sext i32 %1612 to i64
  %1614 = getelementptr inbounds %struct.complex, ptr %1610, i64 %1613
  %1615 = call <2 x float> @Cf(ptr noundef %1614)
  store <2 x float> %1615, ptr %110, align 4
  %1616 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 0
  %1617 = load float, ptr %1616, align 4
  %1618 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 1
  %1619 = load float, ptr %1618, align 4
  store float %1619, ptr %43, align 4, !tbaa !16
  %1620 = load float, ptr %43, align 4, !tbaa !16
  %1621 = fcmp oge float %1620, 0.000000e+00
  br i1 %1621, label %1622, label %1624

1622:                                             ; preds = %1608
  %1623 = load float, ptr %43, align 4, !tbaa !16
  br label %1627

1624:                                             ; preds = %1608
  %1625 = load float, ptr %43, align 4, !tbaa !16
  %1626 = fneg float %1625
  br label %1627

1627:                                             ; preds = %1624, %1622
  %1628 = phi float [ %1623, %1622 ], [ %1626, %1624 ]
  %1629 = fadd float %1609, %1628
  %1630 = fcmp olt float %1594, %1629
  br i1 %1630, label %1631, label %1688

1631:                                             ; preds = %1627
  store i32 0, ptr %86, align 4, !tbaa !9
  %1632 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %1632, ptr %38, align 4, !tbaa !9
  %1633 = load ptr, ptr %23, align 8, !tbaa !5
  %1634 = load i32, ptr %38, align 4, !tbaa !9
  %1635 = sext i32 %1634 to i64
  %1636 = getelementptr inbounds %struct.complex, ptr %1633, i64 %1635
  %1637 = getelementptr inbounds %struct.complex, ptr %1636, i32 0, i32 0
  %1638 = load float, ptr %1637, align 4, !tbaa !11
  %1639 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  store float %1638, ptr %1639, align 4, !tbaa !11
  %1640 = load ptr, ptr %23, align 8, !tbaa !5
  %1641 = load i32, ptr %38, align 4, !tbaa !9
  %1642 = sext i32 %1641 to i64
  %1643 = getelementptr inbounds %struct.complex, ptr %1640, i64 %1642
  %1644 = getelementptr inbounds %struct.complex, ptr %1643, i32 0, i32 1
  %1645 = load float, ptr %1644, align 4, !tbaa !14
  %1646 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  store float %1645, ptr %1646, align 4, !tbaa !14
  %1647 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %1647, ptr %38, align 4, !tbaa !9
  %1648 = load i32, ptr %61, align 4, !tbaa !9
  %1649 = add nsw i32 %1648, 1
  store i32 %1649, ptr %39, align 4, !tbaa !9
  %1650 = load ptr, ptr %23, align 8, !tbaa !5
  %1651 = load i32, ptr %39, align 4, !tbaa !9
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds %struct.complex, ptr %1650, i64 %1652
  %1654 = getelementptr inbounds %struct.complex, ptr %1653, i32 0, i32 0
  %1655 = load float, ptr %1654, align 4, !tbaa !11
  %1656 = load ptr, ptr %23, align 8, !tbaa !5
  %1657 = load i32, ptr %38, align 4, !tbaa !9
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds %struct.complex, ptr %1656, i64 %1658
  %1660 = getelementptr inbounds %struct.complex, ptr %1659, i32 0, i32 0
  store float %1655, ptr %1660, align 4, !tbaa !11
  %1661 = load ptr, ptr %23, align 8, !tbaa !5
  %1662 = load i32, ptr %39, align 4, !tbaa !9
  %1663 = sext i32 %1662 to i64
  %1664 = getelementptr inbounds %struct.complex, ptr %1661, 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 %23, align 8, !tbaa !5
  %1668 = load i32, ptr %38, align 4, !tbaa !9
  %1669 = sext i32 %1668 to i64
  %1670 = getelementptr inbounds %struct.complex, ptr %1667, i64 %1669
  %1671 = getelementptr inbounds %struct.complex, ptr %1670, i32 0, i32 1
  store float %1666, ptr %1671, align 4, !tbaa !14
  %1672 = load i32, ptr %61, align 4, !tbaa !9
  %1673 = add nsw i32 %1672, 1
  store i32 %1673, ptr %38, align 4, !tbaa !9
  %1674 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  %1675 = load float, ptr %1674, align 4, !tbaa !11
  %1676 = load ptr, ptr %23, align 8, !tbaa !5
  %1677 = load i32, ptr %38, align 4, !tbaa !9
  %1678 = sext i32 %1677 to i64
  %1679 = getelementptr inbounds %struct.complex, ptr %1676, i64 %1678
  %1680 = getelementptr inbounds %struct.complex, ptr %1679, i32 0, i32 0
  store float %1675, ptr %1680, align 4, !tbaa !11
  %1681 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  %1682 = load float, ptr %1681, align 4, !tbaa !14
  %1683 = load ptr, ptr %23, align 8, !tbaa !5
  %1684 = load i32, ptr %38, align 4, !tbaa !9
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds %struct.complex, ptr %1683, i64 %1685
  %1687 = getelementptr inbounds %struct.complex, ptr %1686, i32 0, i32 1
  store float %1682, ptr %1687, align 4, !tbaa !14
  br label %1688

1688:                                             ; preds = %1631, %1627
  br label %1689

1689:                                             ; preds = %1688
  %1690 = load i32, ptr %61, align 4, !tbaa !9
  %1691 = add nsw i32 %1690, 1
  store i32 %1691, ptr %61, align 4, !tbaa !9
  br label %1553, !llvm.loop !20

1692:                                             ; preds = %1553
  br label %1693

1693:                                             ; preds = %1692
  %1694 = load i32, ptr %62, align 4, !tbaa !9
  %1695 = add nsw i32 %1694, -1
  store i32 %1695, ptr %62, align 4, !tbaa !9
  br label %1541, !llvm.loop !21

1696:                                             ; preds = %1541
  br label %1697

1697:                                             ; preds = %1696, %1548
  br label %1698

1698:                                             ; preds = %1697, %1530
  br label %1699

1699:                                             ; preds = %1698, %951
  %1700 = load i32, ptr %55, align 4, !tbaa !9
  %1701 = load i32, ptr %76, align 4, !tbaa !9
  %1702 = sub nsw i32 %1700, %1701
  %1703 = add nsw i32 %1702, 1
  %1704 = icmp eq i32 %1703, 2
  br i1 %1704, label %1705, label %1893

1705:                                             ; preds = %1699
  %1706 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1706, ptr %36, align 4, !tbaa !9
  %1707 = load i32, ptr %55, align 4, !tbaa !9
  %1708 = load i32, ptr %55, align 4, !tbaa !9
  %1709 = load i32, ptr %31, align 4, !tbaa !9
  %1710 = mul nsw i32 %1708, %1709
  %1711 = add nsw i32 %1707, %1710
  store i32 %1711, ptr %37, align 4, !tbaa !9
  %1712 = load ptr, ptr %23, align 8, !tbaa !5
  %1713 = load i32, ptr %36, align 4, !tbaa !9
  %1714 = sext i32 %1713 to i64
  %1715 = getelementptr inbounds %struct.complex, ptr %1712, i64 %1714
  %1716 = getelementptr inbounds %struct.complex, ptr %1715, i32 0, i32 0
  %1717 = load float, ptr %1716, align 4, !tbaa !11
  %1718 = load ptr, ptr %21, align 8, !tbaa !5
  %1719 = load i32, ptr %37, align 4, !tbaa !9
  %1720 = sext i32 %1719 to i64
  %1721 = getelementptr inbounds %struct.complex, ptr %1718, i64 %1720
  %1722 = getelementptr inbounds %struct.complex, ptr %1721, i32 0, i32 0
  %1723 = load float, ptr %1722, align 4, !tbaa !11
  %1724 = fsub float %1717, %1723
  %1725 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1724, ptr %1725, align 4, !tbaa !11
  %1726 = load ptr, ptr %23, align 8, !tbaa !5
  %1727 = load i32, ptr %36, align 4, !tbaa !9
  %1728 = sext i32 %1727 to i64
  %1729 = getelementptr inbounds %struct.complex, ptr %1726, i64 %1728
  %1730 = getelementptr inbounds %struct.complex, ptr %1729, i32 0, i32 1
  %1731 = load float, ptr %1730, align 4, !tbaa !14
  %1732 = load ptr, ptr %21, align 8, !tbaa !5
  %1733 = load i32, ptr %37, align 4, !tbaa !9
  %1734 = sext i32 %1733 to i64
  %1735 = getelementptr inbounds %struct.complex, ptr %1732, i64 %1734
  %1736 = getelementptr inbounds %struct.complex, ptr %1735, i32 0, i32 1
  %1737 = load float, ptr %1736, align 4, !tbaa !14
  %1738 = fsub float %1731, %1737
  %1739 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1738, ptr %1739, align 4, !tbaa !14
  %1740 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1741 = load float, ptr %1740, align 4, !tbaa !11
  %1742 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1741, ptr %1742, align 4, !tbaa !11
  %1743 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1744 = load float, ptr %1743, align 4, !tbaa !14
  %1745 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1744, ptr %1745, align 4, !tbaa !14
  %1746 = load i32, ptr %55, align 4, !tbaa !9
  %1747 = sub nsw i32 %1746, 1
  store i32 %1747, ptr %38, align 4, !tbaa !9
  %1748 = load i32, ptr %55, align 4, !tbaa !9
  %1749 = load i32, ptr %55, align 4, !tbaa !9
  %1750 = load i32, ptr %31, align 4, !tbaa !9
  %1751 = mul nsw i32 %1749, %1750
  %1752 = add nsw i32 %1748, %1751
  store i32 %1752, ptr %39, align 4, !tbaa !9
  %1753 = load ptr, ptr %23, align 8, !tbaa !5
  %1754 = load i32, ptr %38, align 4, !tbaa !9
  %1755 = sext i32 %1754 to i64
  %1756 = getelementptr inbounds %struct.complex, ptr %1753, i64 %1755
  %1757 = getelementptr inbounds %struct.complex, ptr %1756, i32 0, i32 0
  %1758 = load float, ptr %1757, align 4, !tbaa !11
  %1759 = load ptr, ptr %21, align 8, !tbaa !5
  %1760 = load i32, ptr %39, align 4, !tbaa !9
  %1761 = sext i32 %1760 to i64
  %1762 = getelementptr inbounds %struct.complex, ptr %1759, i64 %1761
  %1763 = getelementptr inbounds %struct.complex, ptr %1762, i32 0, i32 0
  %1764 = load float, ptr %1763, align 4, !tbaa !11
  %1765 = fsub float %1758, %1764
  %1766 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1765, ptr %1766, align 4, !tbaa !11
  %1767 = load ptr, ptr %23, align 8, !tbaa !5
  %1768 = load i32, ptr %38, align 4, !tbaa !9
  %1769 = sext i32 %1768 to i64
  %1770 = getelementptr inbounds %struct.complex, ptr %1767, i64 %1769
  %1771 = getelementptr inbounds %struct.complex, ptr %1770, i32 0, i32 1
  %1772 = load float, ptr %1771, align 4, !tbaa !14
  %1773 = load ptr, ptr %21, align 8, !tbaa !5
  %1774 = load i32, ptr %39, align 4, !tbaa !9
  %1775 = sext i32 %1774 to i64
  %1776 = getelementptr inbounds %struct.complex, ptr %1773, i64 %1775
  %1777 = getelementptr inbounds %struct.complex, ptr %1776, i32 0, i32 1
  %1778 = load float, ptr %1777, align 4, !tbaa !14
  %1779 = fsub float %1772, %1778
  %1780 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1779, ptr %1780, align 4, !tbaa !14
  %1781 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1782 = load float, ptr %1781, align 4, !tbaa !11
  %1783 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1782, ptr %1783, align 4, !tbaa !11
  %1784 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1785 = load float, ptr %1784, align 4, !tbaa !14
  %1786 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1785, ptr %1786, align 4, !tbaa !14
  %1787 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1788 = load float, ptr %1787, align 4, !tbaa !11
  store float %1788, ptr %40, align 4, !tbaa !16
  %1789 = load float, ptr %40, align 4, !tbaa !16
  %1790 = fcmp oge float %1789, 0.000000e+00
  br i1 %1790, label %1791, label %1793

1791:                                             ; preds = %1705
  %1792 = load float, ptr %40, align 4, !tbaa !16
  br label %1796

1793:                                             ; preds = %1705
  %1794 = load float, ptr %40, align 4, !tbaa !16
  %1795 = fneg float %1794
  br label %1796

1796:                                             ; preds = %1793, %1791
  %1797 = phi float [ %1792, %1791 ], [ %1795, %1793 ]
  %1798 = call <2 x float> @Cf(ptr noundef %48)
  store <2 x float> %1798, ptr %111, align 4
  %1799 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 0
  %1800 = load float, ptr %1799, align 4
  %1801 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 1
  %1802 = load float, ptr %1801, align 4
  store float %1802, ptr %41, align 4, !tbaa !16
  %1803 = load float, ptr %41, align 4, !tbaa !16
  %1804 = fcmp oge float %1803, 0.000000e+00
  br i1 %1804, label %1805, label %1807

1805:                                             ; preds = %1796
  %1806 = load float, ptr %41, align 4, !tbaa !16
  br label %1810

1807:                                             ; preds = %1796
  %1808 = load float, ptr %41, align 4, !tbaa !16
  %1809 = fneg float %1808
  br label %1810

1810:                                             ; preds = %1807, %1805
  %1811 = phi float [ %1806, %1805 ], [ %1809, %1807 ]
  %1812 = fadd float %1797, %1811
  %1813 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1814 = load float, ptr %1813, align 4, !tbaa !11
  store float %1814, ptr %42, align 4, !tbaa !16
  %1815 = load float, ptr %42, align 4, !tbaa !16
  %1816 = fcmp oge float %1815, 0.000000e+00
  br i1 %1816, label %1817, label %1819

1817:                                             ; preds = %1810
  %1818 = load float, ptr %42, align 4, !tbaa !16
  br label %1822

1819:                                             ; preds = %1810
  %1820 = load float, ptr %42, align 4, !tbaa !16
  %1821 = fneg float %1820
  br label %1822

1822:                                             ; preds = %1819, %1817
  %1823 = phi float [ %1818, %1817 ], [ %1821, %1819 ]
  %1824 = call <2 x float> @Cf(ptr noundef %50)
  store <2 x float> %1824, ptr %112, align 4
  %1825 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 0
  %1826 = load float, ptr %1825, align 4
  %1827 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 1
  %1828 = load float, ptr %1827, align 4
  store float %1828, ptr %43, align 4, !tbaa !16
  %1829 = load float, ptr %43, align 4, !tbaa !16
  %1830 = fcmp oge float %1829, 0.000000e+00
  br i1 %1830, label %1831, label %1833

1831:                                             ; preds = %1822
  %1832 = load float, ptr %43, align 4, !tbaa !16
  br label %1836

1833:                                             ; preds = %1822
  %1834 = load float, ptr %43, align 4, !tbaa !16
  %1835 = fneg float %1834
  br label %1836

1836:                                             ; preds = %1833, %1831
  %1837 = phi float [ %1832, %1831 ], [ %1835, %1833 ]
  %1838 = fadd float %1823, %1837
  %1839 = fcmp olt float %1812, %1838
  br i1 %1839, label %1840, label %1866

1840:                                             ; preds = %1836
  %1841 = load i32, ptr %55, align 4, !tbaa !9
  %1842 = sub nsw i32 %1841, 1
  store i32 %1842, ptr %36, align 4, !tbaa !9
  %1843 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1843, ptr %37, align 4, !tbaa !9
  %1844 = load ptr, ptr %23, align 8, !tbaa !5
  %1845 = load i32, ptr %37, align 4, !tbaa !9
  %1846 = sext i32 %1845 to i64
  %1847 = getelementptr inbounds %struct.complex, ptr %1844, i64 %1846
  %1848 = getelementptr inbounds %struct.complex, ptr %1847, i32 0, i32 0
  %1849 = load float, ptr %1848, align 4, !tbaa !11
  %1850 = load ptr, ptr %23, align 8, !tbaa !5
  %1851 = load i32, ptr %36, align 4, !tbaa !9
  %1852 = sext i32 %1851 to i64
  %1853 = getelementptr inbounds %struct.complex, ptr %1850, i64 %1852
  %1854 = getelementptr inbounds %struct.complex, ptr %1853, i32 0, i32 0
  store float %1849, ptr %1854, align 4, !tbaa !11
  %1855 = load ptr, ptr %23, align 8, !tbaa !5
  %1856 = load i32, ptr %37, align 4, !tbaa !9
  %1857 = sext i32 %1856 to i64
  %1858 = getelementptr inbounds %struct.complex, ptr %1855, i64 %1857
  %1859 = getelementptr inbounds %struct.complex, ptr %1858, i32 0, i32 1
  %1860 = load float, ptr %1859, align 4, !tbaa !14
  %1861 = load ptr, ptr %23, align 8, !tbaa !5
  %1862 = load i32, ptr %36, align 4, !tbaa !9
  %1863 = sext i32 %1862 to i64
  %1864 = getelementptr inbounds %struct.complex, ptr %1861, i64 %1863
  %1865 = getelementptr inbounds %struct.complex, ptr %1864, i32 0, i32 1
  store float %1860, ptr %1865, align 4, !tbaa !14
  br label %1892

1866:                                             ; preds = %1836
  %1867 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1867, ptr %36, align 4, !tbaa !9
  %1868 = load i32, ptr %55, align 4, !tbaa !9
  %1869 = sub nsw i32 %1868, 1
  store i32 %1869, ptr %37, align 4, !tbaa !9
  %1870 = load ptr, ptr %23, align 8, !tbaa !5
  %1871 = load i32, ptr %37, align 4, !tbaa !9
  %1872 = sext i32 %1871 to i64
  %1873 = getelementptr inbounds %struct.complex, ptr %1870, i64 %1872
  %1874 = getelementptr inbounds %struct.complex, ptr %1873, i32 0, i32 0
  %1875 = load float, ptr %1874, align 4, !tbaa !11
  %1876 = load ptr, ptr %23, align 8, !tbaa !5
  %1877 = load i32, ptr %36, align 4, !tbaa !9
  %1878 = sext i32 %1877 to i64
  %1879 = getelementptr inbounds %struct.complex, ptr %1876, i64 %1878
  %1880 = getelementptr inbounds %struct.complex, ptr %1879, i32 0, i32 0
  store float %1875, ptr %1880, align 4, !tbaa !11
  %1881 = load ptr, ptr %23, align 8, !tbaa !5
  %1882 = load i32, ptr %37, align 4, !tbaa !9
  %1883 = sext i32 %1882 to i64
  %1884 = getelementptr inbounds %struct.complex, ptr %1881, i64 %1883
  %1885 = getelementptr inbounds %struct.complex, ptr %1884, i32 0, i32 1
  %1886 = load float, ptr %1885, align 4, !tbaa !14
  %1887 = load ptr, ptr %23, align 8, !tbaa !5
  %1888 = load i32, ptr %36, align 4, !tbaa !9
  %1889 = sext i32 %1888 to i64
  %1890 = getelementptr inbounds %struct.complex, ptr %1887, i64 %1889
  %1891 = getelementptr inbounds %struct.complex, ptr %1890, i32 0, i32 1
  store float %1886, ptr %1891, align 4, !tbaa !14
  br label %1892

1892:                                             ; preds = %1866, %1840
  br label %1893

1893:                                             ; preds = %1892, %1699
  %1894 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %1894, ptr %36, align 4, !tbaa !9
  %1895 = load i32, ptr %55, align 4, !tbaa !9
  %1896 = load i32, ptr %76, align 4, !tbaa !9
  %1897 = sub nsw i32 %1895, %1896
  %1898 = add nsw i32 %1897, 1
  store i32 %1898, ptr %37, align 4, !tbaa !9
  %1899 = load i32, ptr %36, align 4, !tbaa !9
  %1900 = load i32, ptr %37, align 4, !tbaa !9
  %1901 = icmp sle i32 %1899, %1900
  br i1 %1901, label %1902, label %1904

1902:                                             ; preds = %1893
  %1903 = load i32, ptr %36, align 4, !tbaa !9
  br label %1906

1904:                                             ; preds = %1893
  %1905 = load i32, ptr %37, align 4, !tbaa !9
  br label %1906

1906:                                             ; preds = %1904, %1902
  %1907 = phi i32 [ %1903, %1902 ], [ %1905, %1904 ]
  store i32 %1907, ptr %81, align 4, !tbaa !9
  %1908 = load i32, ptr %81, align 4, !tbaa !9
  %1909 = srem i32 %1908, 2
  %1910 = load i32, ptr %81, align 4, !tbaa !9
  %1911 = sub nsw i32 %1910, %1909
  store i32 %1911, ptr %81, align 4, !tbaa !9
  %1912 = load i32, ptr %55, align 4, !tbaa !9
  %1913 = load i32, ptr %81, align 4, !tbaa !9
  %1914 = sub nsw i32 %1912, %1913
  %1915 = add nsw i32 %1914, 1
  store i32 %1915, ptr %76, align 4, !tbaa !9
  %1916 = load i32, ptr %81, align 4, !tbaa !9
  %1917 = shl i32 %1916, 1
  store i32 %1917, ptr %91, align 4, !tbaa !9
  %1918 = load ptr, ptr %18, align 8, !tbaa !5
  %1919 = load i32, ptr %1918, align 4, !tbaa !9
  %1920 = load i32, ptr %91, align 4, !tbaa !9
  %1921 = sub nsw i32 %1919, %1920
  %1922 = add nsw i32 %1921, 1
  store i32 %1922, ptr %78, align 4, !tbaa !9
  %1923 = load i32, ptr %91, align 4, !tbaa !9
  %1924 = add nsw i32 %1923, 1
  store i32 %1924, ptr %94, align 4, !tbaa !9
  %1925 = load ptr, ptr %18, align 8, !tbaa !5
  %1926 = load i32, ptr %1925, align 4, !tbaa !9
  %1927 = load i32, ptr %91, align 4, !tbaa !9
  %1928 = sub nsw i32 %1926, %1927
  %1929 = sub nsw i32 %1928, 3
  %1930 = load i32, ptr %91, align 4, !tbaa !9
  %1931 = add nsw i32 %1930, 1
  %1932 = sub nsw i32 %1929, %1931
  %1933 = add nsw i32 %1932, 1
  store i32 %1933, ptr %92, align 4, !tbaa !9
  %1934 = load i32, ptr %91, align 4, !tbaa !9
  %1935 = add nsw i32 %1934, 4
  store i32 %1935, ptr %97, align 4, !tbaa !9
  %1936 = load ptr, ptr %18, align 8, !tbaa !5
  %1937 = load i32, ptr %1936, align 4, !tbaa !9
  %1938 = load i32, ptr %91, align 4, !tbaa !9
  %1939 = sub nsw i32 %1937, %1938
  %1940 = load i32, ptr %97, align 4, !tbaa !9
  %1941 = sub nsw i32 %1939, %1940
  %1942 = add nsw i32 %1941, 1
  store i32 %1942, ptr %93, align 4, !tbaa !9
  %1943 = load ptr, ptr %16, align 8, !tbaa !5
  %1944 = load ptr, ptr %17, align 8, !tbaa !5
  %1945 = load ptr, ptr %18, align 8, !tbaa !5
  %1946 = load ptr, ptr %23, align 8, !tbaa !5
  %1947 = load i32, ptr %76, align 4, !tbaa !9
  %1948 = sext i32 %1947 to i64
  %1949 = getelementptr inbounds %struct.complex, ptr %1946, i64 %1948
  %1950 = load ptr, ptr %21, align 8, !tbaa !5
  %1951 = load i32, ptr %32, align 4, !tbaa !9
  %1952 = sext i32 %1951 to i64
  %1953 = getelementptr inbounds %struct.complex, ptr %1950, i64 %1952
  %1954 = load ptr, ptr %22, align 8, !tbaa !5
  %1955 = load ptr, ptr %24, align 8, !tbaa !5
  %1956 = load ptr, ptr %25, align 8, !tbaa !5
  %1957 = load ptr, ptr %26, align 8, !tbaa !5
  %1958 = load i32, ptr %34, align 4, !tbaa !9
  %1959 = sext i32 %1958 to i64
  %1960 = getelementptr inbounds %struct.complex, ptr %1957, i64 %1959
  %1961 = load ptr, ptr %27, align 8, !tbaa !5
  %1962 = load ptr, ptr %28, align 8, !tbaa !5
  %1963 = getelementptr inbounds %struct.complex, ptr %1962, i64 1
  %1964 = load ptr, ptr %21, align 8, !tbaa !5
  %1965 = load i32, ptr %78, align 4, !tbaa !9
  %1966 = load i32, ptr %31, align 4, !tbaa !9
  %1967 = add nsw i32 %1965, %1966
  %1968 = sext i32 %1967 to i64
  %1969 = getelementptr inbounds %struct.complex, ptr %1964, i64 %1968
  %1970 = load ptr, ptr %22, align 8, !tbaa !5
  %1971 = load ptr, ptr %21, align 8, !tbaa !5
  %1972 = load i32, ptr %97, align 4, !tbaa !9
  %1973 = load i32, ptr %31, align 4, !tbaa !9
  %1974 = add nsw i32 %1972, %1973
  %1975 = sext i32 %1974 to i64
  %1976 = getelementptr inbounds %struct.complex, ptr %1971, i64 %1975
  %1977 = load ptr, ptr %22, align 8, !tbaa !5
  %1978 = load ptr, ptr %21, align 8, !tbaa !5
  %1979 = load i32, ptr %78, align 4, !tbaa !9
  %1980 = load i32, ptr %94, align 4, !tbaa !9
  %1981 = load i32, ptr %31, align 4, !tbaa !9
  %1982 = mul nsw i32 %1980, %1981
  %1983 = add nsw i32 %1979, %1982
  %1984 = sext i32 %1983 to i64
  %1985 = getelementptr inbounds %struct.complex, ptr %1978, i64 %1984
  %1986 = load ptr, ptr %22, align 8, !tbaa !5
  call void @claqr5_(ptr noundef %1943, ptr noundef %1944, ptr noundef %60, ptr noundef %1945, ptr noundef %58, ptr noundef %55, ptr noundef %81, ptr noundef %1949, ptr noundef %1953, ptr noundef %1954, ptr noundef %1955, ptr noundef %1956, ptr noundef %1960, ptr noundef %1961, ptr noundef %1963, ptr noundef @c__3, ptr noundef %1969, ptr noundef %1970, ptr noundef %93, ptr noundef %1976, ptr noundef %1977, ptr noundef %92, ptr noundef %1985, ptr noundef %1986)
  br label %1987

1987:                                             ; preds = %1906, %787, %768
  %1988 = load i32, ptr %72, align 4, !tbaa !9
  %1989 = icmp sgt i32 %1988, 0
  br i1 %1989, label %1990, label %1991

1990:                                             ; preds = %1987
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %1994

1991:                                             ; preds = %1987
  %1992 = load i32, ptr %54, align 4, !tbaa !9
  %1993 = add nsw i32 %1992, 1
  store i32 %1993, ptr %54, align 4, !tbaa !9
  br label %1994

1994:                                             ; preds = %1991, %1990
  br label %1995

1995:                                             ; preds = %1994
  %1996 = load i32, ptr %75, align 4, !tbaa !9
  %1997 = add nsw i32 %1996, 1
  store i32 %1997, ptr %75, align 4, !tbaa !9
  br label %464, !llvm.loop !22

1998:                                             ; preds = %464
  %1999 = load i32, ptr %55, align 4, !tbaa !9
  %2000 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 %1999, ptr %2000, align 4, !tbaa !9
  br label %2001

2001:                                             ; preds = %1998, %473
  br label %2002

2002:                                             ; preds = %2001, %177
  %2003 = load i32, ptr %87, align 4, !tbaa !9
  %2004 = sitofp i32 %2003 to float
  store float %2004, ptr %40, align 4, !tbaa !16
  %2005 = load float, ptr %40, align 4, !tbaa !16
  %2006 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2005, ptr %2006, align 4, !tbaa !11
  %2007 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float 0.000000e+00, ptr %2007, align 4, !tbaa !14
  %2008 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %2009 = load float, ptr %2008, align 4, !tbaa !11
  %2010 = load ptr, ptr %28, align 8, !tbaa !5
  %2011 = getelementptr inbounds %struct.complex, ptr %2010, i64 1
  %2012 = getelementptr inbounds %struct.complex, ptr %2011, i32 0, i32 0
  store float %2009, ptr %2012, align 4, !tbaa !11
  %2013 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %2014 = load float, ptr %2013, align 4, !tbaa !14
  %2015 = load ptr, ptr %28, align 8, !tbaa !5
  %2016 = getelementptr inbounds %struct.complex, ptr %2015, i64 1
  %2017 = getelementptr inbounds %struct.complex, ptr %2016, i32 0, i32 1
  store float %2014, ptr %2017, align 4, !tbaa !14
  store i32 1, ptr %98, align 4
  br label %2018

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

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

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

declare void @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

; Function Attrs: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) #3

declare void @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) #4

; Function Attrs: nounwind
declare <2 x float> @csqrtf(<2 x float> noundef) #5

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @_pCf(ptr noundef) #6

declare void @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"="64" "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 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nounwind "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 #6 = { inlinehint 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 #7 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !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 i32, align 4
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__15 = external hidden global i32, align 4
@c_n1 = external hidden global i32, align 4
@c__12 = external hidden global i32, align 4
@c__14 = external hidden global i32, align 4
@c__16 = external hidden global i32, align 4
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4

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

38:                                               ; preds = %15
  %39 = icmp slt i32 %36, 16
  br i1 %39, label %40, label %43

40:                                               ; preds = %38
  %41 = load i32, ptr %13, align 4, !tbaa !5
  %.not642 = icmp eq i32 %41, -1
  br i1 %.not642, label %.loopexit654, label %42

42:                                               ; preds = %40
  tail call void @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) #7
  br label %.loopexit654

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

78:                                               ; preds = %43
  %79 = uitofp nneg i32 %75 to float
  br label %513

80:                                               ; preds = %43
  %81 = call i32 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str, ptr noundef nonnull %28, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %13, i32 noundef 6, i32 noundef 2) #7
  %82 = call i32 @ilaenv_(ptr noundef nonnull @c__14, ptr noundef nonnull @.str, ptr noundef nonnull %28, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %13, i32 noundef 6, i32 noundef 2) #7
  %83 = call i32 @llvm.smax.i32(i32 %82, i32 0)
  %84 = call i32 @ilaenv_(ptr noundef nonnull @c__16, ptr noundef nonnull @.str, ptr noundef nonnull %28, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %13, i32 noundef 6, i32 noundef 2) #7
  %85 = call i32 @llvm.smax.i32(i32 %84, i32 0)
  %86 = call i32 @llvm.umin.i32(i32 %85, i32 2)
  store i32 %86, ptr %23, align 4, !tbaa !5
  %87 = load i32, ptr %2, align 4, !tbaa !5
  %88 = add nsw i32 %87, -1
  %89 = sdiv i32 %88, 3
  %90 = load i32, ptr %13, align 4, !tbaa !5
  %91 = sdiv i32 %90, 2
  %92 = call i32 @llvm.smin.i32(i32 %89, i32 %91)
  store i32 %92, ptr %27, align 4, !tbaa !5
  %93 = load i32, ptr %4, align 4, !tbaa !5
  %94 = load i32, ptr %3, align 4, !tbaa !5
  %95 = sub nsw i32 %93, %94
  %96 = icmp slt i32 %95, 10
  %97 = mul i32 %95, 30
  %98 = add i32 %97, 30
  %99 = select i1 %96, i32 300, i32 %98
  store i32 %93, ptr %20, align 4, !tbaa !5
  store i32 %99, ptr %16, align 4, !tbaa !5
  %.not623666 = icmp slt i32 %99, 1
  br i1 %.not623666, label %._crit_edge673, label %.lr.ph672

.lr.ph672:                                        ; preds = %80
  %100 = add nsw i32 %87, -3
  %101 = sdiv i32 %100, 6
  %102 = shl i32 %90, 1
  %103 = sdiv i32 %102, 3
  %104 = call i32 @llvm.smin.i32(i32 %101, i32 %103)
  %105 = srem i32 %104, 2
  %106 = sub nsw i32 %104, %105
  %107 = call i32 @llvm.smax.i32(i32 %81, i32 15)
  %108 = call i32 @llvm.smin.i32(i32 %107, i32 %92)
  %109 = call i32 @llvm.smin.i32(i32 %106, i32 %69)
  %110 = add i32 %32, 1
  %111 = getelementptr inbounds i8, ptr %17, i64 4
  br label %112

112:                                              ; preds = %.lr.ph672, %506
  %.0669 = phi i32 [ undef, %.lr.ph672 ], [ %.1, %506 ]
  %.0595668 = phi i32 [ 1, %.lr.ph672 ], [ %.1596, %506 ]
  %.0605667 = phi i32 [ 1, %.lr.ph672 ], [ %509, %506 ]
  %113 = load i32, ptr %20, align 4, !tbaa !5
  %114 = load i32, ptr %3, align 4, !tbaa !5
  %115 = icmp slt i32 %113, %114
  br i1 %115, label %.loopexit654, label %.preheader653

.preheader653:                                    ; preds = %112
  %.not624.not655 = icmp sgt i32 %113, %114
  br i1 %.not624.not655, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %.preheader653
  %116 = sext i32 %113 to i64
  %117 = sext i32 %114 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %128
  %indvars.iv = phi i64 [ %116, %.lr.ph.preheader ], [ %indvars.iv.next, %128 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, -1
  %indvars = trunc i64 %indvars.iv.next to i32
  %118 = mul nsw i32 %32, %indvars
  %119 = sext i32 %118 to i64
  %120 = getelementptr %struct.complex, ptr %34, i64 %indvars.iv
  %121 = getelementptr %struct.complex, ptr %120, i64 %119
  %122 = load float, ptr %121, align 4, !tbaa !10
  %123 = fcmp oeq float %122, 0.000000e+00
  br i1 %123, label %124, label %128

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

128:                                              ; preds = %.lr.ph, %124
  %.not624.not = icmp sgt i64 %indvars.iv.next, %117
  br i1 %.not624.not, label %.lr.ph, label %._crit_edge, !llvm.loop !14

._crit_edge.loopexit.split.loop.exit698:          ; preds = %124
  %129 = trunc nsw i64 %indvars.iv to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %128, %._crit_edge.loopexit.split.loop.exit698, %.preheader653
  %.1600 = phi i32 [ %114, %.preheader653 ], [ %129, %._crit_edge.loopexit.split.loop.exit698 ], [ %114, %128 ]
  store i32 %.1600, ptr %21, align 4, !tbaa !5
  %130 = sub nsw i32 %113, %.1600
  %131 = add nsw i32 %130, 1
  %132 = call i32 @llvm.smin.i32(i32 %131, i32 %92)
  %133 = icmp slt i32 %.0595668, 5
  %134 = load i32, ptr %27, align 4
  %135 = shl i32 %134, 1
  %.sink = select i1 %133, i32 %57, i32 %135
  %136 = call i32 @llvm.smin.i32(i32 %132, i32 %.sink)
  store i32 %136, ptr %27, align 4, !tbaa !5
  %137 = icmp slt i32 %136, %92
  br i1 %137, label %138, label %171

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

139:                                              ; preds = %138
  store i32 %131, ptr %27, align 4, !tbaa !5
  br label %171

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

169:                                              ; preds = %140
  %170 = add nsw i32 %.pre.pre, 1
  store i32 %170, ptr %27, align 4, !tbaa !5
  br label %171

171:                                              ; preds = %139, %169, %140, %._crit_edge
  %.pre = phi i32 [ %131, %139 ], [ %170, %169 ], [ %.pre.pre, %140 ], [ %136, %._crit_edge ]
  br i1 %133, label %179, label %172

172:                                              ; preds = %171
  %173 = icmp slt i32 %.0669, 0
  %.not630 = icmp slt i32 %.pre, %132
  %or.cond643 = select i1 %173, i1 %.not630, i1 false
  br i1 %or.cond643, label %179, label %174

174:                                              ; preds = %172
  %175 = add nsw i32 %.0669, 1
  %176 = sub nsw i32 %.pre, %175
  %177 = icmp slt i32 %176, 2
  %spec.store.select = select i1 %177, i32 0, i32 %175
  %178 = sub nsw i32 %.pre, %spec.store.select
  store i32 %178, ptr %27, align 4, !tbaa !5
  br label %179

179:                                              ; preds = %172, %171, %174
  %180 = phi i32 [ %178, %174 ], [ %.pre, %171 ], [ %.pre, %172 ]
  %.1 = phi i32 [ %spec.store.select, %174 ], [ -1, %171 ], [ %.0669, %172 ]
  %181 = load i32, ptr %2, align 4, !tbaa !5
  %182 = sub nsw i32 %181, %180
  %183 = add nsw i32 %182, 1
  %184 = add nsw i32 %180, 1
  %185 = xor i32 %180, -1
  %186 = add i32 %182, %185
  store i32 %186, ptr %30, align 4, !tbaa !5
  %187 = add nsw i32 %180, 2
  %.neg645 = add i32 %181, 1
  %188 = shl i32 %180, 1
  %reass.sub = sub i32 %.neg645, %188
  %189 = add i32 %reass.sub, -2
  store i32 %189, ptr %31, align 4, !tbaa !5
  %190 = add nsw i32 %183, %32
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds %struct.complex, ptr %34, i64 %191
  %193 = mul nsw i32 %184, %32
  %194 = add nsw i32 %183, %193
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds %struct.complex, ptr %34, i64 %195
  %197 = add nsw i32 %187, %32
  %198 = sext i32 %197 to i64
  %199 = getelementptr inbounds %struct.complex, ptr %34, i64 %198
  call void @claqr2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef nonnull %27, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %25, ptr noundef nonnull %24, ptr noundef %7, ptr noundef %192, ptr noundef nonnull %6, ptr noundef nonnull %30, ptr noundef %196, ptr noundef nonnull %6, ptr noundef nonnull %31, ptr noundef %199, ptr noundef nonnull %6, ptr noundef nonnull %12, ptr noundef nonnull %13) #7
  %200 = load i32, ptr %24, align 4, !tbaa !5
  %201 = load i32, ptr %20, align 4, !tbaa !5
  %202 = sub i32 %201, %200
  store i32 %202, ptr %20, align 4, !tbaa !5
  %203 = load i32, ptr %25, align 4, !tbaa !5
  %204 = sub nsw i32 %202, %203
  %205 = add nsw i32 %204, 1
  %206 = icmp eq i32 %200, 0
  br i1 %206, label %._crit_edge691, label %207

._crit_edge691:                                   ; preds = %179
  %.pre692 = load i32, ptr %21, align 4, !tbaa !5
  %.pre696 = sub nsw i32 %202, %.pre692
  br label %214

207:                                              ; preds = %179
  %208 = mul nsw i32 %200, 100
  %209 = load i32, ptr %27, align 4, !tbaa !5
  %210 = mul nsw i32 %209, %83
  %.not631 = icmp sgt i32 %208, %210
  br i1 %.not631, label %506, label %211

211:                                              ; preds = %207
  %212 = load i32, ptr %21, align 4, !tbaa !5
  %213 = sub nsw i32 %202, %212
  %.not633 = icmp slt i32 %213, %108
  br i1 %.not633, label %506, label %214

214:                                              ; preds = %._crit_edge691, %211
  %.pre-phi = phi i32 [ %.pre696, %._crit_edge691 ], [ %213, %211 ]
  %215 = call i32 @llvm.smax.i32(i32 %.pre-phi, i32 2)
  %216 = call i32 @llvm.smin.i32(i32 %109, i32 %215)
  %217 = srem i32 %216, 2
  %218 = sdiv i32 %216, 2
  %219 = sub nsw i32 %216, %217
  store i32 %219, ptr %26, align 4, !tbaa !5
  %220 = srem i32 %.0595668, 6
  %221 = icmp eq i32 %220, 0
  br i1 %221, label %222, label %255

222:                                              ; preds = %214
  %223 = sub nsw i32 %202, %219
  %224 = add nsw i32 %223, 1
  %225 = add nsw i32 %223, 2
  %.not640662 = icmp slt i32 %202, %225
  br i1 %.not640662, label %.loopexit, label %.lr.ph665.preheader

.lr.ph665.preheader:                              ; preds = %222
  %226 = sext i32 %202 to i64
  %227 = sext i32 %225 to i64
  br label %.lr.ph665

.lr.ph665:                                        ; preds = %.lr.ph665.preheader, %.lr.ph665
  %indvars.iv687 = phi i64 [ %226, %.lr.ph665.preheader ], [ %indvars.iv.next688, %.lr.ph665 ]
  %indvars690 = trunc i64 %indvars.iv687 to i32
  %228 = mul i32 %110, %indvars690
  %229 = add nsw i32 %indvars690, -1
  %230 = mul nsw i32 %229, %32
  %231 = sext i32 %230 to i64
  %232 = getelementptr %struct.complex, ptr %34, i64 %indvars.iv687
  %233 = getelementptr %struct.complex, ptr %232, i64 %231
  %234 = load float, ptr %233, align 4, !tbaa !10
  %235 = fcmp oge float %234, 0.000000e+00
  %236 = fneg float %234
  %237 = select i1 %235, float %234, float %236
  %238 = call <2 x float> @Cf(ptr noundef nonnull %233)
  %.sroa.013.4.vec.extract = extractelement <2 x float> %238, i64 1
  %239 = fcmp oge float %.sroa.013.4.vec.extract, 0.000000e+00
  %240 = fneg float %.sroa.013.4.vec.extract
  %241 = select i1 %239, float %.sroa.013.4.vec.extract, float %240
  %242 = fadd float %237, %241
  %243 = fmul float %242, 7.500000e-01
  %244 = sext i32 %228 to i64
  %245 = getelementptr inbounds %struct.complex, ptr %34, i64 %244
  %246 = load float, ptr %245, align 4, !tbaa !10
  %247 = fadd float %246, %243
  store float %247, ptr %17, align 8, !tbaa !10
  %248 = getelementptr inbounds i8, ptr %245, i64 4
  %249 = load float, ptr %248, align 4, !tbaa !13
  store float %249, ptr %111, align 4, !tbaa !13
  %250 = getelementptr inbounds %struct.complex, ptr %35, i64 %indvars.iv687
  store float %247, ptr %250, align 4, !tbaa !10
  %251 = getelementptr inbounds i8, ptr %250, i64 4
  store float %249, ptr %251, align 4, !tbaa !13
  %252 = getelementptr %struct.complex, ptr %35, i64 %indvars.iv687
  %253 = getelementptr i8, ptr %252, i64 -8
  store float %247, ptr %253, align 4, !tbaa !10
  %254 = getelementptr i8, ptr %252, i64 -4
  store float %249, ptr %254, align 4, !tbaa !13
  %indvars.iv.next688 = add nsw i64 %indvars.iv687, -2
  %.not640 = icmp slt i64 %indvars.iv.next688, %227
  br i1 %.not640, label %.loopexit, label %.lr.ph665, !llvm.loop !16

255:                                              ; preds = %214
  %256 = sub nsw i32 %202, %205
  %.not636.not = icmp slt i32 %256, %218
  br i1 %.not636.not, label %257, label %399

257:                                              ; preds = %255
  %258 = sub nsw i32 %202, %219
  %259 = add nsw i32 %258, 1
  %260 = load i32, ptr %2, align 4, !tbaa !5
  %261 = mul i32 %259, %110
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds %struct.complex, ptr %34, i64 %262
  %264 = sub i32 %110, %219
  %265 = add i32 %264, %260
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds %struct.complex, ptr %34, i64 %266
  call void @clacpy_(ptr noundef nonnull @.str.1, ptr noundef nonnull %26, ptr noundef nonnull %26, ptr noundef %263, ptr noundef nonnull %6, ptr noundef %267, ptr noundef nonnull %6) #7
  %268 = sext i32 %259 to i64
  %269 = getelementptr inbounds %struct.complex, ptr %35, i64 %268
  call void @clahqr_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_false, ptr noundef nonnull %26, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef %267, ptr noundef nonnull %6, ptr noundef nonnull %269, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c__1, ptr noundef nonnull %29) #7
  %270 = load i32, ptr %29, align 4, !tbaa !5
  %271 = add nsw i32 %270, %259
  %272 = load i32, ptr %20, align 4, !tbaa !5
  %.not637 = icmp slt i32 %271, %272
  br i1 %.not637, label %399, label %273

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

399:                                              ; preds = %257, %273, %255
  %400 = phi i32 [ %389, %273 ], [ %272, %257 ], [ %202, %255 ]
  %.0606 = phi i32 [ %398, %273 ], [ %271, %257 ], [ %205, %255 ]
  %401 = sub nsw i32 %400, %.0606
  %402 = load i32, ptr %26, align 4, !tbaa !5
  %.not638 = icmp slt i32 %401, %402
  %403 = icmp sle i32 %400, %.0606
  %or.cond674 = or i1 %.not638, %403
  br i1 %or.cond674, label %.loopexit, label %.preheader.preheader

.preheader.preheader:                             ; preds = %399
  %404 = sext i32 %.0606 to i64
  %405 = sext i32 %400 to i64
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %430
  %indvars.iv683 = phi i64 [ %405, %.preheader.preheader ], [ %indvars.iv.next684, %430 ]
  br label %406

406:                                              ; preds = %.preheader, %429
  %indvars.iv679 = phi i64 [ %404, %.preheader ], [ %indvars.iv.next680, %429 ]
  %.1603659 = phi i32 [ 1, %.preheader ], [ %.2604, %429 ]
  %indvars.iv.next680 = add nsw i64 %indvars.iv679, 1
  %407 = getelementptr inbounds %struct.complex, ptr %35, i64 %indvars.iv679
  %408 = load float, ptr %407, align 4, !tbaa !10
  %409 = call <2 x float> @Cf(ptr noundef nonnull %407)
  %410 = getelementptr %struct.complex, ptr %7, i64 %indvars.iv679
  %411 = load float, ptr %410, align 4, !tbaa !10
  %412 = call <2 x float> @Cf(ptr noundef nonnull %410)
  %413 = insertelement <2 x float> poison, float %408, i64 0
  %414 = insertelement <2 x float> %413, float %411, i64 1
  %415 = fcmp oge <2 x float> %414, zeroinitializer
  %416 = fneg <2 x float> %414
  %417 = select <2 x i1> %415, <2 x float> %414, <2 x float> %416
  %418 = shufflevector <2 x float> %409, <2 x float> %412, <2 x i32> <i32 1, i32 3>
  %419 = fcmp oge <2 x float> %418, zeroinitializer
  %420 = fneg <2 x float> %418
  %421 = select <2 x i1> %419, <2 x float> %418, <2 x float> %420
  %422 = fadd <2 x float> %417, %421
  %423 = extractelement <2 x float> %422, i64 0
  %424 = extractelement <2 x float> %422, i64 1
  %425 = fcmp olt float %423, %424
  br i1 %425, label %426, label %429

426:                                              ; preds = %406
  %427 = load <4 x float>, ptr %407, align 4, !tbaa !17
  %428 = shufflevector <4 x float> %427, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  store <4 x float> %428, ptr %407, align 4, !tbaa !17
  br label %429

429:                                              ; preds = %406, %426
  %.2604 = phi i32 [ 0, %426 ], [ %.1603659, %406 ]
  %.not639.not = icmp slt i64 %indvars.iv.next680, %indvars.iv683
  br i1 %.not639.not, label %406, label %430, !llvm.loop !18

430:                                              ; preds = %429
  %indvars.iv.next684 = add nsw i64 %indvars.iv683, -1
  %431 = icmp sle i64 %indvars.iv.next684, %404
  %432 = icmp ne i32 %.2604, 0
  %or.cond = select i1 %431, i1 true, i1 %432
  br i1 %or.cond, label %.loopexit, label %.preheader, !llvm.loop !19

.loopexit:                                        ; preds = %430, %.lr.ph665, %222, %399
  %.1607 = phi i32 [ %.0606, %399 ], [ %224, %222 ], [ %224, %.lr.ph665 ], [ %.0606, %430 ]
  %433 = load i32, ptr %20, align 4, !tbaa !5
  %434 = sub nsw i32 %433, %.1607
  %435 = icmp eq i32 %434, 1
  br i1 %435, label %436, label %477

436:                                              ; preds = %.loopexit
  %437 = mul i32 %433, %110
  %438 = sext i32 %433 to i64
  %439 = getelementptr inbounds %struct.complex, ptr %35, i64 %438
  %440 = sext i32 %437 to i64
  %441 = getelementptr inbounds %struct.complex, ptr %34, i64 %440
  %442 = load <2 x float>, ptr %439, align 4, !tbaa !17
  %443 = load <2 x float>, ptr %441, align 4, !tbaa !17
  %444 = fsub <2 x float> %442, %443
  store <2 x float> %444, ptr %18, align 8, !tbaa !17
  store <2 x float> %444, ptr %17, align 8, !tbaa !17
  %445 = getelementptr i8, ptr %439, i64 -8
  %446 = load <2 x float>, ptr %445, align 4, !tbaa !17
  %447 = fsub <2 x float> %446, %443
  store <2 x float> %447, ptr %19, align 8, !tbaa !17
  %448 = call <2 x float> @Cf(ptr noundef nonnull %17)
  %449 = shufflevector <2 x float> %444, <2 x float> %448, <2 x i32> <i32 0, i32 3>
  %450 = fcmp oge <2 x float> %449, zeroinitializer
  %451 = fneg <2 x float> %449
  %452 = select <2 x i1> %450, <2 x float> %449, <2 x float> %451
  %shift710 = shufflevector <2 x float> %452, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %453 = fadd <2 x float> %452, %shift710
  %454 = extractelement <2 x float> %453, i64 0
  %455 = load float, ptr %19, align 8, !tbaa !10
  %456 = fcmp oge float %455, 0.000000e+00
  %457 = fneg float %455
  %458 = select i1 %456, float %455, float %457
  %459 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %.sroa.0.4.vec.extract = extractelement <2 x float> %459, i64 1
  %460 = fcmp oge float %.sroa.0.4.vec.extract, 0.000000e+00
  %461 = fneg float %.sroa.0.4.vec.extract
  %462 = select i1 %460, float %.sroa.0.4.vec.extract, float %461
  %463 = fadd float %458, %462
  %464 = fcmp olt float %454, %463
  %465 = load i32, ptr %20, align 4, !tbaa !5
  %466 = sext i32 %465 to i64
  %467 = getelementptr %struct.complex, ptr %35, i64 %466
  br i1 %464, label %468, label %471

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

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

.sink.split:                                      ; preds = %471, %468
  %.sink704 = phi i64 [ 4, %468 ], [ -4, %471 ]
  %.sink702 = phi i64 [ -4, %468 ], [ 4, %471 ]
  %474 = getelementptr i8, ptr %467, i64 %.sink704
  %475 = load float, ptr %474, align 4, !tbaa !13
  %476 = getelementptr i8, ptr %467, i64 %.sink702
  store float %475, ptr %476, align 4, !tbaa !13
  br label %477

477:                                              ; preds = %.sink.split, %.loopexit
  %478 = phi i32 [ %433, %.loopexit ], [ %465, %.sink.split ]
  %479 = load i32, ptr %26, align 4, !tbaa !5
  %reass.sub675 = sub i32 %478, %.1607
  %480 = add i32 %reass.sub675, 1
  %481 = call i32 @llvm.smin.i32(i32 %479, i32 %480)
  %482 = srem i32 %481, 2
  %483 = sub nsw i32 %481, %482
  store i32 %483, ptr %26, align 4, !tbaa !5
  %484 = sub nsw i32 %478, %483
  %485 = shl i32 %483, 1
  %486 = load i32, ptr %2, align 4, !tbaa !5
  %487 = sub nsw i32 %486, %485
  %488 = add nsw i32 %487, 1
  %489 = or disjoint i32 %485, 1
  %490 = add i32 %487, -2
  %491 = sub i32 %490, %489
  store i32 %491, ptr %30, align 4, !tbaa !5
  %492 = add nsw i32 %485, 4
  %.neg650 = add i32 %486, 1
  %493 = shl i32 %483, 2
  %reass.sub676 = sub i32 %.neg650, %493
  %494 = add i32 %reass.sub676, -4
  store i32 %494, ptr %31, align 4, !tbaa !5
  %495 = sext i32 %484 to i64
  %gep = getelementptr %struct.complex, ptr %7, i64 %495
  %496 = add nsw i32 %488, %32
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds %struct.complex, ptr %34, i64 %497
  %499 = add nsw i32 %492, %32
  %500 = sext i32 %499 to i64
  %501 = getelementptr inbounds %struct.complex, ptr %34, i64 %500
  %502 = mul nsw i32 %489, %32
  %503 = add nsw i32 %488, %502
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds %struct.complex, ptr %34, i64 %504
  call void @claqr5_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef nonnull %26, ptr noundef %gep, 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 %498, ptr noundef nonnull %6, ptr noundef nonnull %31, ptr noundef %501, ptr noundef nonnull %6, ptr noundef nonnull %30, ptr noundef %505, ptr noundef nonnull %6) #7
  %.pre693 = load i32, ptr %24, align 4, !tbaa !5
  br label %506

506:                                              ; preds = %477, %211, %207
  %507 = phi i32 [ %.pre693, %477 ], [ %200, %211 ], [ %200, %207 ]
  %508 = add nsw i32 %.0595668, 1
  %.inv = icmp slt i32 %507, 1
  %.1596 = select i1 %.inv, i32 %508, i32 1
  %509 = add nuw nsw i32 %.0605667, 1
  %510 = load i32, ptr %16, align 4, !tbaa !5
  %.not623.not = icmp slt i32 %.0605667, %510
  br i1 %.not623.not, label %112, label %._crit_edge673.loopexit, !llvm.loop !20

._crit_edge673.loopexit:                          ; preds = %506
  %.pre694 = load i32, ptr %20, align 4, !tbaa !5
  br label %._crit_edge673

._crit_edge673:                                   ; preds = %._crit_edge673.loopexit, %80
  %511 = phi i32 [ %.pre694, %._crit_edge673.loopexit ], [ %93, %80 ]
  store i32 %511, ptr %14, align 4, !tbaa !5
  br label %.loopexit654

.loopexit654:                                     ; preds = %112, %._crit_edge673, %40, %42
  %.0601 = phi i32 [ 1, %42 ], [ 1, %40 ], [ %75, %._crit_edge673 ], [ %75, %112 ]
  %512 = uitofp nneg i32 %.0601 to float
  br label %513

513:                                              ; preds = %15, %.loopexit654, %78
  %.sink706 = phi float [ %512, %.loopexit654 ], [ %79, %78 ], [ 1.000000e+00, %15 ]
  store float %.sink706, ptr %12, align 4, !tbaa !10
  %514 = getelementptr inbounds i8, ptr %12, i64 4
  store float 0.000000e+00, ptr %514, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  ret void
}

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

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

declare void @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

; Function Attrs: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) local_unnamed_addr #3

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

; Function Attrs: nounwind
declare <2 x float> @csqrtf(<2 x float> noundef) local_unnamed_addr #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @_pCf(ptr noundef) local_unnamed_addr #5

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

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

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

; 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>) #6

attributes #0 = { nounwind uwtable "min-legal-vector-width"="64" "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 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "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 #5 = { inlinehint 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 #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!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,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MergedLoadStoreMotionPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass