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

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

%struct.complex = type { float, float }

@c__13 = external hidden global 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 @claqr0_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14) #0 {
  %16 = alloca 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 %2039

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

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 @claqr3_(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 %2039

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 = %2016, %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 %2019

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

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 @claqr3_(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 %2008

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

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

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

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 i32, ptr %81, align 4, !tbaa !9
  %987 = load i32, ptr %56, align 4, !tbaa !9
  %988 = icmp sgt i32 %986, %987
  br i1 %988, label %989, label %1005

989:                                              ; preds = %960
  %990 = load ptr, ptr %21, align 8, !tbaa !5
  %991 = load i32, ptr %77, align 4, !tbaa !9
  %992 = load i32, ptr %31, align 4, !tbaa !9
  %993 = add nsw i32 %991, %992
  %994 = sext i32 %993 to i64
  %995 = getelementptr inbounds %struct.complex, ptr %990, i64 %994
  %996 = load ptr, ptr %22, align 8, !tbaa !5
  %997 = load ptr, ptr %23, align 8, !tbaa !5
  %998 = load i32, ptr %76, align 4, !tbaa !9
  %999 = sext i32 %998 to i64
  %1000 = getelementptr inbounds %struct.complex, ptr %997, i64 %999
  %1001 = getelementptr inbounds [1 x %struct.complex], ptr %59, i64 0, i64 0
  %1002 = load ptr, ptr %28, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.complex, ptr %1002, i64 1
  %1004 = load ptr, ptr %29, align 8, !tbaa !5
  call void @claqr4_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %81, ptr noundef @c__1, ptr noundef %81, ptr noundef %995, ptr noundef %996, ptr noundef %1000, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %1001, ptr noundef @c__1, ptr noundef %1003, ptr noundef %1004, ptr noundef %90)
  br label %1018

1005:                                             ; preds = %960
  %1006 = load ptr, ptr %21, align 8, !tbaa !5
  %1007 = load i32, ptr %77, align 4, !tbaa !9
  %1008 = load i32, ptr %31, align 4, !tbaa !9
  %1009 = add nsw i32 %1007, %1008
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds %struct.complex, ptr %1006, i64 %1010
  %1012 = load ptr, ptr %22, align 8, !tbaa !5
  %1013 = load ptr, ptr %23, align 8, !tbaa !5
  %1014 = load i32, ptr %76, align 4, !tbaa !9
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds %struct.complex, ptr %1013, i64 %1015
  %1017 = 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 %1011, ptr noundef %1012, ptr noundef %1016, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %1017, ptr noundef @c__1, ptr noundef %90)
  br label %1018

1018:                                             ; preds = %1005, %989
  %1019 = load i32, ptr %90, align 4, !tbaa !9
  %1020 = load i32, ptr %76, align 4, !tbaa !9
  %1021 = add nsw i32 %1020, %1019
  store i32 %1021, ptr %76, align 4, !tbaa !9
  %1022 = load i32, ptr %76, align 4, !tbaa !9
  %1023 = load i32, ptr %55, align 4, !tbaa !9
  %1024 = icmp sge i32 %1022, %1023
  br i1 %1024, label %1025, label %1550

1025:                                             ; preds = %1018
  %1026 = load i32, ptr %55, align 4, !tbaa !9
  %1027 = sub nsw i32 %1026, 1
  %1028 = load i32, ptr %55, align 4, !tbaa !9
  %1029 = sub nsw i32 %1028, 1
  %1030 = load i32, ptr %31, align 4, !tbaa !9
  %1031 = mul nsw i32 %1029, %1030
  %1032 = add nsw i32 %1027, %1031
  store i32 %1032, ptr %36, align 4, !tbaa !9
  %1033 = load i32, ptr %55, align 4, !tbaa !9
  %1034 = load i32, ptr %55, align 4, !tbaa !9
  %1035 = sub nsw i32 %1034, 1
  %1036 = load i32, ptr %31, align 4, !tbaa !9
  %1037 = mul nsw i32 %1035, %1036
  %1038 = add nsw i32 %1033, %1037
  store i32 %1038, ptr %37, align 4, !tbaa !9
  %1039 = load i32, ptr %55, align 4, !tbaa !9
  %1040 = sub nsw i32 %1039, 1
  %1041 = load i32, ptr %55, align 4, !tbaa !9
  %1042 = load i32, ptr %31, align 4, !tbaa !9
  %1043 = mul nsw i32 %1041, %1042
  %1044 = add nsw i32 %1040, %1043
  store i32 %1044, ptr %38, align 4, !tbaa !9
  %1045 = load i32, ptr %55, align 4, !tbaa !9
  %1046 = load i32, ptr %55, align 4, !tbaa !9
  %1047 = load i32, ptr %31, align 4, !tbaa !9
  %1048 = mul nsw i32 %1046, %1047
  %1049 = add nsw i32 %1045, %1048
  store i32 %1049, ptr %39, align 4, !tbaa !9
  %1050 = load ptr, ptr %21, align 8, !tbaa !5
  %1051 = load i32, ptr %36, align 4, !tbaa !9
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds %struct.complex, ptr %1050, i64 %1052
  %1054 = getelementptr inbounds %struct.complex, ptr %1053, i32 0, i32 0
  %1055 = load float, ptr %1054, align 4, !tbaa !11
  store float %1055, ptr %40, align 4, !tbaa !16
  %1056 = load float, ptr %40, align 4, !tbaa !16
  %1057 = fcmp oge float %1056, 0.000000e+00
  br i1 %1057, label %1058, label %1060

1058:                                             ; preds = %1025
  %1059 = load float, ptr %40, align 4, !tbaa !16
  br label %1063

1060:                                             ; preds = %1025
  %1061 = load float, ptr %40, align 4, !tbaa !16
  %1062 = fneg float %1061
  br label %1063

1063:                                             ; preds = %1060, %1058
  %1064 = phi float [ %1059, %1058 ], [ %1062, %1060 ]
  %1065 = load ptr, ptr %21, align 8, !tbaa !5
  %1066 = load i32, ptr %55, align 4, !tbaa !9
  %1067 = sub nsw i32 %1066, 1
  %1068 = load i32, ptr %55, align 4, !tbaa !9
  %1069 = sub nsw i32 %1068, 1
  %1070 = load i32, ptr %31, align 4, !tbaa !9
  %1071 = mul nsw i32 %1069, %1070
  %1072 = add nsw i32 %1067, %1071
  %1073 = sext i32 %1072 to i64
  %1074 = getelementptr inbounds %struct.complex, ptr %1065, i64 %1073
  %1075 = call <2 x float> @Cf(ptr noundef %1074)
  store <2 x float> %1075, ptr %102, align 4
  %1076 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 0
  %1077 = load float, ptr %1076, align 4
  %1078 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 1
  %1079 = load float, ptr %1078, align 4
  store float %1079, ptr %41, align 4, !tbaa !16
  %1080 = load float, ptr %41, align 4, !tbaa !16
  %1081 = fcmp oge float %1080, 0.000000e+00
  br i1 %1081, label %1082, label %1084

1082:                                             ; preds = %1063
  %1083 = load float, ptr %41, align 4, !tbaa !16
  br label %1087

1084:                                             ; preds = %1063
  %1085 = load float, ptr %41, align 4, !tbaa !16
  %1086 = fneg float %1085
  br label %1087

1087:                                             ; preds = %1084, %1082
  %1088 = phi float [ %1083, %1082 ], [ %1086, %1084 ]
  %1089 = fadd float %1064, %1088
  %1090 = load ptr, ptr %21, align 8, !tbaa !5
  %1091 = load i32, ptr %37, align 4, !tbaa !9
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds %struct.complex, ptr %1090, i64 %1092
  %1094 = getelementptr inbounds %struct.complex, ptr %1093, i32 0, i32 0
  %1095 = load float, ptr %1094, align 4, !tbaa !11
  store float %1095, ptr %42, align 4, !tbaa !16
  %1096 = load float, ptr %42, align 4, !tbaa !16
  %1097 = fcmp oge float %1096, 0.000000e+00
  br i1 %1097, label %1098, label %1100

1098:                                             ; preds = %1087
  %1099 = load float, ptr %42, align 4, !tbaa !16
  br label %1103

1100:                                             ; preds = %1087
  %1101 = load float, ptr %42, align 4, !tbaa !16
  %1102 = fneg float %1101
  br label %1103

1103:                                             ; preds = %1100, %1098
  %1104 = phi float [ %1099, %1098 ], [ %1102, %1100 ]
  %1105 = load ptr, ptr %21, align 8, !tbaa !5
  %1106 = load i32, ptr %55, align 4, !tbaa !9
  %1107 = load i32, ptr %55, align 4, !tbaa !9
  %1108 = sub nsw i32 %1107, 1
  %1109 = load i32, ptr %31, align 4, !tbaa !9
  %1110 = mul nsw i32 %1108, %1109
  %1111 = add nsw i32 %1106, %1110
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds %struct.complex, ptr %1105, i64 %1112
  %1114 = call <2 x float> @Cf(ptr noundef %1113)
  store <2 x float> %1114, ptr %103, align 4
  %1115 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 0
  %1116 = load float, ptr %1115, align 4
  %1117 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 1
  %1118 = load float, ptr %1117, align 4
  store float %1118, ptr %43, align 4, !tbaa !16
  %1119 = load float, ptr %43, align 4, !tbaa !16
  %1120 = fcmp oge float %1119, 0.000000e+00
  br i1 %1120, label %1121, label %1123

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

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

1126:                                             ; preds = %1123, %1121
  %1127 = phi float [ %1122, %1121 ], [ %1125, %1123 ]
  %1128 = fadd float %1104, %1127
  %1129 = fadd float %1089, %1128
  %1130 = load ptr, ptr %21, align 8, !tbaa !5
  %1131 = load i32, ptr %38, align 4, !tbaa !9
  %1132 = sext i32 %1131 to i64
  %1133 = getelementptr inbounds %struct.complex, ptr %1130, i64 %1132
  %1134 = getelementptr inbounds %struct.complex, ptr %1133, i32 0, i32 0
  %1135 = load float, ptr %1134, align 4, !tbaa !11
  store float %1135, ptr %44, align 4, !tbaa !16
  %1136 = load float, ptr %44, align 4, !tbaa !16
  %1137 = fcmp oge float %1136, 0.000000e+00
  br i1 %1137, label %1138, label %1140

1138:                                             ; preds = %1126
  %1139 = load float, ptr %44, align 4, !tbaa !16
  br label %1143

1140:                                             ; preds = %1126
  %1141 = load float, ptr %44, align 4, !tbaa !16
  %1142 = fneg float %1141
  br label %1143

1143:                                             ; preds = %1140, %1138
  %1144 = phi float [ %1139, %1138 ], [ %1142, %1140 ]
  %1145 = load ptr, ptr %21, align 8, !tbaa !5
  %1146 = load i32, ptr %55, align 4, !tbaa !9
  %1147 = sub nsw i32 %1146, 1
  %1148 = load i32, ptr %55, align 4, !tbaa !9
  %1149 = load i32, ptr %31, align 4, !tbaa !9
  %1150 = mul nsw i32 %1148, %1149
  %1151 = add nsw i32 %1147, %1150
  %1152 = sext i32 %1151 to i64
  %1153 = getelementptr inbounds %struct.complex, ptr %1145, i64 %1152
  %1154 = call <2 x float> @Cf(ptr noundef %1153)
  store <2 x float> %1154, ptr %104, align 4
  %1155 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 0
  %1156 = load float, ptr %1155, align 4
  %1157 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 1
  %1158 = load float, ptr %1157, align 4
  store float %1158, ptr %45, align 4, !tbaa !16
  %1159 = load float, ptr %45, align 4, !tbaa !16
  %1160 = fcmp oge float %1159, 0.000000e+00
  br i1 %1160, label %1161, label %1163

1161:                                             ; preds = %1143
  %1162 = load float, ptr %45, align 4, !tbaa !16
  br label %1166

1163:                                             ; preds = %1143
  %1164 = load float, ptr %45, align 4, !tbaa !16
  %1165 = fneg float %1164
  br label %1166

1166:                                             ; preds = %1163, %1161
  %1167 = phi float [ %1162, %1161 ], [ %1165, %1163 ]
  %1168 = fadd float %1144, %1167
  %1169 = fadd float %1129, %1168
  %1170 = load ptr, ptr %21, align 8, !tbaa !5
  %1171 = load i32, ptr %39, align 4, !tbaa !9
  %1172 = sext i32 %1171 to i64
  %1173 = getelementptr inbounds %struct.complex, ptr %1170, i64 %1172
  %1174 = getelementptr inbounds %struct.complex, ptr %1173, i32 0, i32 0
  %1175 = load float, ptr %1174, align 4, !tbaa !11
  store float %1175, ptr %46, align 4, !tbaa !16
  %1176 = load float, ptr %46, align 4, !tbaa !16
  %1177 = fcmp oge float %1176, 0.000000e+00
  br i1 %1177, label %1178, label %1180

1178:                                             ; preds = %1166
  %1179 = load float, ptr %46, align 4, !tbaa !16
  br label %1183

1180:                                             ; preds = %1166
  %1181 = load float, ptr %46, align 4, !tbaa !16
  %1182 = fneg float %1181
  br label %1183

1183:                                             ; preds = %1180, %1178
  %1184 = phi float [ %1179, %1178 ], [ %1182, %1180 ]
  %1185 = load ptr, ptr %21, align 8, !tbaa !5
  %1186 = load i32, ptr %55, align 4, !tbaa !9
  %1187 = load i32, ptr %55, align 4, !tbaa !9
  %1188 = load i32, ptr %31, align 4, !tbaa !9
  %1189 = mul nsw i32 %1187, %1188
  %1190 = add nsw i32 %1186, %1189
  %1191 = sext i32 %1190 to i64
  %1192 = getelementptr inbounds %struct.complex, ptr %1185, i64 %1191
  %1193 = call <2 x float> @Cf(ptr noundef %1192)
  store <2 x float> %1193, ptr %105, align 4
  %1194 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 0
  %1195 = load float, ptr %1194, align 4
  %1196 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 1
  %1197 = load float, ptr %1196, align 4
  store float %1197, ptr %47, align 4, !tbaa !16
  %1198 = load float, ptr %47, align 4, !tbaa !16
  %1199 = fcmp oge float %1198, 0.000000e+00
  br i1 %1199, label %1200, label %1202

1200:                                             ; preds = %1183
  %1201 = load float, ptr %47, align 4, !tbaa !16
  br label %1205

1202:                                             ; preds = %1183
  %1203 = load float, ptr %47, align 4, !tbaa !16
  %1204 = fneg float %1203
  br label %1205

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

1550:                                             ; preds = %1205, %1018
  br label %1551

1551:                                             ; preds = %1550, %952
  %1552 = load i32, ptr %55, align 4, !tbaa !9
  %1553 = load i32, ptr %76, align 4, !tbaa !9
  %1554 = sub nsw i32 %1552, %1553
  %1555 = add nsw i32 %1554, 1
  %1556 = load i32, ptr %81, align 4, !tbaa !9
  %1557 = icmp sgt i32 %1555, %1556
  br i1 %1557, label %1558, label %1719

1558:                                             ; preds = %1551
  store i32 0, ptr %86, align 4, !tbaa !9
  %1559 = load i32, ptr %76, align 4, !tbaa !9
  %1560 = add nsw i32 %1559, 1
  store i32 %1560, ptr %36, align 4, !tbaa !9
  %1561 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1561, ptr %62, align 4, !tbaa !9
  br label %1562

1562:                                             ; preds = %1714, %1558
  %1563 = load i32, ptr %62, align 4, !tbaa !9
  %1564 = load i32, ptr %36, align 4, !tbaa !9
  %1565 = icmp sge i32 %1563, %1564
  br i1 %1565, label %1566, label %1717

1566:                                             ; preds = %1562
  %1567 = load i32, ptr %86, align 4, !tbaa !9
  %1568 = icmp ne i32 %1567, 0
  br i1 %1568, label %1569, label %1570

1569:                                             ; preds = %1566
  br label %1718

1570:                                             ; preds = %1566
  store i32 1, ptr %86, align 4, !tbaa !9
  %1571 = load i32, ptr %62, align 4, !tbaa !9
  %1572 = sub nsw i32 %1571, 1
  store i32 %1572, ptr %37, align 4, !tbaa !9
  %1573 = load i32, ptr %76, align 4, !tbaa !9
  store i32 %1573, ptr %61, align 4, !tbaa !9
  br label %1574

1574:                                             ; preds = %1710, %1570
  %1575 = load i32, ptr %61, align 4, !tbaa !9
  %1576 = load i32, ptr %37, align 4, !tbaa !9
  %1577 = icmp sle i32 %1575, %1576
  br i1 %1577, label %1578, label %1713

1578:                                             ; preds = %1574
  %1579 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %1579, ptr %38, align 4, !tbaa !9
  %1580 = load i32, ptr %61, align 4, !tbaa !9
  %1581 = add nsw i32 %1580, 1
  store i32 %1581, ptr %39, align 4, !tbaa !9
  %1582 = load ptr, ptr %23, align 8, !tbaa !5
  %1583 = load i32, ptr %38, align 4, !tbaa !9
  %1584 = sext i32 %1583 to i64
  %1585 = getelementptr inbounds %struct.complex, ptr %1582, i64 %1584
  %1586 = getelementptr inbounds %struct.complex, ptr %1585, i32 0, i32 0
  %1587 = load float, ptr %1586, align 4, !tbaa !11
  store float %1587, ptr %40, align 4, !tbaa !16
  %1588 = load float, ptr %40, align 4, !tbaa !16
  %1589 = fcmp oge float %1588, 0.000000e+00
  br i1 %1589, label %1590, label %1592

1590:                                             ; preds = %1578
  %1591 = load float, ptr %40, align 4, !tbaa !16
  br label %1595

1592:                                             ; preds = %1578
  %1593 = load float, ptr %40, align 4, !tbaa !16
  %1594 = fneg float %1593
  br label %1595

1595:                                             ; preds = %1592, %1590
  %1596 = phi float [ %1591, %1590 ], [ %1594, %1592 ]
  %1597 = load ptr, ptr %23, align 8, !tbaa !5
  %1598 = load i32, ptr %61, align 4, !tbaa !9
  %1599 = sext i32 %1598 to i64
  %1600 = getelementptr inbounds %struct.complex, ptr %1597, i64 %1599
  %1601 = call <2 x float> @Cf(ptr noundef %1600)
  store <2 x float> %1601, ptr %109, align 4
  %1602 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 0
  %1603 = load float, ptr %1602, align 4
  %1604 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 1
  %1605 = load float, ptr %1604, align 4
  store float %1605, ptr %41, align 4, !tbaa !16
  %1606 = load float, ptr %41, align 4, !tbaa !16
  %1607 = fcmp oge float %1606, 0.000000e+00
  br i1 %1607, label %1608, label %1610

1608:                                             ; preds = %1595
  %1609 = load float, ptr %41, align 4, !tbaa !16
  br label %1613

1610:                                             ; preds = %1595
  %1611 = load float, ptr %41, align 4, !tbaa !16
  %1612 = fneg float %1611
  br label %1613

1613:                                             ; preds = %1610, %1608
  %1614 = phi float [ %1609, %1608 ], [ %1612, %1610 ]
  %1615 = fadd float %1596, %1614
  %1616 = load ptr, ptr %23, align 8, !tbaa !5
  %1617 = load i32, ptr %39, align 4, !tbaa !9
  %1618 = sext i32 %1617 to i64
  %1619 = getelementptr inbounds %struct.complex, ptr %1616, i64 %1618
  %1620 = getelementptr inbounds %struct.complex, ptr %1619, i32 0, i32 0
  %1621 = load float, ptr %1620, align 4, !tbaa !11
  store float %1621, ptr %42, align 4, !tbaa !16
  %1622 = load float, ptr %42, align 4, !tbaa !16
  %1623 = fcmp oge float %1622, 0.000000e+00
  br i1 %1623, label %1624, label %1626

1624:                                             ; preds = %1613
  %1625 = load float, ptr %42, align 4, !tbaa !16
  br label %1629

1626:                                             ; preds = %1613
  %1627 = load float, ptr %42, align 4, !tbaa !16
  %1628 = fneg float %1627
  br label %1629

1629:                                             ; preds = %1626, %1624
  %1630 = phi float [ %1625, %1624 ], [ %1628, %1626 ]
  %1631 = load ptr, ptr %23, align 8, !tbaa !5
  %1632 = load i32, ptr %61, align 4, !tbaa !9
  %1633 = add nsw i32 %1632, 1
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds %struct.complex, ptr %1631, i64 %1634
  %1636 = call <2 x float> @Cf(ptr noundef %1635)
  store <2 x float> %1636, ptr %110, align 4
  %1637 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 0
  %1638 = load float, ptr %1637, align 4
  %1639 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 1
  %1640 = load float, ptr %1639, align 4
  store float %1640, ptr %43, align 4, !tbaa !16
  %1641 = load float, ptr %43, align 4, !tbaa !16
  %1642 = fcmp oge float %1641, 0.000000e+00
  br i1 %1642, label %1643, label %1645

1643:                                             ; preds = %1629
  %1644 = load float, ptr %43, align 4, !tbaa !16
  br label %1648

1645:                                             ; preds = %1629
  %1646 = load float, ptr %43, align 4, !tbaa !16
  %1647 = fneg float %1646
  br label %1648

1648:                                             ; preds = %1645, %1643
  %1649 = phi float [ %1644, %1643 ], [ %1647, %1645 ]
  %1650 = fadd float %1630, %1649
  %1651 = fcmp olt float %1615, %1650
  br i1 %1651, label %1652, label %1709

1652:                                             ; preds = %1648
  store i32 0, ptr %86, align 4, !tbaa !9
  %1653 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %1653, ptr %38, align 4, !tbaa !9
  %1654 = load ptr, ptr %23, align 8, !tbaa !5
  %1655 = load i32, ptr %38, align 4, !tbaa !9
  %1656 = sext i32 %1655 to i64
  %1657 = getelementptr inbounds %struct.complex, ptr %1654, i64 %1656
  %1658 = getelementptr inbounds %struct.complex, ptr %1657, i32 0, i32 0
  %1659 = load float, ptr %1658, align 4, !tbaa !11
  %1660 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  store float %1659, ptr %1660, align 4, !tbaa !11
  %1661 = load ptr, ptr %23, align 8, !tbaa !5
  %1662 = load i32, ptr %38, 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 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  store float %1666, ptr %1667, align 4, !tbaa !14
  %1668 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %1668, ptr %38, align 4, !tbaa !9
  %1669 = load i32, ptr %61, align 4, !tbaa !9
  %1670 = add nsw i32 %1669, 1
  store i32 %1670, ptr %39, align 4, !tbaa !9
  %1671 = load ptr, ptr %23, align 8, !tbaa !5
  %1672 = load i32, ptr %39, align 4, !tbaa !9
  %1673 = sext i32 %1672 to i64
  %1674 = getelementptr inbounds %struct.complex, ptr %1671, i64 %1673
  %1675 = getelementptr inbounds %struct.complex, ptr %1674, i32 0, i32 0
  %1676 = load float, ptr %1675, align 4, !tbaa !11
  %1677 = load ptr, ptr %23, align 8, !tbaa !5
  %1678 = load i32, ptr %38, align 4, !tbaa !9
  %1679 = sext i32 %1678 to i64
  %1680 = getelementptr inbounds %struct.complex, ptr %1677, i64 %1679
  %1681 = getelementptr inbounds %struct.complex, ptr %1680, i32 0, i32 0
  store float %1676, ptr %1681, align 4, !tbaa !11
  %1682 = load ptr, ptr %23, align 8, !tbaa !5
  %1683 = load i32, ptr %39, align 4, !tbaa !9
  %1684 = sext i32 %1683 to i64
  %1685 = getelementptr inbounds %struct.complex, ptr %1682, i64 %1684
  %1686 = getelementptr inbounds %struct.complex, ptr %1685, i32 0, i32 1
  %1687 = load float, ptr %1686, align 4, !tbaa !14
  %1688 = load ptr, ptr %23, align 8, !tbaa !5
  %1689 = load i32, ptr %38, align 4, !tbaa !9
  %1690 = sext i32 %1689 to i64
  %1691 = getelementptr inbounds %struct.complex, ptr %1688, i64 %1690
  %1692 = getelementptr inbounds %struct.complex, ptr %1691, i32 0, i32 1
  store float %1687, ptr %1692, align 4, !tbaa !14
  %1693 = load i32, ptr %61, align 4, !tbaa !9
  %1694 = add nsw i32 %1693, 1
  store i32 %1694, ptr %38, align 4, !tbaa !9
  %1695 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  %1696 = load float, ptr %1695, align 4, !tbaa !11
  %1697 = load ptr, ptr %23, align 8, !tbaa !5
  %1698 = load i32, ptr %38, align 4, !tbaa !9
  %1699 = sext i32 %1698 to i64
  %1700 = getelementptr inbounds %struct.complex, ptr %1697, i64 %1699
  %1701 = getelementptr inbounds %struct.complex, ptr %1700, i32 0, i32 0
  store float %1696, ptr %1701, align 4, !tbaa !11
  %1702 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  %1703 = load float, ptr %1702, align 4, !tbaa !14
  %1704 = load ptr, ptr %23, align 8, !tbaa !5
  %1705 = load i32, ptr %38, align 4, !tbaa !9
  %1706 = sext i32 %1705 to i64
  %1707 = getelementptr inbounds %struct.complex, ptr %1704, i64 %1706
  %1708 = getelementptr inbounds %struct.complex, ptr %1707, i32 0, i32 1
  store float %1703, ptr %1708, align 4, !tbaa !14
  br label %1709

1709:                                             ; preds = %1652, %1648
  br label %1710

1710:                                             ; preds = %1709
  %1711 = load i32, ptr %61, align 4, !tbaa !9
  %1712 = add nsw i32 %1711, 1
  store i32 %1712, ptr %61, align 4, !tbaa !9
  br label %1574, !llvm.loop !20

1713:                                             ; preds = %1574
  br label %1714

1714:                                             ; preds = %1713
  %1715 = load i32, ptr %62, align 4, !tbaa !9
  %1716 = add nsw i32 %1715, -1
  store i32 %1716, ptr %62, align 4, !tbaa !9
  br label %1562, !llvm.loop !21

1717:                                             ; preds = %1562
  br label %1718

1718:                                             ; preds = %1717, %1569
  br label %1719

1719:                                             ; preds = %1718, %1551
  br label %1720

1720:                                             ; preds = %1719, %951
  %1721 = load i32, ptr %55, align 4, !tbaa !9
  %1722 = load i32, ptr %76, align 4, !tbaa !9
  %1723 = sub nsw i32 %1721, %1722
  %1724 = add nsw i32 %1723, 1
  %1725 = icmp eq i32 %1724, 2
  br i1 %1725, label %1726, label %1914

1726:                                             ; preds = %1720
  %1727 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1727, ptr %36, align 4, !tbaa !9
  %1728 = load i32, ptr %55, align 4, !tbaa !9
  %1729 = load i32, ptr %55, align 4, !tbaa !9
  %1730 = load i32, ptr %31, align 4, !tbaa !9
  %1731 = mul nsw i32 %1729, %1730
  %1732 = add nsw i32 %1728, %1731
  store i32 %1732, ptr %37, align 4, !tbaa !9
  %1733 = load ptr, ptr %23, align 8, !tbaa !5
  %1734 = load i32, ptr %36, align 4, !tbaa !9
  %1735 = sext i32 %1734 to i64
  %1736 = getelementptr inbounds %struct.complex, ptr %1733, i64 %1735
  %1737 = getelementptr inbounds %struct.complex, ptr %1736, i32 0, i32 0
  %1738 = load float, ptr %1737, align 4, !tbaa !11
  %1739 = load ptr, ptr %21, align 8, !tbaa !5
  %1740 = load i32, ptr %37, align 4, !tbaa !9
  %1741 = sext i32 %1740 to i64
  %1742 = getelementptr inbounds %struct.complex, ptr %1739, i64 %1741
  %1743 = getelementptr inbounds %struct.complex, ptr %1742, i32 0, i32 0
  %1744 = load float, ptr %1743, align 4, !tbaa !11
  %1745 = fsub float %1738, %1744
  %1746 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1745, ptr %1746, align 4, !tbaa !11
  %1747 = load ptr, ptr %23, align 8, !tbaa !5
  %1748 = load i32, ptr %36, align 4, !tbaa !9
  %1749 = sext i32 %1748 to i64
  %1750 = getelementptr inbounds %struct.complex, ptr %1747, i64 %1749
  %1751 = getelementptr inbounds %struct.complex, ptr %1750, i32 0, i32 1
  %1752 = load float, ptr %1751, align 4, !tbaa !14
  %1753 = load ptr, ptr %21, align 8, !tbaa !5
  %1754 = load i32, ptr %37, 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 1
  %1758 = load float, ptr %1757, align 4, !tbaa !14
  %1759 = fsub float %1752, %1758
  %1760 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1759, ptr %1760, align 4, !tbaa !14
  %1761 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1762 = load float, ptr %1761, align 4, !tbaa !11
  %1763 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1762, ptr %1763, align 4, !tbaa !11
  %1764 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1765 = load float, ptr %1764, align 4, !tbaa !14
  %1766 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1765, ptr %1766, align 4, !tbaa !14
  %1767 = load i32, ptr %55, align 4, !tbaa !9
  %1768 = sub nsw i32 %1767, 1
  store i32 %1768, ptr %38, align 4, !tbaa !9
  %1769 = load i32, ptr %55, align 4, !tbaa !9
  %1770 = load i32, ptr %55, align 4, !tbaa !9
  %1771 = load i32, ptr %31, align 4, !tbaa !9
  %1772 = mul nsw i32 %1770, %1771
  %1773 = add nsw i32 %1769, %1772
  store i32 %1773, ptr %39, align 4, !tbaa !9
  %1774 = load ptr, ptr %23, align 8, !tbaa !5
  %1775 = load i32, ptr %38, align 4, !tbaa !9
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds %struct.complex, ptr %1774, i64 %1776
  %1778 = getelementptr inbounds %struct.complex, ptr %1777, i32 0, i32 0
  %1779 = load float, ptr %1778, align 4, !tbaa !11
  %1780 = load ptr, ptr %21, align 8, !tbaa !5
  %1781 = load i32, ptr %39, align 4, !tbaa !9
  %1782 = sext i32 %1781 to i64
  %1783 = getelementptr inbounds %struct.complex, ptr %1780, i64 %1782
  %1784 = getelementptr inbounds %struct.complex, ptr %1783, i32 0, i32 0
  %1785 = load float, ptr %1784, align 4, !tbaa !11
  %1786 = fsub float %1779, %1785
  %1787 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1786, ptr %1787, align 4, !tbaa !11
  %1788 = load ptr, ptr %23, align 8, !tbaa !5
  %1789 = load i32, ptr %38, align 4, !tbaa !9
  %1790 = sext i32 %1789 to i64
  %1791 = getelementptr inbounds %struct.complex, ptr %1788, i64 %1790
  %1792 = getelementptr inbounds %struct.complex, ptr %1791, i32 0, i32 1
  %1793 = load float, ptr %1792, align 4, !tbaa !14
  %1794 = load ptr, ptr %21, align 8, !tbaa !5
  %1795 = load i32, ptr %39, align 4, !tbaa !9
  %1796 = sext i32 %1795 to i64
  %1797 = getelementptr inbounds %struct.complex, ptr %1794, i64 %1796
  %1798 = getelementptr inbounds %struct.complex, ptr %1797, i32 0, i32 1
  %1799 = load float, ptr %1798, align 4, !tbaa !14
  %1800 = fsub float %1793, %1799
  %1801 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1800, ptr %1801, align 4, !tbaa !14
  %1802 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1803 = load float, ptr %1802, align 4, !tbaa !11
  %1804 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1803, ptr %1804, align 4, !tbaa !11
  %1805 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1806 = load float, ptr %1805, align 4, !tbaa !14
  %1807 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1806, ptr %1807, align 4, !tbaa !14
  %1808 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1809 = load float, ptr %1808, align 4, !tbaa !11
  store float %1809, ptr %40, align 4, !tbaa !16
  %1810 = load float, ptr %40, align 4, !tbaa !16
  %1811 = fcmp oge float %1810, 0.000000e+00
  br i1 %1811, label %1812, label %1814

1812:                                             ; preds = %1726
  %1813 = load float, ptr %40, align 4, !tbaa !16
  br label %1817

1814:                                             ; preds = %1726
  %1815 = load float, ptr %40, align 4, !tbaa !16
  %1816 = fneg float %1815
  br label %1817

1817:                                             ; preds = %1814, %1812
  %1818 = phi float [ %1813, %1812 ], [ %1816, %1814 ]
  %1819 = call <2 x float> @Cf(ptr noundef %48)
  store <2 x float> %1819, ptr %111, align 4
  %1820 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 0
  %1821 = load float, ptr %1820, align 4
  %1822 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 1
  %1823 = load float, ptr %1822, align 4
  store float %1823, ptr %41, align 4, !tbaa !16
  %1824 = load float, ptr %41, align 4, !tbaa !16
  %1825 = fcmp oge float %1824, 0.000000e+00
  br i1 %1825, label %1826, label %1828

1826:                                             ; preds = %1817
  %1827 = load float, ptr %41, align 4, !tbaa !16
  br label %1831

1828:                                             ; preds = %1817
  %1829 = load float, ptr %41, align 4, !tbaa !16
  %1830 = fneg float %1829
  br label %1831

1831:                                             ; preds = %1828, %1826
  %1832 = phi float [ %1827, %1826 ], [ %1830, %1828 ]
  %1833 = fadd float %1818, %1832
  %1834 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1835 = load float, ptr %1834, align 4, !tbaa !11
  store float %1835, ptr %42, align 4, !tbaa !16
  %1836 = load float, ptr %42, align 4, !tbaa !16
  %1837 = fcmp oge float %1836, 0.000000e+00
  br i1 %1837, label %1838, label %1840

1838:                                             ; preds = %1831
  %1839 = load float, ptr %42, align 4, !tbaa !16
  br label %1843

1840:                                             ; preds = %1831
  %1841 = load float, ptr %42, align 4, !tbaa !16
  %1842 = fneg float %1841
  br label %1843

1843:                                             ; preds = %1840, %1838
  %1844 = phi float [ %1839, %1838 ], [ %1842, %1840 ]
  %1845 = call <2 x float> @Cf(ptr noundef %50)
  store <2 x float> %1845, ptr %112, align 4
  %1846 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 0
  %1847 = load float, ptr %1846, align 4
  %1848 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 1
  %1849 = load float, ptr %1848, align 4
  store float %1849, ptr %43, align 4, !tbaa !16
  %1850 = load float, ptr %43, align 4, !tbaa !16
  %1851 = fcmp oge float %1850, 0.000000e+00
  br i1 %1851, label %1852, label %1854

1852:                                             ; preds = %1843
  %1853 = load float, ptr %43, align 4, !tbaa !16
  br label %1857

1854:                                             ; preds = %1843
  %1855 = load float, ptr %43, align 4, !tbaa !16
  %1856 = fneg float %1855
  br label %1857

1857:                                             ; preds = %1854, %1852
  %1858 = phi float [ %1853, %1852 ], [ %1856, %1854 ]
  %1859 = fadd float %1844, %1858
  %1860 = fcmp olt float %1833, %1859
  br i1 %1860, label %1861, label %1887

1861:                                             ; preds = %1857
  %1862 = load i32, ptr %55, align 4, !tbaa !9
  %1863 = sub nsw i32 %1862, 1
  store i32 %1863, ptr %36, align 4, !tbaa !9
  %1864 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1864, ptr %37, align 4, !tbaa !9
  %1865 = load ptr, ptr %23, align 8, !tbaa !5
  %1866 = load i32, ptr %37, align 4, !tbaa !9
  %1867 = sext i32 %1866 to i64
  %1868 = getelementptr inbounds %struct.complex, ptr %1865, i64 %1867
  %1869 = getelementptr inbounds %struct.complex, ptr %1868, i32 0, i32 0
  %1870 = load float, ptr %1869, align 4, !tbaa !11
  %1871 = load ptr, ptr %23, align 8, !tbaa !5
  %1872 = load i32, ptr %36, align 4, !tbaa !9
  %1873 = sext i32 %1872 to i64
  %1874 = getelementptr inbounds %struct.complex, ptr %1871, i64 %1873
  %1875 = getelementptr inbounds %struct.complex, ptr %1874, i32 0, i32 0
  store float %1870, ptr %1875, align 4, !tbaa !11
  %1876 = load ptr, ptr %23, align 8, !tbaa !5
  %1877 = load i32, ptr %37, 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 1
  %1881 = load float, ptr %1880, align 4, !tbaa !14
  %1882 = load ptr, ptr %23, align 8, !tbaa !5
  %1883 = load i32, ptr %36, align 4, !tbaa !9
  %1884 = sext i32 %1883 to i64
  %1885 = getelementptr inbounds %struct.complex, ptr %1882, i64 %1884
  %1886 = getelementptr inbounds %struct.complex, ptr %1885, i32 0, i32 1
  store float %1881, ptr %1886, align 4, !tbaa !14
  br label %1913

1887:                                             ; preds = %1857
  %1888 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1888, ptr %36, align 4, !tbaa !9
  %1889 = load i32, ptr %55, align 4, !tbaa !9
  %1890 = sub nsw i32 %1889, 1
  store i32 %1890, ptr %37, align 4, !tbaa !9
  %1891 = load ptr, ptr %23, align 8, !tbaa !5
  %1892 = load i32, ptr %37, align 4, !tbaa !9
  %1893 = sext i32 %1892 to i64
  %1894 = getelementptr inbounds %struct.complex, ptr %1891, i64 %1893
  %1895 = getelementptr inbounds %struct.complex, ptr %1894, i32 0, i32 0
  %1896 = load float, ptr %1895, align 4, !tbaa !11
  %1897 = load ptr, ptr %23, align 8, !tbaa !5
  %1898 = load i32, ptr %36, align 4, !tbaa !9
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds %struct.complex, ptr %1897, i64 %1899
  %1901 = getelementptr inbounds %struct.complex, ptr %1900, i32 0, i32 0
  store float %1896, ptr %1901, align 4, !tbaa !11
  %1902 = load ptr, ptr %23, align 8, !tbaa !5
  %1903 = load i32, ptr %37, align 4, !tbaa !9
  %1904 = sext i32 %1903 to i64
  %1905 = getelementptr inbounds %struct.complex, ptr %1902, i64 %1904
  %1906 = getelementptr inbounds %struct.complex, ptr %1905, i32 0, i32 1
  %1907 = load float, ptr %1906, align 4, !tbaa !14
  %1908 = load ptr, ptr %23, align 8, !tbaa !5
  %1909 = load i32, ptr %36, align 4, !tbaa !9
  %1910 = sext i32 %1909 to i64
  %1911 = getelementptr inbounds %struct.complex, ptr %1908, i64 %1910
  %1912 = getelementptr inbounds %struct.complex, ptr %1911, i32 0, i32 1
  store float %1907, ptr %1912, align 4, !tbaa !14
  br label %1913

1913:                                             ; preds = %1887, %1861
  br label %1914

1914:                                             ; preds = %1913, %1720
  %1915 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %1915, ptr %36, align 4, !tbaa !9
  %1916 = load i32, ptr %55, align 4, !tbaa !9
  %1917 = load i32, ptr %76, align 4, !tbaa !9
  %1918 = sub nsw i32 %1916, %1917
  %1919 = add nsw i32 %1918, 1
  store i32 %1919, ptr %37, align 4, !tbaa !9
  %1920 = load i32, ptr %36, align 4, !tbaa !9
  %1921 = load i32, ptr %37, align 4, !tbaa !9
  %1922 = icmp sle i32 %1920, %1921
  br i1 %1922, label %1923, label %1925

1923:                                             ; preds = %1914
  %1924 = load i32, ptr %36, align 4, !tbaa !9
  br label %1927

1925:                                             ; preds = %1914
  %1926 = load i32, ptr %37, align 4, !tbaa !9
  br label %1927

1927:                                             ; preds = %1925, %1923
  %1928 = phi i32 [ %1924, %1923 ], [ %1926, %1925 ]
  store i32 %1928, ptr %81, align 4, !tbaa !9
  %1929 = load i32, ptr %81, align 4, !tbaa !9
  %1930 = srem i32 %1929, 2
  %1931 = load i32, ptr %81, align 4, !tbaa !9
  %1932 = sub nsw i32 %1931, %1930
  store i32 %1932, ptr %81, align 4, !tbaa !9
  %1933 = load i32, ptr %55, align 4, !tbaa !9
  %1934 = load i32, ptr %81, align 4, !tbaa !9
  %1935 = sub nsw i32 %1933, %1934
  %1936 = add nsw i32 %1935, 1
  store i32 %1936, ptr %76, align 4, !tbaa !9
  %1937 = load i32, ptr %81, align 4, !tbaa !9
  %1938 = shl i32 %1937, 1
  store i32 %1938, ptr %91, align 4, !tbaa !9
  %1939 = load ptr, ptr %18, align 8, !tbaa !5
  %1940 = load i32, ptr %1939, align 4, !tbaa !9
  %1941 = load i32, ptr %91, align 4, !tbaa !9
  %1942 = sub nsw i32 %1940, %1941
  %1943 = add nsw i32 %1942, 1
  store i32 %1943, ptr %78, align 4, !tbaa !9
  %1944 = load i32, ptr %91, align 4, !tbaa !9
  %1945 = add nsw i32 %1944, 1
  store i32 %1945, ptr %94, align 4, !tbaa !9
  %1946 = load ptr, ptr %18, align 8, !tbaa !5
  %1947 = load i32, ptr %1946, align 4, !tbaa !9
  %1948 = load i32, ptr %91, align 4, !tbaa !9
  %1949 = sub nsw i32 %1947, %1948
  %1950 = sub nsw i32 %1949, 3
  %1951 = load i32, ptr %91, align 4, !tbaa !9
  %1952 = add nsw i32 %1951, 1
  %1953 = sub nsw i32 %1950, %1952
  %1954 = add nsw i32 %1953, 1
  store i32 %1954, ptr %92, align 4, !tbaa !9
  %1955 = load i32, ptr %91, align 4, !tbaa !9
  %1956 = add nsw i32 %1955, 4
  store i32 %1956, ptr %97, align 4, !tbaa !9
  %1957 = load ptr, ptr %18, align 8, !tbaa !5
  %1958 = load i32, ptr %1957, align 4, !tbaa !9
  %1959 = load i32, ptr %91, align 4, !tbaa !9
  %1960 = sub nsw i32 %1958, %1959
  %1961 = load i32, ptr %97, align 4, !tbaa !9
  %1962 = sub nsw i32 %1960, %1961
  %1963 = add nsw i32 %1962, 1
  store i32 %1963, ptr %93, align 4, !tbaa !9
  %1964 = load ptr, ptr %16, align 8, !tbaa !5
  %1965 = load ptr, ptr %17, align 8, !tbaa !5
  %1966 = load ptr, ptr %18, align 8, !tbaa !5
  %1967 = load ptr, ptr %23, align 8, !tbaa !5
  %1968 = load i32, ptr %76, align 4, !tbaa !9
  %1969 = sext i32 %1968 to i64
  %1970 = getelementptr inbounds %struct.complex, ptr %1967, i64 %1969
  %1971 = load ptr, ptr %21, align 8, !tbaa !5
  %1972 = load i32, ptr %32, align 4, !tbaa !9
  %1973 = sext i32 %1972 to i64
  %1974 = getelementptr inbounds %struct.complex, ptr %1971, i64 %1973
  %1975 = load ptr, ptr %22, align 8, !tbaa !5
  %1976 = load ptr, ptr %24, align 8, !tbaa !5
  %1977 = load ptr, ptr %25, align 8, !tbaa !5
  %1978 = load ptr, ptr %26, align 8, !tbaa !5
  %1979 = load i32, ptr %34, align 4, !tbaa !9
  %1980 = sext i32 %1979 to i64
  %1981 = getelementptr inbounds %struct.complex, ptr %1978, i64 %1980
  %1982 = load ptr, ptr %27, align 8, !tbaa !5
  %1983 = load ptr, ptr %28, align 8, !tbaa !5
  %1984 = getelementptr inbounds %struct.complex, ptr %1983, i64 1
  %1985 = load ptr, ptr %21, align 8, !tbaa !5
  %1986 = load i32, ptr %78, align 4, !tbaa !9
  %1987 = load i32, ptr %31, align 4, !tbaa !9
  %1988 = add nsw i32 %1986, %1987
  %1989 = sext i32 %1988 to i64
  %1990 = getelementptr inbounds %struct.complex, ptr %1985, i64 %1989
  %1991 = load ptr, ptr %22, align 8, !tbaa !5
  %1992 = load ptr, ptr %21, align 8, !tbaa !5
  %1993 = load i32, ptr %97, align 4, !tbaa !9
  %1994 = load i32, ptr %31, align 4, !tbaa !9
  %1995 = add nsw i32 %1993, %1994
  %1996 = sext i32 %1995 to i64
  %1997 = getelementptr inbounds %struct.complex, ptr %1992, i64 %1996
  %1998 = load ptr, ptr %22, align 8, !tbaa !5
  %1999 = load ptr, ptr %21, align 8, !tbaa !5
  %2000 = load i32, ptr %78, align 4, !tbaa !9
  %2001 = load i32, ptr %94, align 4, !tbaa !9
  %2002 = load i32, ptr %31, align 4, !tbaa !9
  %2003 = mul nsw i32 %2001, %2002
  %2004 = add nsw i32 %2000, %2003
  %2005 = sext i32 %2004 to i64
  %2006 = getelementptr inbounds %struct.complex, ptr %1999, i64 %2005
  %2007 = load ptr, ptr %22, align 8, !tbaa !5
  call void @claqr5_(ptr noundef %1964, ptr noundef %1965, ptr noundef %60, ptr noundef %1966, ptr noundef %58, ptr noundef %55, ptr noundef %81, ptr noundef %1970, ptr noundef %1974, ptr noundef %1975, ptr noundef %1976, ptr noundef %1977, ptr noundef %1981, ptr noundef %1982, ptr noundef %1984, ptr noundef @c__3, ptr noundef %1990, ptr noundef %1991, ptr noundef %93, ptr noundef %1997, ptr noundef %1998, ptr noundef %92, ptr noundef %2006, ptr noundef %2007)
  br label %2008

2008:                                             ; preds = %1927, %787, %768
  %2009 = load i32, ptr %72, align 4, !tbaa !9
  %2010 = icmp sgt i32 %2009, 0
  br i1 %2010, label %2011, label %2012

2011:                                             ; preds = %2008
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %2015

2012:                                             ; preds = %2008
  %2013 = load i32, ptr %54, align 4, !tbaa !9
  %2014 = add nsw i32 %2013, 1
  store i32 %2014, ptr %54, align 4, !tbaa !9
  br label %2015

2015:                                             ; preds = %2012, %2011
  br label %2016

2016:                                             ; preds = %2015
  %2017 = load i32, ptr %75, align 4, !tbaa !9
  %2018 = add nsw i32 %2017, 1
  store i32 %2018, ptr %75, align 4, !tbaa !9
  br label %464, !llvm.loop !22

2019:                                             ; preds = %464
  %2020 = load i32, ptr %55, align 4, !tbaa !9
  %2021 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 %2020, ptr %2021, align 4, !tbaa !9
  br label %2022

2022:                                             ; preds = %2019, %473
  br label %2023

2023:                                             ; preds = %2022, %177
  %2024 = load i32, ptr %87, align 4, !tbaa !9
  %2025 = sitofp i32 %2024 to float
  store float %2025, ptr %40, align 4, !tbaa !16
  %2026 = load float, ptr %40, align 4, !tbaa !16
  %2027 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2026, ptr %2027, align 4, !tbaa !11
  %2028 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float 0.000000e+00, ptr %2028, align 4, !tbaa !14
  %2029 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %2030 = load float, ptr %2029, align 4, !tbaa !11
  %2031 = load ptr, ptr %28, align 8, !tbaa !5
  %2032 = getelementptr inbounds %struct.complex, ptr %2031, i64 1
  %2033 = getelementptr inbounds %struct.complex, ptr %2032, i32 0, i32 0
  store float %2030, ptr %2033, align 4, !tbaa !11
  %2034 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %2035 = load float, ptr %2034, align 4, !tbaa !14
  %2036 = load ptr, ptr %28, align 8, !tbaa !5
  %2037 = getelementptr inbounds %struct.complex, ptr %2036, i64 1
  %2038 = getelementptr inbounds %struct.complex, ptr %2037, i32 0, i32 1
  store float %2035, ptr %2038, align 4, !tbaa !14
  store i32 1, ptr %98, align 4
  br label %2039

2039:                                             ; preds = %2023, %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 @claqr3_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; 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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #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 @claqr0_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14) local_unnamed_addr #0 {
  %16 = alloca 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 %518, 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
  %.not651 = icmp eq i32 %41, -1
  br i1 %.not651, label %.loopexit663, 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 %.loopexit663

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
  %.not624 = icmp eq i32 %45, 0
  %spec.select = select i1 %.not624, 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 @claqr3_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %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 %518

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 @llvm.smax.i32(i32 %81, i32 15)
  %83 = 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
  %84 = call i32 @llvm.smax.i32(i32 %83, i32 0)
  %85 = 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
  %86 = call i32 @llvm.smax.i32(i32 %85, i32 0)
  %87 = call i32 @llvm.umin.i32(i32 %86, i32 2)
  store i32 %87, ptr %23, align 4, !tbaa !5
  %88 = load i32, ptr %2, align 4, !tbaa !5
  %89 = add nsw i32 %88, -1
  %90 = sdiv i32 %89, 3
  %91 = load i32, ptr %13, align 4, !tbaa !5
  %92 = sdiv i32 %91, 2
  %93 = call i32 @llvm.smin.i32(i32 %90, i32 %92)
  store i32 %93, ptr %27, align 4, !tbaa !5
  %94 = load i32, ptr %4, align 4, !tbaa !5
  %95 = load i32, ptr %3, align 4, !tbaa !5
  %96 = sub nsw i32 %94, %95
  %97 = icmp slt i32 %96, 10
  %98 = mul i32 %96, 30
  %99 = add i32 %98, 30
  %100 = select i1 %97, i32 300, i32 %99
  store i32 %94, ptr %20, align 4, !tbaa !5
  store i32 %100, ptr %16, align 4, !tbaa !5
  %.not632675 = icmp slt i32 %100, 1
  br i1 %.not632675, label %._crit_edge682, label %.lr.ph681

.lr.ph681:                                        ; preds = %80
  %101 = add nsw i32 %88, -3
  %102 = sdiv i32 %101, 6
  %103 = shl i32 %91, 1
  %104 = sdiv i32 %103, 3
  %105 = call i32 @llvm.smin.i32(i32 %102, i32 %104)
  %106 = srem i32 %105, 2
  %107 = sub nsw i32 %105, %106
  %108 = call i32 @llvm.smin.i32(i32 %82, i32 %93)
  %109 = call i32 @llvm.smin.i32(i32 %107, i32 %69)
  %110 = add i32 %32, 1
  %111 = getelementptr inbounds i8, ptr %17, i64 4
  br label %112

112:                                              ; preds = %.lr.ph681, %511
  %.0678 = phi i32 [ undef, %.lr.ph681 ], [ %.1, %511 ]
  %.0604677 = phi i32 [ 1, %.lr.ph681 ], [ %.1605, %511 ]
  %.0614676 = phi i32 [ 1, %.lr.ph681 ], [ %514, %511 ]
  %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 %.loopexit663, label %.preheader662

.preheader662:                                    ; preds = %112
  %.not633.not664 = icmp sgt i32 %113, %114
  br i1 %.not633.not664, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %.preheader662
  %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.exit707, label %128

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

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

._crit_edge:                                      ; preds = %128, %._crit_edge.loopexit.split.loop.exit707, %.preheader662
  %.1609 = phi i32 [ %114, %.preheader662 ], [ %129, %._crit_edge.loopexit.split.loop.exit707 ], [ %114, %128 ]
  store i32 %.1609, ptr %21, align 4, !tbaa !5
  %130 = sub nsw i32 %113, %.1609
  %131 = add nsw i32 %130, 1
  %132 = call i32 @llvm.smin.i32(i32 %131, i32 %93)
  %133 = icmp slt i32 %.0604677, 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, %93
  br i1 %137, label %138, label %171

138:                                              ; preds = %._crit_edge
  %.not638 = icmp slt i32 %136, %130
  br i1 %.not638, 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 %.0678, 0
  %.not639 = icmp slt i32 %.pre, %132
  %or.cond652 = select i1 %173, i1 %.not639, i1 false
  br i1 %or.cond652, label %179, label %174

174:                                              ; preds = %172
  %175 = add nsw i32 %.0678, 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 ], [ %.0678, %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
  %.neg654 = add i32 %181, 1
  %188 = shl i32 %180, 1
  %reass.sub = sub i32 %.neg654, %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 @claqr3_(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_edge700, label %207

._crit_edge700:                                   ; preds = %179
  %.pre701 = load i32, ptr %21, align 4, !tbaa !5
  %.pre705 = sub nsw i32 %202, %.pre701
  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, %84
  %.not640 = icmp sgt i32 %208, %210
  br i1 %.not640, label %511, label %211

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

214:                                              ; preds = %._crit_edge700, %211
  %.pre-phi = phi i32 [ %.pre705, %._crit_edge700 ], [ %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 %.0604677, 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
  %.not649671 = icmp slt i32 %202, %225
  br i1 %.not649671, label %.loopexit, label %.lr.ph674.preheader

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

.lr.ph674:                                        ; preds = %.lr.ph674.preheader, %.lr.ph674
  %indvars.iv696 = phi i64 [ %226, %.lr.ph674.preheader ], [ %indvars.iv.next697, %.lr.ph674 ]
  %indvars699 = trunc i64 %indvars.iv696 to i32
  %228 = mul i32 %110, %indvars699
  %229 = add nsw i32 %indvars699, -1
  %230 = mul nsw i32 %229, %32
  %231 = sext i32 %230 to i64
  %232 = getelementptr %struct.complex, ptr %34, i64 %indvars.iv696
  %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.iv696
  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.iv696
  %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.next697 = add nsw i64 %indvars.iv696, -2
  %.not649 = icmp slt i64 %indvars.iv.next697, %227
  br i1 %.not649, label %.loopexit, label %.lr.ph674, !llvm.loop !16

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

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 = load i32, ptr %26, align 4, !tbaa !5
  %269 = icmp sgt i32 %268, %82
  %270 = sext i32 %259 to i64
  %271 = getelementptr inbounds %struct.complex, ptr %35, i64 %270
  br i1 %269, label %272, label %273

272:                                              ; preds = %257
  call void @claqr4_(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 %271, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %29) #7
  br label %274

273:                                              ; preds = %257
  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 %271, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c__1, ptr noundef nonnull %29) #7
  br label %274

274:                                              ; preds = %273, %272
  %275 = load i32, ptr %29, align 4, !tbaa !5
  %276 = add nsw i32 %275, %259
  %277 = load i32, ptr %20, align 4, !tbaa !5
  %.not646 = icmp slt i32 %276, %277
  br i1 %.not646, label %404, label %278

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

404:                                              ; preds = %274, %278, %255
  %405 = phi i32 [ %394, %278 ], [ %277, %274 ], [ %202, %255 ]
  %.0615 = phi i32 [ %403, %278 ], [ %276, %274 ], [ %205, %255 ]
  %406 = sub nsw i32 %405, %.0615
  %407 = load i32, ptr %26, align 4, !tbaa !5
  %.not647 = icmp slt i32 %406, %407
  %408 = icmp sle i32 %405, %.0615
  %or.cond683 = or i1 %.not647, %408
  br i1 %or.cond683, label %.loopexit, label %.preheader.preheader

.preheader.preheader:                             ; preds = %404
  %409 = sext i32 %.0615 to i64
  %410 = sext i32 %405 to i64
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %435
  %indvars.iv692 = phi i64 [ %410, %.preheader.preheader ], [ %indvars.iv.next693, %435 ]
  br label %411

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

431:                                              ; preds = %411
  %432 = load <4 x float>, ptr %412, align 4, !tbaa !17
  %433 = shufflevector <4 x float> %432, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  store <4 x float> %433, ptr %412, align 4, !tbaa !17
  br label %434

434:                                              ; preds = %411, %431
  %.2613 = phi i32 [ 0, %431 ], [ %.1612668, %411 ]
  %.not648.not = icmp slt i64 %indvars.iv.next689, %indvars.iv692
  br i1 %.not648.not, label %411, label %435, !llvm.loop !18

435:                                              ; preds = %434
  %indvars.iv.next693 = add nsw i64 %indvars.iv692, -1
  %436 = icmp sle i64 %indvars.iv.next693, %409
  %437 = icmp ne i32 %.2613, 0
  %or.cond = select i1 %436, i1 true, i1 %437
  br i1 %or.cond, label %.loopexit, label %.preheader, !llvm.loop !19

.loopexit:                                        ; preds = %435, %.lr.ph674, %222, %404
  %.1616 = phi i32 [ %.0615, %404 ], [ %224, %222 ], [ %224, %.lr.ph674 ], [ %.0615, %435 ]
  %438 = load i32, ptr %20, align 4, !tbaa !5
  %439 = sub nsw i32 %438, %.1616
  %440 = icmp eq i32 %439, 1
  br i1 %440, label %441, label %482

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

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

476:                                              ; preds = %441
  %477 = getelementptr i8, ptr %472, i64 -8
  %478 = load float, ptr %477, align 4, !tbaa !10
  store float %478, ptr %472, align 4, !tbaa !10
  br label %.sink.split

.sink.split:                                      ; preds = %476, %473
  %.sink713 = phi i64 [ 4, %473 ], [ -4, %476 ]
  %.sink711 = phi i64 [ -4, %473 ], [ 4, %476 ]
  %479 = getelementptr i8, ptr %472, i64 %.sink713
  %480 = load float, ptr %479, align 4, !tbaa !13
  %481 = getelementptr i8, ptr %472, i64 %.sink711
  store float %480, ptr %481, align 4, !tbaa !13
  br label %482

482:                                              ; preds = %.sink.split, %.loopexit
  %483 = phi i32 [ %438, %.loopexit ], [ %470, %.sink.split ]
  %484 = load i32, ptr %26, align 4, !tbaa !5
  %reass.sub684 = sub i32 %483, %.1616
  %485 = add i32 %reass.sub684, 1
  %486 = call i32 @llvm.smin.i32(i32 %484, i32 %485)
  %487 = srem i32 %486, 2
  %488 = sub nsw i32 %486, %487
  store i32 %488, ptr %26, align 4, !tbaa !5
  %489 = sub nsw i32 %483, %488
  %490 = shl i32 %488, 1
  %491 = load i32, ptr %2, align 4, !tbaa !5
  %492 = sub nsw i32 %491, %490
  %493 = add nsw i32 %492, 1
  %494 = or disjoint i32 %490, 1
  %495 = add i32 %492, -2
  %496 = sub i32 %495, %494
  store i32 %496, ptr %30, align 4, !tbaa !5
  %497 = add nsw i32 %490, 4
  %.neg659 = add i32 %491, 1
  %498 = shl i32 %488, 2
  %reass.sub685 = sub i32 %.neg659, %498
  %499 = add i32 %reass.sub685, -4
  store i32 %499, ptr %31, align 4, !tbaa !5
  %500 = sext i32 %489 to i64
  %gep = getelementptr %struct.complex, ptr %7, i64 %500
  %501 = add nsw i32 %493, %32
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds %struct.complex, ptr %34, i64 %502
  %504 = add nsw i32 %497, %32
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds %struct.complex, ptr %34, i64 %505
  %507 = mul nsw i32 %494, %32
  %508 = add nsw i32 %493, %507
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds %struct.complex, ptr %34, i64 %509
  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 %503, ptr noundef nonnull %6, ptr noundef nonnull %31, ptr noundef %506, ptr noundef nonnull %6, ptr noundef nonnull %30, ptr noundef %510, ptr noundef nonnull %6) #7
  %.pre702 = load i32, ptr %24, align 4, !tbaa !5
  br label %511

511:                                              ; preds = %482, %211, %207
  %512 = phi i32 [ %.pre702, %482 ], [ %200, %211 ], [ %200, %207 ]
  %513 = add nsw i32 %.0604677, 1
  %.inv = icmp slt i32 %512, 1
  %.1605 = select i1 %.inv, i32 %513, i32 1
  %514 = add nuw nsw i32 %.0614676, 1
  %515 = load i32, ptr %16, align 4, !tbaa !5
  %.not632.not = icmp slt i32 %.0614676, %515
  br i1 %.not632.not, label %112, label %._crit_edge682.loopexit, !llvm.loop !20

._crit_edge682.loopexit:                          ; preds = %511
  %.pre703 = load i32, ptr %20, align 4, !tbaa !5
  br label %._crit_edge682

._crit_edge682:                                   ; preds = %._crit_edge682.loopexit, %80
  %516 = phi i32 [ %.pre703, %._crit_edge682.loopexit ], [ %94, %80 ]
  store i32 %516, ptr %14, align 4, !tbaa !5
  br label %.loopexit663

.loopexit663:                                     ; preds = %112, %._crit_edge682, %40, %42
  %.0610 = phi i32 [ 1, %42 ], [ 1, %40 ], [ %75, %._crit_edge682 ], [ %75, %112 ]
  %517 = uitofp nneg i32 %.0610 to float
  br label %518

518:                                              ; preds = %15, %.loopexit663, %78
  %.sink715 = phi float [ %517, %.loopexit663 ], [ %79, %78 ], [ 1.000000e+00, %15 ]
  store float %.sink715, ptr %12, align 4, !tbaa !10
  %519 = getelementptr inbounds i8, ptr %12, i64 4
  store float 0.000000e+00, ptr %519, 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 @claqr3_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; 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

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

; 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