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

; 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__1 = external hidden global i32, align 4
@c_n1 = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_true = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@c__12 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @claqr3_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24) #0 {
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca float, align 4
  %66 = alloca float, align 4
  %67 = alloca float, align 4
  %68 = alloca float, align 4
  %69 = alloca float, align 4
  %70 = alloca float, align 4
  %71 = alloca %struct.complex, align 4
  %72 = alloca %struct.complex, align 4
  %73 = alloca %struct.complex, 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 %struct.complex, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca float, align 4
  %88 = alloca float, align 4
  %89 = alloca float, align 4
  %90 = alloca i32, align 4
  %91 = alloca float, align 4
  %92 = alloca i32, align 4
  %93 = alloca %struct.complex, align 4
  %94 = alloca i32, align 4
  %95 = alloca float, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, 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
  store ptr %0, ptr %26, align 8, !tbaa !5
  store ptr %1, ptr %27, align 8, !tbaa !5
  store ptr %2, ptr %28, align 8, !tbaa !5
  store ptr %3, ptr %29, align 8, !tbaa !5
  store ptr %4, ptr %30, align 8, !tbaa !5
  store ptr %5, ptr %31, align 8, !tbaa !5
  store ptr %6, ptr %32, align 8, !tbaa !5
  store ptr %7, ptr %33, align 8, !tbaa !5
  store ptr %8, ptr %34, align 8, !tbaa !5
  store ptr %9, ptr %35, align 8, !tbaa !5
  store ptr %10, ptr %36, align 8, !tbaa !5
  store ptr %11, ptr %37, align 8, !tbaa !5
  store ptr %12, ptr %38, align 8, !tbaa !5
  store ptr %13, ptr %39, align 8, !tbaa !5
  store ptr %14, ptr %40, align 8, !tbaa !5
  store ptr %15, ptr %41, align 8, !tbaa !5
  store ptr %16, ptr %42, align 8, !tbaa !5
  store ptr %17, ptr %43, align 8, !tbaa !5
  store ptr %18, ptr %44, align 8, !tbaa !5
  store ptr %19, ptr %45, align 8, !tbaa !5
  store ptr %20, ptr %46, align 8, !tbaa !5
  store ptr %21, ptr %47, align 8, !tbaa !5
  store ptr %22, ptr %48, align 8, !tbaa !5
  store ptr %23, ptr %49, align 8, !tbaa !5
  store ptr %24, ptr %50, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #6
  %111 = load ptr, ptr %33, align 8, !tbaa !5
  %112 = load i32, ptr %111, align 4, !tbaa !9
  store i32 %112, ptr %51, align 4, !tbaa !9
  %113 = load i32, ptr %51, align 4, !tbaa !9
  %114 = mul nsw i32 %113, 1
  %115 = add nsw i32 1, %114
  store i32 %115, ptr %52, align 4, !tbaa !9
  %116 = load i32, ptr %52, align 4, !tbaa !9
  %117 = load ptr, ptr %32, align 8, !tbaa !5
  %118 = sext i32 %116 to i64
  %119 = sub i64 0, %118
  %120 = getelementptr inbounds %struct.complex, ptr %117, i64 %119
  store ptr %120, ptr %32, align 8, !tbaa !5
  %121 = load ptr, ptr %37, align 8, !tbaa !5
  %122 = load i32, ptr %121, align 4, !tbaa !9
  store i32 %122, ptr %59, align 4, !tbaa !9
  %123 = load i32, ptr %59, align 4, !tbaa !9
  %124 = mul nsw i32 %123, 1
  %125 = add nsw i32 1, %124
  store i32 %125, ptr %60, align 4, !tbaa !9
  %126 = load i32, ptr %60, align 4, !tbaa !9
  %127 = load ptr, ptr %36, align 8, !tbaa !5
  %128 = sext i32 %126 to i64
  %129 = sub i64 0, %128
  %130 = getelementptr inbounds %struct.complex, ptr %127, i64 %129
  store ptr %130, ptr %36, align 8, !tbaa !5
  %131 = load ptr, ptr %40, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.complex, ptr %131, i32 -1
  store ptr %132, ptr %40, align 8, !tbaa !5
  %133 = load ptr, ptr %42, align 8, !tbaa !5
  %134 = load i32, ptr %133, align 4, !tbaa !9
  store i32 %134, ptr %55, align 4, !tbaa !9
  %135 = load i32, ptr %55, align 4, !tbaa !9
  %136 = mul nsw i32 %135, 1
  %137 = add nsw i32 1, %136
  store i32 %137, ptr %56, align 4, !tbaa !9
  %138 = load i32, ptr %56, align 4, !tbaa !9
  %139 = load ptr, ptr %41, align 8, !tbaa !5
  %140 = sext i32 %138 to i64
  %141 = sub i64 0, %140
  %142 = getelementptr inbounds %struct.complex, ptr %139, i64 %141
  store ptr %142, ptr %41, align 8, !tbaa !5
  %143 = load ptr, ptr %45, align 8, !tbaa !5
  %144 = load i32, ptr %143, align 4, !tbaa !9
  store i32 %144, ptr %53, align 4, !tbaa !9
  %145 = load i32, ptr %53, align 4, !tbaa !9
  %146 = mul nsw i32 %145, 1
  %147 = add nsw i32 1, %146
  store i32 %147, ptr %54, align 4, !tbaa !9
  %148 = load i32, ptr %54, align 4, !tbaa !9
  %149 = load ptr, ptr %44, align 8, !tbaa !5
  %150 = sext i32 %148 to i64
  %151 = sub i64 0, %150
  %152 = getelementptr inbounds %struct.complex, ptr %149, i64 %151
  store ptr %152, ptr %44, align 8, !tbaa !5
  %153 = load ptr, ptr %48, align 8, !tbaa !5
  %154 = load i32, ptr %153, align 4, !tbaa !9
  store i32 %154, ptr %57, align 4, !tbaa !9
  %155 = load i32, ptr %57, align 4, !tbaa !9
  %156 = mul nsw i32 %155, 1
  %157 = add nsw i32 1, %156
  store i32 %157, ptr %58, align 4, !tbaa !9
  %158 = load i32, ptr %58, align 4, !tbaa !9
  %159 = load ptr, ptr %47, align 8, !tbaa !5
  %160 = sext i32 %158 to i64
  %161 = sub i64 0, %160
  %162 = getelementptr inbounds %struct.complex, ptr %159, i64 %161
  store ptr %162, ptr %47, align 8, !tbaa !5
  %163 = load ptr, ptr %49, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.complex, ptr %163, i32 -1
  store ptr %164, ptr %49, align 8, !tbaa !5
  %165 = load ptr, ptr %31, align 8, !tbaa !5
  %166 = load i32, ptr %165, align 4, !tbaa !9
  store i32 %166, ptr %61, align 4, !tbaa !9
  %167 = load ptr, ptr %30, align 8, !tbaa !5
  %168 = load i32, ptr %167, align 4, !tbaa !9
  %169 = load ptr, ptr %29, align 8, !tbaa !5
  %170 = load i32, ptr %169, align 4, !tbaa !9
  %171 = sub nsw i32 %168, %170
  %172 = add nsw i32 %171, 1
  store i32 %172, ptr %62, align 4, !tbaa !9
  %173 = load i32, ptr %61, align 4, !tbaa !9
  %174 = load i32, ptr %62, align 4, !tbaa !9
  %175 = icmp sle i32 %173, %174
  br i1 %175, label %176, label %178

176:                                              ; preds = %25
  %177 = load i32, ptr %61, align 4, !tbaa !9
  br label %180

178:                                              ; preds = %25
  %179 = load i32, ptr %62, align 4, !tbaa !9
  br label %180

180:                                              ; preds = %178, %176
  %181 = phi i32 [ %177, %176 ], [ %179, %178 ]
  store i32 %181, ptr %86, align 4, !tbaa !9
  %182 = load i32, ptr %86, align 4, !tbaa !9
  %183 = icmp sle i32 %182, 2
  br i1 %183, label %184, label %185

184:                                              ; preds = %180
  store i32 1, ptr %90, align 4, !tbaa !9
  br label %262

185:                                              ; preds = %180
  %186 = load i32, ptr %86, align 4, !tbaa !9
  %187 = sub nsw i32 %186, 1
  store i32 %187, ptr %61, align 4, !tbaa !9
  %188 = load ptr, ptr %44, align 8, !tbaa !5
  %189 = load i32, ptr %54, align 4, !tbaa !9
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds %struct.complex, ptr %188, i64 %190
  %192 = load ptr, ptr %45, align 8, !tbaa !5
  %193 = load ptr, ptr %49, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.complex, ptr %193, i64 1
  %195 = load ptr, ptr %49, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.complex, ptr %195, i64 1
  call void @cgehrd_(ptr noundef %86, ptr noundef @c__1, ptr noundef %61, ptr noundef %191, ptr noundef %192, ptr noundef %194, ptr noundef %196, ptr noundef @c_n1, ptr noundef %75)
  %197 = load ptr, ptr %49, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.complex, ptr %197, i64 1
  %199 = getelementptr inbounds %struct.complex, ptr %198, i32 0, i32 0
  %200 = load float, ptr %199, align 4, !tbaa !11
  %201 = fptosi float %200 to i32
  store i32 %201, ptr %96, align 4, !tbaa !9
  %202 = load i32, ptr %86, align 4, !tbaa !9
  %203 = sub nsw i32 %202, 1
  store i32 %203, ptr %61, align 4, !tbaa !9
  %204 = load ptr, ptr %44, align 8, !tbaa !5
  %205 = load i32, ptr %54, align 4, !tbaa !9
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds %struct.complex, ptr %204, i64 %206
  %208 = load ptr, ptr %45, align 8, !tbaa !5
  %209 = load ptr, ptr %49, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.complex, ptr %209, i64 1
  %211 = load ptr, ptr %41, align 8, !tbaa !5
  %212 = load i32, ptr %56, align 4, !tbaa !9
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds %struct.complex, ptr %211, i64 %213
  %215 = load ptr, ptr %42, align 8, !tbaa !5
  %216 = load ptr, ptr %49, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.complex, ptr %216, i64 1
  call void @cunmhr_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %86, ptr noundef %86, ptr noundef @c__1, ptr noundef %61, ptr noundef %207, ptr noundef %208, ptr noundef %210, ptr noundef %214, ptr noundef %215, ptr noundef %217, ptr noundef @c_n1, ptr noundef %75)
  %218 = load ptr, ptr %49, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.complex, ptr %218, i64 1
  %220 = getelementptr inbounds %struct.complex, ptr %219, i32 0, i32 0
  %221 = load float, ptr %220, align 4, !tbaa !11
  %222 = fptosi float %221 to i32
  store i32 %222, ptr %97, align 4, !tbaa !9
  %223 = load ptr, ptr %44, align 8, !tbaa !5
  %224 = load i32, ptr %54, align 4, !tbaa !9
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds %struct.complex, ptr %223, i64 %225
  %227 = load ptr, ptr %45, align 8, !tbaa !5
  %228 = load ptr, ptr %40, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.complex, ptr %228, i64 1
  %230 = load ptr, ptr %41, align 8, !tbaa !5
  %231 = load i32, ptr %56, align 4, !tbaa !9
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds %struct.complex, ptr %230, i64 %232
  %234 = load ptr, ptr %42, align 8, !tbaa !5
  %235 = load ptr, ptr %49, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.complex, ptr %235, i64 1
  call void @claqr4_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %86, ptr noundef @c__1, ptr noundef %86, ptr noundef %226, ptr noundef %227, ptr noundef %229, ptr noundef @c__1, ptr noundef %86, ptr noundef %233, ptr noundef %234, ptr noundef %236, ptr noundef @c_n1, ptr noundef %84)
  %237 = load ptr, ptr %49, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.complex, ptr %237, i64 1
  %239 = getelementptr inbounds %struct.complex, ptr %238, i32 0, i32 0
  %240 = load float, ptr %239, align 4, !tbaa !11
  %241 = fptosi float %240 to i32
  store i32 %241, ptr %98, align 4, !tbaa !9
  %242 = load i32, ptr %86, align 4, !tbaa !9
  %243 = load i32, ptr %96, align 4, !tbaa !9
  %244 = load i32, ptr %97, align 4, !tbaa !9
  %245 = icmp sge i32 %243, %244
  br i1 %245, label %246, label %248

246:                                              ; preds = %185
  %247 = load i32, ptr %96, align 4, !tbaa !9
  br label %250

248:                                              ; preds = %185
  %249 = load i32, ptr %97, align 4, !tbaa !9
  br label %250

250:                                              ; preds = %248, %246
  %251 = phi i32 [ %247, %246 ], [ %249, %248 ]
  %252 = add nsw i32 %242, %251
  store i32 %252, ptr %61, align 4, !tbaa !9
  %253 = load i32, ptr %61, align 4, !tbaa !9
  %254 = load i32, ptr %98, align 4, !tbaa !9
  %255 = icmp sge i32 %253, %254
  br i1 %255, label %256, label %258

256:                                              ; preds = %250
  %257 = load i32, ptr %61, align 4, !tbaa !9
  br label %260

258:                                              ; preds = %250
  %259 = load i32, ptr %98, align 4, !tbaa !9
  br label %260

260:                                              ; preds = %258, %256
  %261 = phi i32 [ %257, %256 ], [ %259, %258 ]
  store i32 %261, ptr %90, align 4, !tbaa !9
  br label %262

262:                                              ; preds = %260, %184
  %263 = load ptr, ptr %50, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = icmp eq i32 %264, -1
  br i1 %265, label %266, label %282

266:                                              ; preds = %262
  %267 = load i32, ptr %90, align 4, !tbaa !9
  %268 = sitofp i32 %267 to float
  store float %268, ptr %65, align 4, !tbaa !14
  %269 = load float, ptr %65, align 4, !tbaa !14
  %270 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %269, ptr %270, align 4, !tbaa !11
  %271 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float 0.000000e+00, ptr %271, align 4, !tbaa !15
  %272 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %273 = load float, ptr %272, align 4, !tbaa !11
  %274 = load ptr, ptr %49, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.complex, ptr %274, i64 1
  %276 = getelementptr inbounds %struct.complex, ptr %275, i32 0, i32 0
  store float %273, ptr %276, align 4, !tbaa !11
  %277 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %278 = load float, ptr %277, align 4, !tbaa !15
  %279 = load ptr, ptr %49, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.complex, ptr %279, i64 1
  %281 = getelementptr inbounds %struct.complex, ptr %280, i32 0, i32 1
  store float %278, ptr %281, align 4, !tbaa !15
  store i32 1, ptr %99, align 4
  br label %1554

282:                                              ; preds = %262
  %283 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 0, ptr %283, align 4, !tbaa !9
  %284 = load ptr, ptr %39, align 8, !tbaa !5
  store i32 0, ptr %284, align 4, !tbaa !9
  %285 = load ptr, ptr %49, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.complex, ptr %285, i64 1
  %287 = getelementptr inbounds %struct.complex, ptr %286, i32 0, i32 0
  store float 1.000000e+00, ptr %287, align 4, !tbaa !11
  %288 = load ptr, ptr %49, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.complex, ptr %288, i64 1
  %290 = getelementptr inbounds %struct.complex, ptr %289, i32 0, i32 1
  store float 0.000000e+00, ptr %290, align 4, !tbaa !15
  %291 = load ptr, ptr %29, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = load ptr, ptr %30, align 8, !tbaa !5
  %294 = load i32, ptr %293, align 4, !tbaa !9
  %295 = icmp sgt i32 %292, %294
  br i1 %295, label %296, label %297

296:                                              ; preds = %282
  store i32 1, ptr %99, align 4
  br label %1554

297:                                              ; preds = %282
  %298 = load ptr, ptr %31, align 8, !tbaa !5
  %299 = load i32, ptr %298, align 4, !tbaa !9
  %300 = icmp slt i32 %299, 1
  br i1 %300, label %301, label %302

301:                                              ; preds = %297
  store i32 1, ptr %99, align 4
  br label %1554

302:                                              ; preds = %297
  %303 = call float @slamch_(ptr noundef @.str.2)
  store float %303, ptr %87, align 4, !tbaa !14
  %304 = load float, ptr %87, align 4, !tbaa !14
  %305 = fdiv float 1.000000e+00, %304
  store float %305, ptr %88, align 4, !tbaa !14
  call void @slabad_(ptr noundef %87, ptr noundef %88)
  %306 = call float @slamch_(ptr noundef @.str.3)
  store float %306, ptr %95, align 4, !tbaa !14
  %307 = load float, ptr %87, align 4, !tbaa !14
  %308 = load ptr, ptr %28, align 8, !tbaa !5
  %309 = load i32, ptr %308, align 4, !tbaa !9
  %310 = sitofp i32 %309 to float
  %311 = load float, ptr %95, align 4, !tbaa !14
  %312 = fdiv float %310, %311
  %313 = fmul float %307, %312
  store float %313, ptr %89, align 4, !tbaa !14
  %314 = load ptr, ptr %31, align 8, !tbaa !5
  %315 = load i32, ptr %314, align 4, !tbaa !9
  store i32 %315, ptr %61, align 4, !tbaa !9
  %316 = load ptr, ptr %30, align 8, !tbaa !5
  %317 = load i32, ptr %316, align 4, !tbaa !9
  %318 = load ptr, ptr %29, align 8, !tbaa !5
  %319 = load i32, ptr %318, align 4, !tbaa !9
  %320 = sub nsw i32 %317, %319
  %321 = add nsw i32 %320, 1
  store i32 %321, ptr %62, align 4, !tbaa !9
  %322 = load i32, ptr %61, align 4, !tbaa !9
  %323 = load i32, ptr %62, align 4, !tbaa !9
  %324 = icmp sle i32 %322, %323
  br i1 %324, label %325, label %327

325:                                              ; preds = %302
  %326 = load i32, ptr %61, align 4, !tbaa !9
  br label %329

327:                                              ; preds = %302
  %328 = load i32, ptr %62, align 4, !tbaa !9
  br label %329

329:                                              ; preds = %327, %325
  %330 = phi i32 [ %326, %325 ], [ %328, %327 ]
  store i32 %330, ptr %86, align 4, !tbaa !9
  %331 = load ptr, ptr %30, align 8, !tbaa !5
  %332 = load i32, ptr %331, align 4, !tbaa !9
  %333 = load i32, ptr %86, align 4, !tbaa !9
  %334 = sub nsw i32 %332, %333
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr %85, align 4, !tbaa !9
  %336 = load i32, ptr %85, align 4, !tbaa !9
  %337 = load ptr, ptr %29, align 8, !tbaa !5
  %338 = load i32, ptr %337, align 4, !tbaa !9
  %339 = icmp eq i32 %336, %338
  br i1 %339, label %340, label %343

340:                                              ; preds = %329
  %341 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  store float 0.000000e+00, ptr %341, align 4, !tbaa !11
  %342 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 1
  store float 0.000000e+00, ptr %342, align 4, !tbaa !15
  br label %364

343:                                              ; preds = %329
  %344 = load i32, ptr %85, align 4, !tbaa !9
  %345 = load i32, ptr %85, align 4, !tbaa !9
  %346 = sub nsw i32 %345, 1
  %347 = load i32, ptr %51, align 4, !tbaa !9
  %348 = mul nsw i32 %346, %347
  %349 = add nsw i32 %344, %348
  store i32 %349, ptr %61, align 4, !tbaa !9
  %350 = load ptr, ptr %32, align 8, !tbaa !5
  %351 = load i32, ptr %61, align 4, !tbaa !9
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds %struct.complex, ptr %350, i64 %352
  %354 = getelementptr inbounds %struct.complex, ptr %353, i32 0, i32 0
  %355 = load float, ptr %354, align 4, !tbaa !11
  %356 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  store float %355, ptr %356, align 4, !tbaa !11
  %357 = load ptr, ptr %32, align 8, !tbaa !5
  %358 = load i32, ptr %61, align 4, !tbaa !9
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds %struct.complex, ptr %357, i64 %359
  %361 = getelementptr inbounds %struct.complex, ptr %360, i32 0, i32 1
  %362 = load float, ptr %361, align 4, !tbaa !15
  %363 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 1
  store float %362, ptr %363, align 4, !tbaa !15
  br label %364

364:                                              ; preds = %343, %340
  %365 = load ptr, ptr %30, align 8, !tbaa !5
  %366 = load i32, ptr %365, align 4, !tbaa !9
  %367 = load i32, ptr %85, align 4, !tbaa !9
  %368 = icmp eq i32 %366, %367
  br i1 %368, label %369, label %514

369:                                              ; preds = %364
  %370 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %370, ptr %61, align 4, !tbaa !9
  %371 = load i32, ptr %85, align 4, !tbaa !9
  %372 = load i32, ptr %85, align 4, !tbaa !9
  %373 = load i32, ptr %51, align 4, !tbaa !9
  %374 = mul nsw i32 %372, %373
  %375 = add nsw i32 %371, %374
  store i32 %375, ptr %62, align 4, !tbaa !9
  %376 = load ptr, ptr %32, align 8, !tbaa !5
  %377 = load i32, ptr %62, align 4, !tbaa !9
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds %struct.complex, ptr %376, i64 %378
  %380 = getelementptr inbounds %struct.complex, ptr %379, i32 0, i32 0
  %381 = load float, ptr %380, align 4, !tbaa !11
  %382 = load ptr, ptr %40, align 8, !tbaa !5
  %383 = load i32, ptr %61, align 4, !tbaa !9
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds %struct.complex, ptr %382, i64 %384
  %386 = getelementptr inbounds %struct.complex, ptr %385, i32 0, i32 0
  store float %381, ptr %386, align 4, !tbaa !11
  %387 = load ptr, ptr %32, align 8, !tbaa !5
  %388 = load i32, ptr %62, align 4, !tbaa !9
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds %struct.complex, ptr %387, i64 %389
  %391 = getelementptr inbounds %struct.complex, ptr %390, i32 0, i32 1
  %392 = load float, ptr %391, align 4, !tbaa !15
  %393 = load ptr, ptr %40, align 8, !tbaa !5
  %394 = load i32, ptr %61, align 4, !tbaa !9
  %395 = sext i32 %394 to i64
  %396 = getelementptr inbounds %struct.complex, ptr %393, i64 %395
  %397 = getelementptr inbounds %struct.complex, ptr %396, i32 0, i32 1
  store float %392, ptr %397, align 4, !tbaa !15
  %398 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 1, ptr %398, align 4, !tbaa !9
  %399 = load ptr, ptr %39, align 8, !tbaa !5
  store i32 0, ptr %399, align 4, !tbaa !9
  %400 = load i32, ptr %85, align 4, !tbaa !9
  %401 = load i32, ptr %85, align 4, !tbaa !9
  %402 = load i32, ptr %51, align 4, !tbaa !9
  %403 = mul nsw i32 %401, %402
  %404 = add nsw i32 %400, %403
  store i32 %404, ptr %61, align 4, !tbaa !9
  %405 = load float, ptr %89, align 4, !tbaa !14
  store float %405, ptr %69, align 4, !tbaa !14
  %406 = load float, ptr %95, align 4, !tbaa !14
  %407 = load ptr, ptr %32, align 8, !tbaa !5
  %408 = load i32, ptr %61, align 4, !tbaa !9
  %409 = sext i32 %408 to i64
  %410 = getelementptr inbounds %struct.complex, ptr %407, i64 %409
  %411 = getelementptr inbounds %struct.complex, ptr %410, i32 0, i32 0
  %412 = load float, ptr %411, align 4, !tbaa !11
  store float %412, ptr %65, align 4, !tbaa !14
  %413 = load float, ptr %65, align 4, !tbaa !14
  %414 = fcmp oge float %413, 0.000000e+00
  br i1 %414, label %415, label %417

415:                                              ; preds = %369
  %416 = load float, ptr %65, align 4, !tbaa !14
  br label %420

417:                                              ; preds = %369
  %418 = load float, ptr %65, align 4, !tbaa !14
  %419 = fneg float %418
  br label %420

420:                                              ; preds = %417, %415
  %421 = phi float [ %416, %415 ], [ %419, %417 ]
  %422 = load ptr, ptr %32, align 8, !tbaa !5
  %423 = load i32, ptr %85, align 4, !tbaa !9
  %424 = load i32, ptr %85, align 4, !tbaa !9
  %425 = load i32, ptr %51, align 4, !tbaa !9
  %426 = mul nsw i32 %424, %425
  %427 = add nsw i32 %423, %426
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds %struct.complex, ptr %422, i64 %428
  %430 = call <2 x float> @Cf(ptr noundef %429)
  store <2 x float> %430, ptr %100, align 4
  %431 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 0
  %432 = load float, ptr %431, align 4
  %433 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 1
  %434 = load float, ptr %433, align 4
  store float %434, ptr %66, align 4, !tbaa !14
  %435 = load float, ptr %66, align 4, !tbaa !14
  %436 = fcmp oge float %435, 0.000000e+00
  br i1 %436, label %437, label %439

437:                                              ; preds = %420
  %438 = load float, ptr %66, align 4, !tbaa !14
  br label %442

439:                                              ; preds = %420
  %440 = load float, ptr %66, align 4, !tbaa !14
  %441 = fneg float %440
  br label %442

442:                                              ; preds = %439, %437
  %443 = phi float [ %438, %437 ], [ %441, %439 ]
  %444 = fadd float %421, %443
  %445 = fmul float %406, %444
  store float %445, ptr %70, align 4, !tbaa !14
  %446 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  %447 = load float, ptr %446, align 4, !tbaa !11
  store float %447, ptr %67, align 4, !tbaa !14
  %448 = load float, ptr %67, align 4, !tbaa !14
  %449 = fcmp oge float %448, 0.000000e+00
  br i1 %449, label %450, label %452

450:                                              ; preds = %442
  %451 = load float, ptr %67, align 4, !tbaa !14
  br label %455

452:                                              ; preds = %442
  %453 = load float, ptr %67, align 4, !tbaa !14
  %454 = fneg float %453
  br label %455

455:                                              ; preds = %452, %450
  %456 = phi float [ %451, %450 ], [ %454, %452 ]
  %457 = call <2 x float> @Cf(ptr noundef %83)
  store <2 x float> %457, ptr %101, align 4
  %458 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 0
  %459 = load float, ptr %458, align 4
  %460 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 1
  %461 = load float, ptr %460, align 4
  store float %461, ptr %68, align 4, !tbaa !14
  %462 = load float, ptr %68, align 4, !tbaa !14
  %463 = fcmp oge float %462, 0.000000e+00
  br i1 %463, label %464, label %466

464:                                              ; preds = %455
  %465 = load float, ptr %68, align 4, !tbaa !14
  br label %469

466:                                              ; preds = %455
  %467 = load float, ptr %68, align 4, !tbaa !14
  %468 = fneg float %467
  br label %469

469:                                              ; preds = %466, %464
  %470 = phi float [ %465, %464 ], [ %468, %466 ]
  %471 = fadd float %456, %470
  %472 = load float, ptr %69, align 4, !tbaa !14
  %473 = load float, ptr %70, align 4, !tbaa !14
  %474 = fcmp oge float %472, %473
  br i1 %474, label %475, label %477

475:                                              ; preds = %469
  %476 = load float, ptr %69, align 4, !tbaa !14
  br label %479

477:                                              ; preds = %469
  %478 = load float, ptr %70, align 4, !tbaa !14
  br label %479

479:                                              ; preds = %477, %475
  %480 = phi float [ %476, %475 ], [ %478, %477 ]
  %481 = fcmp ole float %471, %480
  br i1 %481, label %482, label %507

482:                                              ; preds = %479
  %483 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 0, ptr %483, align 4, !tbaa !9
  %484 = load ptr, ptr %39, align 8, !tbaa !5
  store i32 1, ptr %484, align 4, !tbaa !9
  %485 = load i32, ptr %85, align 4, !tbaa !9
  %486 = load ptr, ptr %29, align 8, !tbaa !5
  %487 = load i32, ptr %486, align 4, !tbaa !9
  %488 = icmp sgt i32 %485, %487
  br i1 %488, label %489, label %506

489:                                              ; preds = %482
  %490 = load i32, ptr %85, align 4, !tbaa !9
  %491 = load i32, ptr %85, align 4, !tbaa !9
  %492 = sub nsw i32 %491, 1
  %493 = load i32, ptr %51, align 4, !tbaa !9
  %494 = mul nsw i32 %492, %493
  %495 = add nsw i32 %490, %494
  store i32 %495, ptr %61, align 4, !tbaa !9
  %496 = load ptr, ptr %32, align 8, !tbaa !5
  %497 = load i32, ptr %61, align 4, !tbaa !9
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds %struct.complex, ptr %496, i64 %498
  %500 = getelementptr inbounds %struct.complex, ptr %499, i32 0, i32 0
  store float 0.000000e+00, ptr %500, align 4, !tbaa !11
  %501 = load ptr, ptr %32, align 8, !tbaa !5
  %502 = load i32, ptr %61, align 4, !tbaa !9
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds %struct.complex, ptr %501, i64 %503
  %505 = getelementptr inbounds %struct.complex, ptr %504, i32 0, i32 1
  store float 0.000000e+00, ptr %505, align 4, !tbaa !15
  br label %506

506:                                              ; preds = %489, %482
  br label %507

507:                                              ; preds = %506, %479
  %508 = load ptr, ptr %49, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.complex, ptr %508, i64 1
  %510 = getelementptr inbounds %struct.complex, ptr %509, i32 0, i32 0
  store float 1.000000e+00, ptr %510, align 4, !tbaa !11
  %511 = load ptr, ptr %49, align 8, !tbaa !5
  %512 = getelementptr inbounds %struct.complex, ptr %511, i64 1
  %513 = getelementptr inbounds %struct.complex, ptr %512, i32 0, i32 1
  store float 0.000000e+00, ptr %513, align 4, !tbaa !15
  store i32 1, ptr %99, align 4
  br label %1554

514:                                              ; preds = %364
  %515 = load ptr, ptr %32, align 8, !tbaa !5
  %516 = load i32, ptr %85, align 4, !tbaa !9
  %517 = load i32, ptr %85, align 4, !tbaa !9
  %518 = load i32, ptr %51, align 4, !tbaa !9
  %519 = mul nsw i32 %517, %518
  %520 = add nsw i32 %516, %519
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds %struct.complex, ptr %515, i64 %521
  %523 = load ptr, ptr %33, align 8, !tbaa !5
  %524 = load ptr, ptr %44, align 8, !tbaa !5
  %525 = load i32, ptr %54, align 4, !tbaa !9
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds %struct.complex, ptr %524, i64 %526
  %528 = load ptr, ptr %45, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.4, ptr noundef %86, ptr noundef %86, ptr noundef %522, ptr noundef %523, ptr noundef %527, ptr noundef %528)
  %529 = load i32, ptr %86, align 4, !tbaa !9
  %530 = sub nsw i32 %529, 1
  store i32 %530, ptr %61, align 4, !tbaa !9
  %531 = load ptr, ptr %33, align 8, !tbaa !5
  %532 = load i32, ptr %531, align 4, !tbaa !9
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr %62, align 4, !tbaa !9
  %534 = load ptr, ptr %45, align 8, !tbaa !5
  %535 = load i32, ptr %534, align 4, !tbaa !9
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr %63, align 4, !tbaa !9
  %537 = load ptr, ptr %32, align 8, !tbaa !5
  %538 = load i32, ptr %85, align 4, !tbaa !9
  %539 = add nsw i32 %538, 1
  %540 = load i32, ptr %85, align 4, !tbaa !9
  %541 = load i32, ptr %51, align 4, !tbaa !9
  %542 = mul nsw i32 %540, %541
  %543 = add nsw i32 %539, %542
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds %struct.complex, ptr %537, i64 %544
  %546 = load ptr, ptr %44, align 8, !tbaa !5
  %547 = load i32, ptr %53, align 4, !tbaa !9
  %548 = add nsw i32 %547, 2
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds %struct.complex, ptr %546, i64 %549
  call void @ccopy_(ptr noundef %61, ptr noundef %545, ptr noundef %62, ptr noundef %550, ptr noundef %63)
  %551 = load ptr, ptr %41, align 8, !tbaa !5
  %552 = load i32, ptr %56, align 4, !tbaa !9
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds %struct.complex, ptr %551, i64 %553
  %555 = load ptr, ptr %42, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.5, ptr noundef %86, ptr noundef %86, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %554, ptr noundef %555)
  %556 = load ptr, ptr %50, align 8, !tbaa !5
  %557 = call i32 @ilaenv_(ptr noundef @c__12, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %86, ptr noundef @c__1, ptr noundef %86, ptr noundef %556, i32 noundef 6, i32 noundef 2)
  store i32 %557, ptr %76, align 4, !tbaa !9
  %558 = load i32, ptr %86, align 4, !tbaa !9
  %559 = load i32, ptr %76, align 4, !tbaa !9
  %560 = icmp sgt i32 %558, %559
  br i1 %560, label %561, label %579

561:                                              ; preds = %514
  %562 = load ptr, ptr %44, align 8, !tbaa !5
  %563 = load i32, ptr %54, align 4, !tbaa !9
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds %struct.complex, ptr %562, i64 %564
  %566 = load ptr, ptr %45, align 8, !tbaa !5
  %567 = load ptr, ptr %40, align 8, !tbaa !5
  %568 = load i32, ptr %85, align 4, !tbaa !9
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds %struct.complex, ptr %567, i64 %569
  %571 = load ptr, ptr %41, align 8, !tbaa !5
  %572 = load i32, ptr %56, align 4, !tbaa !9
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds %struct.complex, ptr %571, i64 %573
  %575 = load ptr, ptr %42, align 8, !tbaa !5
  %576 = load ptr, ptr %49, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.complex, ptr %576, i64 1
  %578 = load ptr, ptr %50, align 8, !tbaa !5
  call void @claqr4_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %86, ptr noundef @c__1, ptr noundef %86, ptr noundef %565, ptr noundef %566, ptr noundef %570, ptr noundef @c__1, ptr noundef %86, ptr noundef %574, ptr noundef %575, ptr noundef %577, ptr noundef %578, ptr noundef %84)
  br label %594

579:                                              ; preds = %514
  %580 = load ptr, ptr %44, align 8, !tbaa !5
  %581 = load i32, ptr %54, align 4, !tbaa !9
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds %struct.complex, ptr %580, i64 %582
  %584 = load ptr, ptr %45, align 8, !tbaa !5
  %585 = load ptr, ptr %40, align 8, !tbaa !5
  %586 = load i32, ptr %85, align 4, !tbaa !9
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds %struct.complex, ptr %585, i64 %587
  %589 = load ptr, ptr %41, align 8, !tbaa !5
  %590 = load i32, ptr %56, align 4, !tbaa !9
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds %struct.complex, ptr %589, i64 %591
  %593 = load ptr, ptr %42, align 8, !tbaa !5
  call void @clahqr_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %86, ptr noundef @c__1, ptr noundef %86, ptr noundef %583, ptr noundef %584, ptr noundef %588, ptr noundef @c__1, ptr noundef %86, ptr noundef %592, ptr noundef %593, ptr noundef %84)
  br label %594

594:                                              ; preds = %579, %561
  %595 = load i32, ptr %86, align 4, !tbaa !9
  %596 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 %595, ptr %596, align 4, !tbaa !9
  %597 = load i32, ptr %84, align 4, !tbaa !9
  %598 = add nsw i32 %597, 1
  store i32 %598, ptr %78, align 4, !tbaa !9
  %599 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %599, ptr %61, align 4, !tbaa !9
  %600 = load i32, ptr %84, align 4, !tbaa !9
  %601 = add nsw i32 %600, 1
  store i32 %601, ptr %94, align 4, !tbaa !9
  br label %602

602:                                              ; preds = %788, %594
  %603 = load i32, ptr %94, align 4, !tbaa !9
  %604 = load i32, ptr %61, align 4, !tbaa !9
  %605 = icmp sle i32 %603, %604
  br i1 %605, label %606, label %791

606:                                              ; preds = %602
  %607 = load ptr, ptr %38, align 8, !tbaa !5
  %608 = load i32, ptr %607, align 4, !tbaa !9
  %609 = load ptr, ptr %38, align 8, !tbaa !5
  %610 = load i32, ptr %609, align 4, !tbaa !9
  %611 = load i32, ptr %53, align 4, !tbaa !9
  %612 = mul nsw i32 %610, %611
  %613 = add nsw i32 %608, %612
  store i32 %613, ptr %62, align 4, !tbaa !9
  %614 = load ptr, ptr %44, align 8, !tbaa !5
  %615 = load i32, ptr %62, align 4, !tbaa !9
  %616 = sext i32 %615 to i64
  %617 = getelementptr inbounds %struct.complex, ptr %614, i64 %616
  %618 = getelementptr inbounds %struct.complex, ptr %617, i32 0, i32 0
  %619 = load float, ptr %618, align 4, !tbaa !11
  store float %619, ptr %65, align 4, !tbaa !14
  %620 = load float, ptr %65, align 4, !tbaa !14
  %621 = fcmp oge float %620, 0.000000e+00
  br i1 %621, label %622, label %624

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

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

627:                                              ; preds = %624, %622
  %628 = phi float [ %623, %622 ], [ %626, %624 ]
  %629 = load ptr, ptr %44, align 8, !tbaa !5
  %630 = load ptr, ptr %38, align 8, !tbaa !5
  %631 = load i32, ptr %630, align 4, !tbaa !9
  %632 = load ptr, ptr %38, align 8, !tbaa !5
  %633 = load i32, ptr %632, align 4, !tbaa !9
  %634 = load i32, ptr %53, align 4, !tbaa !9
  %635 = mul nsw i32 %633, %634
  %636 = add nsw i32 %631, %635
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds %struct.complex, ptr %629, i64 %637
  %639 = call <2 x float> @Cf(ptr noundef %638)
  store <2 x float> %639, ptr %102, align 4
  %640 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 0
  %641 = load float, ptr %640, align 4
  %642 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 1
  %643 = load float, ptr %642, align 4
  store float %643, ptr %66, align 4, !tbaa !14
  %644 = load float, ptr %66, align 4, !tbaa !14
  %645 = fcmp oge float %644, 0.000000e+00
  br i1 %645, label %646, label %648

646:                                              ; preds = %627
  %647 = load float, ptr %66, align 4, !tbaa !14
  br label %651

648:                                              ; preds = %627
  %649 = load float, ptr %66, align 4, !tbaa !14
  %650 = fneg float %649
  br label %651

651:                                              ; preds = %648, %646
  %652 = phi float [ %647, %646 ], [ %650, %648 ]
  %653 = fadd float %628, %652
  store float %653, ptr %91, align 4, !tbaa !14
  %654 = load float, ptr %91, align 4, !tbaa !14
  %655 = fcmp oeq float %654, 0.000000e+00
  br i1 %655, label %656, label %683

656:                                              ; preds = %651
  %657 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  %658 = load float, ptr %657, align 4, !tbaa !11
  store float %658, ptr %65, align 4, !tbaa !14
  %659 = load float, ptr %65, align 4, !tbaa !14
  %660 = fcmp oge float %659, 0.000000e+00
  br i1 %660, label %661, label %663

661:                                              ; preds = %656
  %662 = load float, ptr %65, align 4, !tbaa !14
  br label %666

663:                                              ; preds = %656
  %664 = load float, ptr %65, align 4, !tbaa !14
  %665 = fneg float %664
  br label %666

666:                                              ; preds = %663, %661
  %667 = phi float [ %662, %661 ], [ %665, %663 ]
  %668 = call <2 x float> @Cf(ptr noundef %83)
  store <2 x float> %668, ptr %103, align 4
  %669 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 0
  %670 = load float, ptr %669, align 4
  %671 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 1
  %672 = load float, ptr %671, align 4
  store float %672, ptr %66, align 4, !tbaa !14
  %673 = load float, ptr %66, align 4, !tbaa !14
  %674 = fcmp oge float %673, 0.000000e+00
  br i1 %674, label %675, label %677

675:                                              ; preds = %666
  %676 = load float, ptr %66, align 4, !tbaa !14
  br label %680

677:                                              ; preds = %666
  %678 = load float, ptr %66, align 4, !tbaa !14
  %679 = fneg float %678
  br label %680

680:                                              ; preds = %677, %675
  %681 = phi float [ %676, %675 ], [ %679, %677 ]
  %682 = fadd float %667, %681
  store float %682, ptr %91, align 4, !tbaa !14
  br label %683

683:                                              ; preds = %680, %651
  %684 = load ptr, ptr %38, align 8, !tbaa !5
  %685 = load i32, ptr %684, align 4, !tbaa !9
  %686 = load i32, ptr %55, align 4, !tbaa !9
  %687 = mul nsw i32 %685, %686
  %688 = add nsw i32 %687, 1
  store i32 %688, ptr %62, align 4, !tbaa !9
  %689 = load float, ptr %89, align 4, !tbaa !14
  store float %689, ptr %69, align 4, !tbaa !14
  %690 = load float, ptr %95, align 4, !tbaa !14
  %691 = load float, ptr %91, align 4, !tbaa !14
  %692 = fmul float %690, %691
  store float %692, ptr %70, align 4, !tbaa !14
  %693 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  %694 = load float, ptr %693, align 4, !tbaa !11
  store float %694, ptr %65, align 4, !tbaa !14
  %695 = load float, ptr %65, align 4, !tbaa !14
  %696 = fcmp oge float %695, 0.000000e+00
  br i1 %696, label %697, label %699

697:                                              ; preds = %683
  %698 = load float, ptr %65, align 4, !tbaa !14
  br label %702

699:                                              ; preds = %683
  %700 = load float, ptr %65, align 4, !tbaa !14
  %701 = fneg float %700
  br label %702

702:                                              ; preds = %699, %697
  %703 = phi float [ %698, %697 ], [ %701, %699 ]
  %704 = call <2 x float> @Cf(ptr noundef %83)
  store <2 x float> %704, ptr %104, align 4
  %705 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 0
  %706 = load float, ptr %705, align 4
  %707 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 1
  %708 = load float, ptr %707, align 4
  store float %708, ptr %66, align 4, !tbaa !14
  %709 = load float, ptr %66, align 4, !tbaa !14
  %710 = fcmp oge float %709, 0.000000e+00
  br i1 %710, label %711, label %713

711:                                              ; preds = %702
  %712 = load float, ptr %66, align 4, !tbaa !14
  br label %716

713:                                              ; preds = %702
  %714 = load float, ptr %66, align 4, !tbaa !14
  %715 = fneg float %714
  br label %716

716:                                              ; preds = %713, %711
  %717 = phi float [ %712, %711 ], [ %715, %713 ]
  %718 = fadd float %703, %717
  %719 = load ptr, ptr %41, align 8, !tbaa !5
  %720 = load i32, ptr %62, align 4, !tbaa !9
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds %struct.complex, ptr %719, i64 %721
  %723 = getelementptr inbounds %struct.complex, ptr %722, i32 0, i32 0
  %724 = load float, ptr %723, align 4, !tbaa !11
  store float %724, ptr %67, align 4, !tbaa !14
  %725 = load float, ptr %67, align 4, !tbaa !14
  %726 = fcmp oge float %725, 0.000000e+00
  br i1 %726, label %727, label %729

727:                                              ; preds = %716
  %728 = load float, ptr %67, align 4, !tbaa !14
  br label %732

729:                                              ; preds = %716
  %730 = load float, ptr %67, align 4, !tbaa !14
  %731 = fneg float %730
  br label %732

732:                                              ; preds = %729, %727
  %733 = phi float [ %728, %727 ], [ %731, %729 ]
  %734 = load ptr, ptr %41, align 8, !tbaa !5
  %735 = load ptr, ptr %38, align 8, !tbaa !5
  %736 = load i32, ptr %735, align 4, !tbaa !9
  %737 = load i32, ptr %55, align 4, !tbaa !9
  %738 = mul nsw i32 %736, %737
  %739 = add nsw i32 %738, 1
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds %struct.complex, ptr %734, i64 %740
  %742 = call <2 x float> @Cf(ptr noundef %741)
  store <2 x float> %742, ptr %105, align 4
  %743 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 0
  %744 = load float, ptr %743, align 4
  %745 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 1
  %746 = load float, ptr %745, align 4
  store float %746, ptr %68, align 4, !tbaa !14
  %747 = load float, ptr %68, align 4, !tbaa !14
  %748 = fcmp oge float %747, 0.000000e+00
  br i1 %748, label %749, label %751

749:                                              ; preds = %732
  %750 = load float, ptr %68, align 4, !tbaa !14
  br label %754

751:                                              ; preds = %732
  %752 = load float, ptr %68, align 4, !tbaa !14
  %753 = fneg float %752
  br label %754

754:                                              ; preds = %751, %749
  %755 = phi float [ %750, %749 ], [ %753, %751 ]
  %756 = fadd float %733, %755
  %757 = fmul float %718, %756
  %758 = load float, ptr %69, align 4, !tbaa !14
  %759 = load float, ptr %70, align 4, !tbaa !14
  %760 = fcmp oge float %758, %759
  br i1 %760, label %761, label %763

761:                                              ; preds = %754
  %762 = load float, ptr %69, align 4, !tbaa !14
  br label %765

763:                                              ; preds = %754
  %764 = load float, ptr %70, align 4, !tbaa !14
  br label %765

765:                                              ; preds = %763, %761
  %766 = phi float [ %762, %761 ], [ %764, %763 ]
  %767 = fcmp ole float %757, %766
  br i1 %767, label %768, label %772

768:                                              ; preds = %765
  %769 = load ptr, ptr %38, align 8, !tbaa !5
  %770 = load i32, ptr %769, align 4, !tbaa !9
  %771 = add nsw i32 %770, -1
  store i32 %771, ptr %769, align 4, !tbaa !9
  br label %787

772:                                              ; preds = %765
  %773 = load ptr, ptr %38, align 8, !tbaa !5
  %774 = load i32, ptr %773, align 4, !tbaa !9
  store i32 %774, ptr %77, align 4, !tbaa !9
  %775 = load ptr, ptr %44, align 8, !tbaa !5
  %776 = load i32, ptr %54, align 4, !tbaa !9
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds %struct.complex, ptr %775, i64 %777
  %779 = load ptr, ptr %45, align 8, !tbaa !5
  %780 = load ptr, ptr %41, align 8, !tbaa !5
  %781 = load i32, ptr %56, align 4, !tbaa !9
  %782 = sext i32 %781 to i64
  %783 = getelementptr inbounds %struct.complex, ptr %780, i64 %782
  %784 = load ptr, ptr %42, align 8, !tbaa !5
  call void @ctrexc_(ptr noundef @.str.8, ptr noundef %86, ptr noundef %778, ptr noundef %779, ptr noundef %783, ptr noundef %784, ptr noundef %77, ptr noundef %78, ptr noundef %75)
  %785 = load i32, ptr %78, align 4, !tbaa !9
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr %78, align 4, !tbaa !9
  br label %787

787:                                              ; preds = %772, %768
  br label %788

788:                                              ; preds = %787
  %789 = load i32, ptr %94, align 4, !tbaa !9
  %790 = add nsw i32 %789, 1
  store i32 %790, ptr %94, align 4, !tbaa !9
  br label %602, !llvm.loop !16

791:                                              ; preds = %602
  %792 = load ptr, ptr %38, align 8, !tbaa !5
  %793 = load i32, ptr %792, align 4, !tbaa !9
  %794 = icmp eq i32 %793, 0
  br i1 %794, label %795, label %798

795:                                              ; preds = %791
  %796 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  store float 0.000000e+00, ptr %796, align 4, !tbaa !11
  %797 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 1
  store float 0.000000e+00, ptr %797, align 4, !tbaa !15
  br label %798

798:                                              ; preds = %795, %791
  %799 = load ptr, ptr %38, align 8, !tbaa !5
  %800 = load i32, ptr %799, align 4, !tbaa !9
  %801 = load i32, ptr %86, align 4, !tbaa !9
  %802 = icmp slt i32 %800, %801
  br i1 %802, label %803, label %937

803:                                              ; preds = %798
  %804 = load ptr, ptr %38, align 8, !tbaa !5
  %805 = load i32, ptr %804, align 4, !tbaa !9
  store i32 %805, ptr %61, align 4, !tbaa !9
  %806 = load i32, ptr %84, align 4, !tbaa !9
  %807 = add nsw i32 %806, 1
  store i32 %807, ptr %81, align 4, !tbaa !9
  br label %808

808:                                              ; preds = %933, %803
  %809 = load i32, ptr %81, align 4, !tbaa !9
  %810 = load i32, ptr %61, align 4, !tbaa !9
  %811 = icmp sle i32 %809, %810
  br i1 %811, label %812, label %936

812:                                              ; preds = %808
  %813 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %813, ptr %77, align 4, !tbaa !9
  %814 = load ptr, ptr %38, align 8, !tbaa !5
  %815 = load i32, ptr %814, align 4, !tbaa !9
  store i32 %815, ptr %62, align 4, !tbaa !9
  %816 = load i32, ptr %81, align 4, !tbaa !9
  %817 = add nsw i32 %816, 1
  store i32 %817, ptr %82, align 4, !tbaa !9
  br label %818

818:                                              ; preds = %913, %812
  %819 = load i32, ptr %82, align 4, !tbaa !9
  %820 = load i32, ptr %62, align 4, !tbaa !9
  %821 = icmp sle i32 %819, %820
  br i1 %821, label %822, label %916

822:                                              ; preds = %818
  %823 = load i32, ptr %82, align 4, !tbaa !9
  %824 = load i32, ptr %82, align 4, !tbaa !9
  %825 = load i32, ptr %53, align 4, !tbaa !9
  %826 = mul nsw i32 %824, %825
  %827 = add nsw i32 %823, %826
  store i32 %827, ptr %63, align 4, !tbaa !9
  %828 = load i32, ptr %77, align 4, !tbaa !9
  %829 = load i32, ptr %77, align 4, !tbaa !9
  %830 = load i32, ptr %53, align 4, !tbaa !9
  %831 = mul nsw i32 %829, %830
  %832 = add nsw i32 %828, %831
  store i32 %832, ptr %64, align 4, !tbaa !9
  %833 = load ptr, ptr %44, align 8, !tbaa !5
  %834 = load i32, ptr %63, align 4, !tbaa !9
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds %struct.complex, ptr %833, i64 %835
  %837 = getelementptr inbounds %struct.complex, ptr %836, i32 0, i32 0
  %838 = load float, ptr %837, align 4, !tbaa !11
  store float %838, ptr %65, align 4, !tbaa !14
  %839 = load float, ptr %65, align 4, !tbaa !14
  %840 = fcmp oge float %839, 0.000000e+00
  br i1 %840, label %841, label %843

841:                                              ; preds = %822
  %842 = load float, ptr %65, align 4, !tbaa !14
  br label %846

843:                                              ; preds = %822
  %844 = load float, ptr %65, align 4, !tbaa !14
  %845 = fneg float %844
  br label %846

846:                                              ; preds = %843, %841
  %847 = phi float [ %842, %841 ], [ %845, %843 ]
  %848 = load ptr, ptr %44, align 8, !tbaa !5
  %849 = load i32, ptr %82, align 4, !tbaa !9
  %850 = load i32, ptr %82, align 4, !tbaa !9
  %851 = load i32, ptr %53, align 4, !tbaa !9
  %852 = mul nsw i32 %850, %851
  %853 = add nsw i32 %849, %852
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds %struct.complex, ptr %848, i64 %854
  %856 = call <2 x float> @Cf(ptr noundef %855)
  store <2 x float> %856, ptr %106, align 4
  %857 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 0
  %858 = load float, ptr %857, align 4
  %859 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 1
  %860 = load float, ptr %859, align 4
  store float %860, ptr %66, align 4, !tbaa !14
  %861 = load float, ptr %66, align 4, !tbaa !14
  %862 = fcmp oge float %861, 0.000000e+00
  br i1 %862, label %863, label %865

863:                                              ; preds = %846
  %864 = load float, ptr %66, align 4, !tbaa !14
  br label %868

865:                                              ; preds = %846
  %866 = load float, ptr %66, align 4, !tbaa !14
  %867 = fneg float %866
  br label %868

868:                                              ; preds = %865, %863
  %869 = phi float [ %864, %863 ], [ %867, %865 ]
  %870 = fadd float %847, %869
  %871 = load ptr, ptr %44, align 8, !tbaa !5
  %872 = load i32, ptr %64, align 4, !tbaa !9
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds %struct.complex, ptr %871, i64 %873
  %875 = getelementptr inbounds %struct.complex, ptr %874, i32 0, i32 0
  %876 = load float, ptr %875, align 4, !tbaa !11
  store float %876, ptr %67, align 4, !tbaa !14
  %877 = load float, ptr %67, align 4, !tbaa !14
  %878 = fcmp oge float %877, 0.000000e+00
  br i1 %878, label %879, label %881

879:                                              ; preds = %868
  %880 = load float, ptr %67, align 4, !tbaa !14
  br label %884

881:                                              ; preds = %868
  %882 = load float, ptr %67, align 4, !tbaa !14
  %883 = fneg float %882
  br label %884

884:                                              ; preds = %881, %879
  %885 = phi float [ %880, %879 ], [ %883, %881 ]
  %886 = load ptr, ptr %44, align 8, !tbaa !5
  %887 = load i32, ptr %77, align 4, !tbaa !9
  %888 = load i32, ptr %77, align 4, !tbaa !9
  %889 = load i32, ptr %53, align 4, !tbaa !9
  %890 = mul nsw i32 %888, %889
  %891 = add nsw i32 %887, %890
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds %struct.complex, ptr %886, i64 %892
  %894 = call <2 x float> @Cf(ptr noundef %893)
  store <2 x float> %894, ptr %107, align 4
  %895 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 0
  %896 = load float, ptr %895, align 4
  %897 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 1
  %898 = load float, ptr %897, align 4
  store float %898, ptr %68, align 4, !tbaa !14
  %899 = load float, ptr %68, align 4, !tbaa !14
  %900 = fcmp oge float %899, 0.000000e+00
  br i1 %900, label %901, label %903

901:                                              ; preds = %884
  %902 = load float, ptr %68, align 4, !tbaa !14
  br label %906

903:                                              ; preds = %884
  %904 = load float, ptr %68, align 4, !tbaa !14
  %905 = fneg float %904
  br label %906

906:                                              ; preds = %903, %901
  %907 = phi float [ %902, %901 ], [ %905, %903 ]
  %908 = fadd float %885, %907
  %909 = fcmp ogt float %870, %908
  br i1 %909, label %910, label %912

910:                                              ; preds = %906
  %911 = load i32, ptr %82, align 4, !tbaa !9
  store i32 %911, ptr %77, align 4, !tbaa !9
  br label %912

912:                                              ; preds = %910, %906
  br label %913

913:                                              ; preds = %912
  %914 = load i32, ptr %82, align 4, !tbaa !9
  %915 = add nsw i32 %914, 1
  store i32 %915, ptr %82, align 4, !tbaa !9
  br label %818, !llvm.loop !18

916:                                              ; preds = %818
  %917 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %917, ptr %78, align 4, !tbaa !9
  %918 = load i32, ptr %77, align 4, !tbaa !9
  %919 = load i32, ptr %78, align 4, !tbaa !9
  %920 = icmp ne i32 %918, %919
  br i1 %920, label %921, label %932

921:                                              ; preds = %916
  %922 = load ptr, ptr %44, align 8, !tbaa !5
  %923 = load i32, ptr %54, align 4, !tbaa !9
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds %struct.complex, ptr %922, i64 %924
  %926 = load ptr, ptr %45, align 8, !tbaa !5
  %927 = load ptr, ptr %41, align 8, !tbaa !5
  %928 = load i32, ptr %56, align 4, !tbaa !9
  %929 = sext i32 %928 to i64
  %930 = getelementptr inbounds %struct.complex, ptr %927, i64 %929
  %931 = load ptr, ptr %42, align 8, !tbaa !5
  call void @ctrexc_(ptr noundef @.str.8, ptr noundef %86, ptr noundef %925, ptr noundef %926, ptr noundef %930, ptr noundef %931, ptr noundef %77, ptr noundef %78, ptr noundef %75)
  br label %932

932:                                              ; preds = %921, %916
  br label %933

933:                                              ; preds = %932
  %934 = load i32, ptr %81, align 4, !tbaa !9
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr %81, align 4, !tbaa !9
  br label %808, !llvm.loop !19

936:                                              ; preds = %808
  br label %937

937:                                              ; preds = %936, %798
  %938 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %938, ptr %61, align 4, !tbaa !9
  %939 = load i32, ptr %84, align 4, !tbaa !9
  %940 = add nsw i32 %939, 1
  store i32 %940, ptr %81, align 4, !tbaa !9
  br label %941

941:                                              ; preds = %977, %937
  %942 = load i32, ptr %81, align 4, !tbaa !9
  %943 = load i32, ptr %61, align 4, !tbaa !9
  %944 = icmp sle i32 %942, %943
  br i1 %944, label %945, label %980

945:                                              ; preds = %941
  %946 = load i32, ptr %85, align 4, !tbaa !9
  %947 = load i32, ptr %81, align 4, !tbaa !9
  %948 = add nsw i32 %946, %947
  %949 = sub nsw i32 %948, 1
  store i32 %949, ptr %62, align 4, !tbaa !9
  %950 = load i32, ptr %81, align 4, !tbaa !9
  %951 = load i32, ptr %81, align 4, !tbaa !9
  %952 = load i32, ptr %53, align 4, !tbaa !9
  %953 = mul nsw i32 %951, %952
  %954 = add nsw i32 %950, %953
  store i32 %954, ptr %63, align 4, !tbaa !9
  %955 = load ptr, ptr %44, align 8, !tbaa !5
  %956 = load i32, ptr %63, align 4, !tbaa !9
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds %struct.complex, ptr %955, i64 %957
  %959 = getelementptr inbounds %struct.complex, ptr %958, i32 0, i32 0
  %960 = load float, ptr %959, align 4, !tbaa !11
  %961 = load ptr, ptr %40, align 8, !tbaa !5
  %962 = load i32, ptr %62, align 4, !tbaa !9
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds %struct.complex, ptr %961, i64 %963
  %965 = getelementptr inbounds %struct.complex, ptr %964, i32 0, i32 0
  store float %960, ptr %965, align 4, !tbaa !11
  %966 = load ptr, ptr %44, align 8, !tbaa !5
  %967 = load i32, ptr %63, align 4, !tbaa !9
  %968 = sext i32 %967 to i64
  %969 = getelementptr inbounds %struct.complex, ptr %966, i64 %968
  %970 = getelementptr inbounds %struct.complex, ptr %969, i32 0, i32 1
  %971 = load float, ptr %970, align 4, !tbaa !15
  %972 = load ptr, ptr %40, align 8, !tbaa !5
  %973 = load i32, ptr %62, align 4, !tbaa !9
  %974 = sext i32 %973 to i64
  %975 = getelementptr inbounds %struct.complex, ptr %972, i64 %974
  %976 = getelementptr inbounds %struct.complex, ptr %975, i32 0, i32 1
  store float %971, ptr %976, align 4, !tbaa !15
  br label %977

977:                                              ; preds = %945
  %978 = load i32, ptr %81, align 4, !tbaa !9
  %979 = add nsw i32 %978, 1
  store i32 %979, ptr %81, align 4, !tbaa !9
  br label %941, !llvm.loop !20

980:                                              ; preds = %941
  %981 = load ptr, ptr %38, align 8, !tbaa !5
  %982 = load i32, ptr %981, align 4, !tbaa !9
  %983 = load i32, ptr %86, align 4, !tbaa !9
  %984 = icmp slt i32 %982, %983
  br i1 %984, label %993, label %985

985:                                              ; preds = %980
  %986 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  %987 = load float, ptr %986, align 4, !tbaa !11
  %988 = fcmp oeq float %987, 0.000000e+00
  br i1 %988, label %989, label %1529

989:                                              ; preds = %985
  %990 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 1
  %991 = load float, ptr %990, align 4, !tbaa !15
  %992 = fcmp oeq float %991, 0.000000e+00
  br i1 %992, label %993, label %1529

993:                                              ; preds = %989, %980
  %994 = load ptr, ptr %38, align 8, !tbaa !5
  %995 = load i32, ptr %994, align 4, !tbaa !9
  %996 = icmp sgt i32 %995, 1
  br i1 %996, label %997, label %1148

997:                                              ; preds = %993
  %998 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  %999 = load float, ptr %998, align 4, !tbaa !11
  %1000 = fcmp une float %999, 0.000000e+00
  br i1 %1000, label %1005, label %1001

1001:                                             ; preds = %997
  %1002 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 1
  %1003 = load float, ptr %1002, align 4, !tbaa !15
  %1004 = fcmp une float %1003, 0.000000e+00
  br i1 %1004, label %1005, label %1148

1005:                                             ; preds = %1001, %997
  %1006 = load ptr, ptr %38, align 8, !tbaa !5
  %1007 = load ptr, ptr %41, align 8, !tbaa !5
  %1008 = load i32, ptr %56, align 4, !tbaa !9
  %1009 = sext i32 %1008 to i64
  %1010 = getelementptr inbounds %struct.complex, ptr %1007, i64 %1009
  %1011 = load ptr, ptr %42, align 8, !tbaa !5
  %1012 = load ptr, ptr %49, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.complex, ptr %1012, i64 1
  call void @ccopy_(ptr noundef %1006, ptr noundef %1010, ptr noundef %1011, ptr noundef %1013, ptr noundef @c__1)
  %1014 = load ptr, ptr %38, align 8, !tbaa !5
  %1015 = load i32, ptr %1014, align 4, !tbaa !9
  store i32 %1015, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %81, align 4, !tbaa !9
  br label %1016

1016:                                             ; preds = %1049, %1005
  %1017 = load i32, ptr %81, align 4, !tbaa !9
  %1018 = load i32, ptr %61, align 4, !tbaa !9
  %1019 = icmp sle i32 %1017, %1018
  br i1 %1019, label %1020, label %1052

1020:                                             ; preds = %1016
  %1021 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %1021, ptr %62, align 4, !tbaa !9
  %1022 = load ptr, ptr %49, align 8, !tbaa !5
  %1023 = load i32, ptr %81, align 4, !tbaa !9
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds %struct.complex, ptr %1022, i64 %1024
  %1026 = call <2 x float> @Cf(ptr noundef %1025)
  store <2 x float> %1026, ptr %108, align 4
  %1027 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 0
  %1028 = load float, ptr %1027, align 4
  %1029 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 1
  %1030 = load float, ptr %1029, align 4
  %1031 = fneg float %1030
  %1032 = call ptr @_pCf(ptr noundef %71)
  %1033 = getelementptr inbounds { float, float }, ptr %1032, i32 0, i32 0
  %1034 = getelementptr inbounds { float, float }, ptr %1032, i32 0, i32 1
  store float %1028, ptr %1033, align 4
  store float %1031, ptr %1034, align 4
  %1035 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1036 = load float, ptr %1035, align 4, !tbaa !11
  %1037 = load ptr, ptr %49, align 8, !tbaa !5
  %1038 = load i32, ptr %62, align 4, !tbaa !9
  %1039 = sext i32 %1038 to i64
  %1040 = getelementptr inbounds %struct.complex, ptr %1037, i64 %1039
  %1041 = getelementptr inbounds %struct.complex, ptr %1040, i32 0, i32 0
  store float %1036, ptr %1041, align 4, !tbaa !11
  %1042 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1043 = load float, ptr %1042, align 4, !tbaa !15
  %1044 = load ptr, ptr %49, align 8, !tbaa !5
  %1045 = load i32, ptr %62, align 4, !tbaa !9
  %1046 = sext i32 %1045 to i64
  %1047 = getelementptr inbounds %struct.complex, ptr %1044, i64 %1046
  %1048 = getelementptr inbounds %struct.complex, ptr %1047, i32 0, i32 1
  store float %1043, ptr %1048, align 4, !tbaa !15
  br label %1049

1049:                                             ; preds = %1020
  %1050 = load i32, ptr %81, align 4, !tbaa !9
  %1051 = add nsw i32 %1050, 1
  store i32 %1051, ptr %81, align 4, !tbaa !9
  br label %1016, !llvm.loop !21

1052:                                             ; preds = %1016
  %1053 = load ptr, ptr %49, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.complex, ptr %1053, i64 1
  %1055 = getelementptr inbounds %struct.complex, ptr %1054, i32 0, i32 0
  %1056 = load float, ptr %1055, align 4, !tbaa !11
  %1057 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 0
  store float %1056, ptr %1057, align 4, !tbaa !11
  %1058 = load ptr, ptr %49, align 8, !tbaa !5
  %1059 = getelementptr inbounds %struct.complex, ptr %1058, i64 1
  %1060 = getelementptr inbounds %struct.complex, ptr %1059, i32 0, i32 1
  %1061 = load float, ptr %1060, align 4, !tbaa !15
  %1062 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 1
  store float %1061, ptr %1062, align 4, !tbaa !15
  %1063 = load ptr, ptr %38, align 8, !tbaa !5
  %1064 = load ptr, ptr %49, align 8, !tbaa !5
  %1065 = getelementptr inbounds %struct.complex, ptr %1064, i64 2
  call void @clarfg_(ptr noundef %1063, ptr noundef %73, ptr noundef %1065, ptr noundef @c__1, ptr noundef %93)
  %1066 = load ptr, ptr %49, align 8, !tbaa !5
  %1067 = getelementptr inbounds %struct.complex, ptr %1066, i64 1
  %1068 = getelementptr inbounds %struct.complex, ptr %1067, i32 0, i32 0
  store float 1.000000e+00, ptr %1068, align 4, !tbaa !11
  %1069 = load ptr, ptr %49, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.complex, ptr %1069, i64 1
  %1071 = getelementptr inbounds %struct.complex, ptr %1070, i32 0, i32 1
  store float 0.000000e+00, ptr %1071, align 4, !tbaa !15
  %1072 = load i32, ptr %86, align 4, !tbaa !9
  %1073 = sub nsw i32 %1072, 2
  store i32 %1073, ptr %61, align 4, !tbaa !9
  %1074 = load i32, ptr %86, align 4, !tbaa !9
  %1075 = sub nsw i32 %1074, 2
  store i32 %1075, ptr %62, align 4, !tbaa !9
  %1076 = load ptr, ptr %44, align 8, !tbaa !5
  %1077 = load i32, ptr %53, align 4, !tbaa !9
  %1078 = add nsw i32 %1077, 3
  %1079 = sext i32 %1078 to i64
  %1080 = getelementptr inbounds %struct.complex, ptr %1076, i64 %1079
  %1081 = load ptr, ptr %45, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.9, ptr noundef %61, ptr noundef %62, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %1080, ptr noundef %1081)
  %1082 = call <2 x float> @Cf(ptr noundef %93)
  store <2 x float> %1082, ptr %109, align 4
  %1083 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 0
  %1084 = load float, ptr %1083, align 4
  %1085 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 1
  %1086 = load float, ptr %1085, align 4
  %1087 = fneg float %1086
  %1088 = call ptr @_pCf(ptr noundef %71)
  %1089 = getelementptr inbounds { float, float }, ptr %1088, i32 0, i32 0
  %1090 = getelementptr inbounds { float, float }, ptr %1088, i32 0, i32 1
  store float %1084, ptr %1089, align 4
  store float %1087, ptr %1090, align 4
  %1091 = load ptr, ptr %38, align 8, !tbaa !5
  %1092 = load ptr, ptr %49, align 8, !tbaa !5
  %1093 = getelementptr inbounds %struct.complex, ptr %1092, i64 1
  %1094 = load ptr, ptr %44, align 8, !tbaa !5
  %1095 = load i32, ptr %54, align 4, !tbaa !9
  %1096 = sext i32 %1095 to i64
  %1097 = getelementptr inbounds %struct.complex, ptr %1094, i64 %1096
  %1098 = load ptr, ptr %45, align 8, !tbaa !5
  %1099 = load ptr, ptr %49, align 8, !tbaa !5
  %1100 = load i32, ptr %86, align 4, !tbaa !9
  %1101 = add nsw i32 %1100, 1
  %1102 = sext i32 %1101 to i64
  %1103 = getelementptr inbounds %struct.complex, ptr %1099, i64 %1102
  call void @clarf_(ptr noundef @.str.9, ptr noundef %1091, ptr noundef %86, ptr noundef %1093, ptr noundef @c__1, ptr noundef %71, ptr noundef %1097, ptr noundef %1098, ptr noundef %1103)
  %1104 = load ptr, ptr %38, align 8, !tbaa !5
  %1105 = load ptr, ptr %38, align 8, !tbaa !5
  %1106 = load ptr, ptr %49, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.complex, ptr %1106, i64 1
  %1108 = load ptr, ptr %44, align 8, !tbaa !5
  %1109 = load i32, ptr %54, align 4, !tbaa !9
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds %struct.complex, ptr %1108, i64 %1110
  %1112 = load ptr, ptr %45, align 8, !tbaa !5
  %1113 = load ptr, ptr %49, align 8, !tbaa !5
  %1114 = load i32, ptr %86, align 4, !tbaa !9
  %1115 = add nsw i32 %1114, 1
  %1116 = sext i32 %1115 to i64
  %1117 = getelementptr inbounds %struct.complex, ptr %1113, i64 %1116
  call void @clarf_(ptr noundef @.str, ptr noundef %1104, ptr noundef %1105, ptr noundef %1107, ptr noundef @c__1, ptr noundef %93, ptr noundef %1111, ptr noundef %1112, ptr noundef %1117)
  %1118 = load ptr, ptr %38, align 8, !tbaa !5
  %1119 = load ptr, ptr %49, align 8, !tbaa !5
  %1120 = getelementptr inbounds %struct.complex, ptr %1119, i64 1
  %1121 = load ptr, ptr %41, align 8, !tbaa !5
  %1122 = load i32, ptr %56, align 4, !tbaa !9
  %1123 = sext i32 %1122 to i64
  %1124 = getelementptr inbounds %struct.complex, ptr %1121, i64 %1123
  %1125 = load ptr, ptr %42, align 8, !tbaa !5
  %1126 = load ptr, ptr %49, align 8, !tbaa !5
  %1127 = load i32, ptr %86, align 4, !tbaa !9
  %1128 = add nsw i32 %1127, 1
  %1129 = sext i32 %1128 to i64
  %1130 = getelementptr inbounds %struct.complex, ptr %1126, i64 %1129
  call void @clarf_(ptr noundef @.str, ptr noundef %86, ptr noundef %1118, ptr noundef %1120, ptr noundef @c__1, ptr noundef %93, ptr noundef %1124, ptr noundef %1125, ptr noundef %1130)
  %1131 = load ptr, ptr %50, align 8, !tbaa !5
  %1132 = load i32, ptr %1131, align 4, !tbaa !9
  %1133 = load i32, ptr %86, align 4, !tbaa !9
  %1134 = sub nsw i32 %1132, %1133
  store i32 %1134, ptr %61, align 4, !tbaa !9
  %1135 = load ptr, ptr %38, align 8, !tbaa !5
  %1136 = load ptr, ptr %44, align 8, !tbaa !5
  %1137 = load i32, ptr %54, align 4, !tbaa !9
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds %struct.complex, ptr %1136, i64 %1138
  %1140 = load ptr, ptr %45, align 8, !tbaa !5
  %1141 = load ptr, ptr %49, align 8, !tbaa !5
  %1142 = getelementptr inbounds %struct.complex, ptr %1141, i64 1
  %1143 = load ptr, ptr %49, align 8, !tbaa !5
  %1144 = load i32, ptr %86, align 4, !tbaa !9
  %1145 = add nsw i32 %1144, 1
  %1146 = sext i32 %1145 to i64
  %1147 = getelementptr inbounds %struct.complex, ptr %1143, i64 %1146
  call void @cgehrd_(ptr noundef %86, ptr noundef @c__1, ptr noundef %1135, ptr noundef %1139, ptr noundef %1140, ptr noundef %1142, ptr noundef %1147, ptr noundef %61, ptr noundef %75)
  br label %1148

1148:                                             ; preds = %1052, %1001, %993
  %1149 = load i32, ptr %85, align 4, !tbaa !9
  %1150 = icmp sgt i32 %1149, 1
  br i1 %1150, label %1151, label %1209

1151:                                             ; preds = %1148
  %1152 = load i32, ptr %85, align 4, !tbaa !9
  %1153 = load i32, ptr %85, align 4, !tbaa !9
  %1154 = sub nsw i32 %1153, 1
  %1155 = load i32, ptr %51, align 4, !tbaa !9
  %1156 = mul nsw i32 %1154, %1155
  %1157 = add nsw i32 %1152, %1156
  store i32 %1157, ptr %61, align 4, !tbaa !9
  %1158 = load ptr, ptr %41, align 8, !tbaa !5
  %1159 = load i32, ptr %55, align 4, !tbaa !9
  %1160 = add nsw i32 %1159, 1
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds %struct.complex, ptr %1158, i64 %1161
  %1163 = call <2 x float> @Cf(ptr noundef %1162)
  store <2 x float> %1163, ptr %110, align 4
  %1164 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 0
  %1165 = load float, ptr %1164, align 4
  %1166 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 1
  %1167 = load float, ptr %1166, align 4
  %1168 = fneg float %1167
  %1169 = call ptr @_pCf(ptr noundef %72)
  %1170 = getelementptr inbounds { float, float }, ptr %1169, i32 0, i32 0
  %1171 = getelementptr inbounds { float, float }, ptr %1169, i32 0, i32 1
  store float %1165, ptr %1170, align 4
  store float %1168, ptr %1171, align 4
  %1172 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  %1173 = load float, ptr %1172, align 4, !tbaa !11
  %1174 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1175 = load float, ptr %1174, align 4, !tbaa !11
  %1176 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 1
  %1177 = load float, ptr %1176, align 4, !tbaa !15
  %1178 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1179 = load float, ptr %1178, align 4, !tbaa !15
  %1180 = fmul float %1177, %1179
  %1181 = fneg float %1180
  %1182 = call float @llvm.fmuladd.f32(float %1173, float %1175, float %1181)
  %1183 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %1182, ptr %1183, align 4, !tbaa !11
  %1184 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  %1185 = load float, ptr %1184, align 4, !tbaa !11
  %1186 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 1
  %1187 = load float, ptr %1186, align 4, !tbaa !15
  %1188 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 1
  %1189 = load float, ptr %1188, align 4, !tbaa !15
  %1190 = getelementptr inbounds %struct.complex, ptr %72, i32 0, i32 0
  %1191 = load float, ptr %1190, align 4, !tbaa !11
  %1192 = fmul float %1189, %1191
  %1193 = call float @llvm.fmuladd.f32(float %1185, float %1187, float %1192)
  %1194 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %1193, ptr %1194, align 4, !tbaa !15
  %1195 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1196 = load float, ptr %1195, align 4, !tbaa !11
  %1197 = load ptr, ptr %32, align 8, !tbaa !5
  %1198 = load i32, ptr %61, align 4, !tbaa !9
  %1199 = sext i32 %1198 to i64
  %1200 = getelementptr inbounds %struct.complex, ptr %1197, i64 %1199
  %1201 = getelementptr inbounds %struct.complex, ptr %1200, i32 0, i32 0
  store float %1196, ptr %1201, align 4, !tbaa !11
  %1202 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1203 = load float, ptr %1202, align 4, !tbaa !15
  %1204 = load ptr, ptr %32, align 8, !tbaa !5
  %1205 = load i32, ptr %61, align 4, !tbaa !9
  %1206 = sext i32 %1205 to i64
  %1207 = getelementptr inbounds %struct.complex, ptr %1204, i64 %1206
  %1208 = getelementptr inbounds %struct.complex, ptr %1207, i32 0, i32 1
  store float %1203, ptr %1208, align 4, !tbaa !15
  br label %1209

1209:                                             ; preds = %1151, %1148
  %1210 = load ptr, ptr %44, align 8, !tbaa !5
  %1211 = load i32, ptr %54, align 4, !tbaa !9
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds %struct.complex, ptr %1210, i64 %1212
  %1214 = load ptr, ptr %45, align 8, !tbaa !5
  %1215 = load ptr, ptr %32, align 8, !tbaa !5
  %1216 = load i32, ptr %85, align 4, !tbaa !9
  %1217 = load i32, ptr %85, align 4, !tbaa !9
  %1218 = load i32, ptr %51, align 4, !tbaa !9
  %1219 = mul nsw i32 %1217, %1218
  %1220 = add nsw i32 %1216, %1219
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds %struct.complex, ptr %1215, i64 %1221
  %1223 = load ptr, ptr %33, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.4, ptr noundef %86, ptr noundef %86, ptr noundef %1213, ptr noundef %1214, ptr noundef %1222, ptr noundef %1223)
  %1224 = load i32, ptr %86, align 4, !tbaa !9
  %1225 = sub nsw i32 %1224, 1
  store i32 %1225, ptr %61, align 4, !tbaa !9
  %1226 = load ptr, ptr %45, align 8, !tbaa !5
  %1227 = load i32, ptr %1226, align 4, !tbaa !9
  %1228 = add nsw i32 %1227, 1
  store i32 %1228, ptr %62, align 4, !tbaa !9
  %1229 = load ptr, ptr %33, align 8, !tbaa !5
  %1230 = load i32, ptr %1229, align 4, !tbaa !9
  %1231 = add nsw i32 %1230, 1
  store i32 %1231, ptr %63, align 4, !tbaa !9
  %1232 = load ptr, ptr %44, align 8, !tbaa !5
  %1233 = load i32, ptr %53, align 4, !tbaa !9
  %1234 = add nsw i32 %1233, 2
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds %struct.complex, ptr %1232, i64 %1235
  %1237 = load ptr, ptr %32, align 8, !tbaa !5
  %1238 = load i32, ptr %85, align 4, !tbaa !9
  %1239 = add nsw i32 %1238, 1
  %1240 = load i32, ptr %85, align 4, !tbaa !9
  %1241 = load i32, ptr %51, align 4, !tbaa !9
  %1242 = mul nsw i32 %1240, %1241
  %1243 = add nsw i32 %1239, %1242
  %1244 = sext i32 %1243 to i64
  %1245 = getelementptr inbounds %struct.complex, ptr %1237, i64 %1244
  call void @ccopy_(ptr noundef %61, ptr noundef %1236, ptr noundef %62, ptr noundef %1245, ptr noundef %63)
  %1246 = load ptr, ptr %38, align 8, !tbaa !5
  %1247 = load i32, ptr %1246, align 4, !tbaa !9
  %1248 = icmp sgt i32 %1247, 1
  br i1 %1248, label %1249, label %1281

1249:                                             ; preds = %1209
  %1250 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 0
  %1251 = load float, ptr %1250, align 4, !tbaa !11
  %1252 = fcmp une float %1251, 0.000000e+00
  br i1 %1252, label %1257, label %1253

1253:                                             ; preds = %1249
  %1254 = getelementptr inbounds %struct.complex, ptr %83, i32 0, i32 1
  %1255 = load float, ptr %1254, align 4, !tbaa !15
  %1256 = fcmp une float %1255, 0.000000e+00
  br i1 %1256, label %1257, label %1281

1257:                                             ; preds = %1253, %1249
  %1258 = load ptr, ptr %50, align 8, !tbaa !5
  %1259 = load i32, ptr %1258, align 4, !tbaa !9
  %1260 = load i32, ptr %86, align 4, !tbaa !9
  %1261 = sub nsw i32 %1259, %1260
  store i32 %1261, ptr %61, align 4, !tbaa !9
  %1262 = load ptr, ptr %38, align 8, !tbaa !5
  %1263 = load ptr, ptr %38, align 8, !tbaa !5
  %1264 = load ptr, ptr %44, align 8, !tbaa !5
  %1265 = load i32, ptr %54, align 4, !tbaa !9
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds %struct.complex, ptr %1264, i64 %1266
  %1268 = load ptr, ptr %45, align 8, !tbaa !5
  %1269 = load ptr, ptr %49, align 8, !tbaa !5
  %1270 = getelementptr inbounds %struct.complex, ptr %1269, i64 1
  %1271 = load ptr, ptr %41, align 8, !tbaa !5
  %1272 = load i32, ptr %56, align 4, !tbaa !9
  %1273 = sext i32 %1272 to i64
  %1274 = getelementptr inbounds %struct.complex, ptr %1271, i64 %1273
  %1275 = load ptr, ptr %42, align 8, !tbaa !5
  %1276 = load ptr, ptr %49, align 8, !tbaa !5
  %1277 = load i32, ptr %86, align 4, !tbaa !9
  %1278 = add nsw i32 %1277, 1
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds %struct.complex, ptr %1276, i64 %1279
  call void @cunmhr_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %86, ptr noundef %1262, ptr noundef @c__1, ptr noundef %1263, ptr noundef %1267, ptr noundef %1268, ptr noundef %1270, ptr noundef %1274, ptr noundef %1275, ptr noundef %1280, ptr noundef %61, ptr noundef %75)
  br label %1281

1281:                                             ; preds = %1257, %1253, %1209
  %1282 = load ptr, ptr %26, align 8, !tbaa !5
  %1283 = load i32, ptr %1282, align 4, !tbaa !9
  %1284 = icmp ne i32 %1283, 0
  br i1 %1284, label %1285, label %1286

1285:                                             ; preds = %1281
  store i32 1, ptr %79, align 4, !tbaa !9
  br label %1289

1286:                                             ; preds = %1281
  %1287 = load ptr, ptr %29, align 8, !tbaa !5
  %1288 = load i32, ptr %1287, align 4, !tbaa !9
  store i32 %1288, ptr %79, align 4, !tbaa !9
  br label %1289

1289:                                             ; preds = %1286, %1285
  %1290 = load i32, ptr %85, align 4, !tbaa !9
  %1291 = sub nsw i32 %1290, 1
  store i32 %1291, ptr %61, align 4, !tbaa !9
  %1292 = load ptr, ptr %46, align 8, !tbaa !5
  %1293 = load i32, ptr %1292, align 4, !tbaa !9
  store i32 %1293, ptr %62, align 4, !tbaa !9
  %1294 = load i32, ptr %79, align 4, !tbaa !9
  store i32 %1294, ptr %80, align 4, !tbaa !9
  br label %1295

1295:                                             ; preds = %1359, %1289
  %1296 = load i32, ptr %62, align 4, !tbaa !9
  %1297 = icmp slt i32 %1296, 0
  br i1 %1297, label %1298, label %1303

1298:                                             ; preds = %1295
  %1299 = load i32, ptr %80, align 4, !tbaa !9
  %1300 = load i32, ptr %61, align 4, !tbaa !9
  %1301 = icmp sge i32 %1299, %1300
  %1302 = zext i1 %1301 to i32
  br label %1308

1303:                                             ; preds = %1295
  %1304 = load i32, ptr %80, align 4, !tbaa !9
  %1305 = load i32, ptr %61, align 4, !tbaa !9
  %1306 = icmp sle i32 %1304, %1305
  %1307 = zext i1 %1306 to i32
  br label %1308

1308:                                             ; preds = %1303, %1298
  %1309 = phi i32 [ %1302, %1298 ], [ %1307, %1303 ]
  %1310 = icmp ne i32 %1309, 0
  br i1 %1310, label %1311, label %1363

1311:                                             ; preds = %1308
  %1312 = load ptr, ptr %46, align 8, !tbaa !5
  %1313 = load i32, ptr %1312, align 4, !tbaa !9
  store i32 %1313, ptr %63, align 4, !tbaa !9
  %1314 = load i32, ptr %85, align 4, !tbaa !9
  %1315 = load i32, ptr %80, align 4, !tbaa !9
  %1316 = sub nsw i32 %1314, %1315
  store i32 %1316, ptr %64, align 4, !tbaa !9
  %1317 = load i32, ptr %63, align 4, !tbaa !9
  %1318 = load i32, ptr %64, align 4, !tbaa !9
  %1319 = icmp sle i32 %1317, %1318
  br i1 %1319, label %1320, label %1322

1320:                                             ; preds = %1311
  %1321 = load i32, ptr %63, align 4, !tbaa !9
  br label %1324

1322:                                             ; preds = %1311
  %1323 = load i32, ptr %64, align 4, !tbaa !9
  br label %1324

1324:                                             ; preds = %1322, %1320
  %1325 = phi i32 [ %1321, %1320 ], [ %1323, %1322 ]
  store i32 %1325, ptr %92, align 4, !tbaa !9
  %1326 = load ptr, ptr %32, align 8, !tbaa !5
  %1327 = load i32, ptr %80, align 4, !tbaa !9
  %1328 = load i32, ptr %85, align 4, !tbaa !9
  %1329 = load i32, ptr %51, align 4, !tbaa !9
  %1330 = mul nsw i32 %1328, %1329
  %1331 = add nsw i32 %1327, %1330
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds %struct.complex, ptr %1326, i64 %1332
  %1334 = load ptr, ptr %33, align 8, !tbaa !5
  %1335 = load ptr, ptr %41, align 8, !tbaa !5
  %1336 = load i32, ptr %56, align 4, !tbaa !9
  %1337 = sext i32 %1336 to i64
  %1338 = getelementptr inbounds %struct.complex, ptr %1335, i64 %1337
  %1339 = load ptr, ptr %42, align 8, !tbaa !5
  %1340 = load ptr, ptr %47, align 8, !tbaa !5
  %1341 = load i32, ptr %58, align 4, !tbaa !9
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr inbounds %struct.complex, ptr %1340, i64 %1342
  %1344 = load ptr, ptr %48, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str.1, ptr noundef @.str.1, ptr noundef %92, ptr noundef %86, ptr noundef %86, ptr noundef @c_b2, ptr noundef %1333, ptr noundef %1334, ptr noundef %1338, ptr noundef %1339, ptr noundef @c_b1, ptr noundef %1343, ptr noundef %1344)
  %1345 = load ptr, ptr %47, align 8, !tbaa !5
  %1346 = load i32, ptr %58, align 4, !tbaa !9
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds %struct.complex, ptr %1345, i64 %1347
  %1349 = load ptr, ptr %48, align 8, !tbaa !5
  %1350 = load ptr, ptr %32, align 8, !tbaa !5
  %1351 = load i32, ptr %80, align 4, !tbaa !9
  %1352 = load i32, ptr %85, align 4, !tbaa !9
  %1353 = load i32, ptr %51, align 4, !tbaa !9
  %1354 = mul nsw i32 %1352, %1353
  %1355 = add nsw i32 %1351, %1354
  %1356 = sext i32 %1355 to i64
  %1357 = getelementptr inbounds %struct.complex, ptr %1350, i64 %1356
  %1358 = load ptr, ptr %33, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.5, ptr noundef %92, ptr noundef %86, ptr noundef %1348, ptr noundef %1349, ptr noundef %1357, ptr noundef %1358)
  br label %1359

1359:                                             ; preds = %1324
  %1360 = load i32, ptr %62, align 4, !tbaa !9
  %1361 = load i32, ptr %80, align 4, !tbaa !9
  %1362 = add nsw i32 %1361, %1360
  store i32 %1362, ptr %80, align 4, !tbaa !9
  br label %1295, !llvm.loop !22

1363:                                             ; preds = %1308
  %1364 = load ptr, ptr %26, align 8, !tbaa !5
  %1365 = load i32, ptr %1364, align 4, !tbaa !9
  %1366 = icmp ne i32 %1365, 0
  br i1 %1366, label %1367, label %1446

1367:                                             ; preds = %1363
  %1368 = load ptr, ptr %28, align 8, !tbaa !5
  %1369 = load i32, ptr %1368, align 4, !tbaa !9
  store i32 %1369, ptr %62, align 4, !tbaa !9
  %1370 = load ptr, ptr %43, align 8, !tbaa !5
  %1371 = load i32, ptr %1370, align 4, !tbaa !9
  store i32 %1371, ptr %61, align 4, !tbaa !9
  %1372 = load ptr, ptr %30, align 8, !tbaa !5
  %1373 = load i32, ptr %1372, align 4, !tbaa !9
  %1374 = add nsw i32 %1373, 1
  store i32 %1374, ptr %74, align 4, !tbaa !9
  br label %1375

1375:                                             ; preds = %1441, %1367
  %1376 = load i32, ptr %61, align 4, !tbaa !9
  %1377 = icmp slt i32 %1376, 0
  br i1 %1377, label %1378, label %1383

1378:                                             ; preds = %1375
  %1379 = load i32, ptr %74, align 4, !tbaa !9
  %1380 = load i32, ptr %62, align 4, !tbaa !9
  %1381 = icmp sge i32 %1379, %1380
  %1382 = zext i1 %1381 to i32
  br label %1388

1383:                                             ; preds = %1375
  %1384 = load i32, ptr %74, align 4, !tbaa !9
  %1385 = load i32, ptr %62, align 4, !tbaa !9
  %1386 = icmp sle i32 %1384, %1385
  %1387 = zext i1 %1386 to i32
  br label %1388

1388:                                             ; preds = %1383, %1378
  %1389 = phi i32 [ %1382, %1378 ], [ %1387, %1383 ]
  %1390 = icmp ne i32 %1389, 0
  br i1 %1390, label %1391, label %1445

1391:                                             ; preds = %1388
  %1392 = load ptr, ptr %43, align 8, !tbaa !5
  %1393 = load i32, ptr %1392, align 4, !tbaa !9
  store i32 %1393, ptr %63, align 4, !tbaa !9
  %1394 = load ptr, ptr %28, align 8, !tbaa !5
  %1395 = load i32, ptr %1394, align 4, !tbaa !9
  %1396 = load i32, ptr %74, align 4, !tbaa !9
  %1397 = sub nsw i32 %1395, %1396
  %1398 = add nsw i32 %1397, 1
  store i32 %1398, ptr %64, align 4, !tbaa !9
  %1399 = load i32, ptr %63, align 4, !tbaa !9
  %1400 = load i32, ptr %64, align 4, !tbaa !9
  %1401 = icmp sle i32 %1399, %1400
  br i1 %1401, label %1402, label %1404

1402:                                             ; preds = %1391
  %1403 = load i32, ptr %63, align 4, !tbaa !9
  br label %1406

1404:                                             ; preds = %1391
  %1405 = load i32, ptr %64, align 4, !tbaa !9
  br label %1406

1406:                                             ; preds = %1404, %1402
  %1407 = phi i32 [ %1403, %1402 ], [ %1405, %1404 ]
  store i32 %1407, ptr %92, align 4, !tbaa !9
  %1408 = load ptr, ptr %41, align 8, !tbaa !5
  %1409 = load i32, ptr %56, align 4, !tbaa !9
  %1410 = sext i32 %1409 to i64
  %1411 = getelementptr inbounds %struct.complex, ptr %1408, i64 %1410
  %1412 = load ptr, ptr %42, align 8, !tbaa !5
  %1413 = load ptr, ptr %32, align 8, !tbaa !5
  %1414 = load i32, ptr %85, align 4, !tbaa !9
  %1415 = load i32, ptr %74, align 4, !tbaa !9
  %1416 = load i32, ptr %51, align 4, !tbaa !9
  %1417 = mul nsw i32 %1415, %1416
  %1418 = add nsw i32 %1414, %1417
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds %struct.complex, ptr %1413, i64 %1419
  %1421 = load ptr, ptr %33, align 8, !tbaa !5
  %1422 = load ptr, ptr %44, align 8, !tbaa !5
  %1423 = load i32, ptr %54, align 4, !tbaa !9
  %1424 = sext i32 %1423 to i64
  %1425 = getelementptr inbounds %struct.complex, ptr %1422, i64 %1424
  %1426 = load ptr, ptr %45, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str.10, ptr noundef @.str.1, ptr noundef %86, ptr noundef %92, ptr noundef %86, ptr noundef @c_b2, ptr noundef %1411, ptr noundef %1412, ptr noundef %1420, ptr noundef %1421, ptr noundef @c_b1, ptr noundef %1425, ptr noundef %1426)
  %1427 = load ptr, ptr %44, align 8, !tbaa !5
  %1428 = load i32, ptr %54, align 4, !tbaa !9
  %1429 = sext i32 %1428 to i64
  %1430 = getelementptr inbounds %struct.complex, ptr %1427, i64 %1429
  %1431 = load ptr, ptr %45, align 8, !tbaa !5
  %1432 = load ptr, ptr %32, align 8, !tbaa !5
  %1433 = load i32, ptr %85, align 4, !tbaa !9
  %1434 = load i32, ptr %74, align 4, !tbaa !9
  %1435 = load i32, ptr %51, align 4, !tbaa !9
  %1436 = mul nsw i32 %1434, %1435
  %1437 = add nsw i32 %1433, %1436
  %1438 = sext i32 %1437 to i64
  %1439 = getelementptr inbounds %struct.complex, ptr %1432, i64 %1438
  %1440 = load ptr, ptr %33, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.5, ptr noundef %86, ptr noundef %92, ptr noundef %1430, ptr noundef %1431, ptr noundef %1439, ptr noundef %1440)
  br label %1441

1441:                                             ; preds = %1406
  %1442 = load i32, ptr %61, align 4, !tbaa !9
  %1443 = load i32, ptr %74, align 4, !tbaa !9
  %1444 = add nsw i32 %1443, %1442
  store i32 %1444, ptr %74, align 4, !tbaa !9
  br label %1375, !llvm.loop !23

1445:                                             ; preds = %1388
  br label %1446

1446:                                             ; preds = %1445, %1363
  %1447 = load ptr, ptr %27, align 8, !tbaa !5
  %1448 = load i32, ptr %1447, align 4, !tbaa !9
  %1449 = icmp ne i32 %1448, 0
  br i1 %1449, label %1450, label %1528

1450:                                             ; preds = %1446
  %1451 = load ptr, ptr %35, align 8, !tbaa !5
  %1452 = load i32, ptr %1451, align 4, !tbaa !9
  store i32 %1452, ptr %61, align 4, !tbaa !9
  %1453 = load ptr, ptr %46, align 8, !tbaa !5
  %1454 = load i32, ptr %1453, align 4, !tbaa !9
  store i32 %1454, ptr %62, align 4, !tbaa !9
  %1455 = load ptr, ptr %34, align 8, !tbaa !5
  %1456 = load i32, ptr %1455, align 4, !tbaa !9
  store i32 %1456, ptr %80, align 4, !tbaa !9
  br label %1457

1457:                                             ; preds = %1523, %1450
  %1458 = load i32, ptr %62, align 4, !tbaa !9
  %1459 = icmp slt i32 %1458, 0
  br i1 %1459, label %1460, label %1465

1460:                                             ; preds = %1457
  %1461 = load i32, ptr %80, align 4, !tbaa !9
  %1462 = load i32, ptr %61, align 4, !tbaa !9
  %1463 = icmp sge i32 %1461, %1462
  %1464 = zext i1 %1463 to i32
  br label %1470

1465:                                             ; preds = %1457
  %1466 = load i32, ptr %80, align 4, !tbaa !9
  %1467 = load i32, ptr %61, align 4, !tbaa !9
  %1468 = icmp sle i32 %1466, %1467
  %1469 = zext i1 %1468 to i32
  br label %1470

1470:                                             ; preds = %1465, %1460
  %1471 = phi i32 [ %1464, %1460 ], [ %1469, %1465 ]
  %1472 = icmp ne i32 %1471, 0
  br i1 %1472, label %1473, label %1527

1473:                                             ; preds = %1470
  %1474 = load ptr, ptr %46, align 8, !tbaa !5
  %1475 = load i32, ptr %1474, align 4, !tbaa !9
  store i32 %1475, ptr %63, align 4, !tbaa !9
  %1476 = load ptr, ptr %35, align 8, !tbaa !5
  %1477 = load i32, ptr %1476, align 4, !tbaa !9
  %1478 = load i32, ptr %80, align 4, !tbaa !9
  %1479 = sub nsw i32 %1477, %1478
  %1480 = add nsw i32 %1479, 1
  store i32 %1480, ptr %64, align 4, !tbaa !9
  %1481 = load i32, ptr %63, align 4, !tbaa !9
  %1482 = load i32, ptr %64, align 4, !tbaa !9
  %1483 = icmp sle i32 %1481, %1482
  br i1 %1483, label %1484, label %1486

1484:                                             ; preds = %1473
  %1485 = load i32, ptr %63, align 4, !tbaa !9
  br label %1488

1486:                                             ; preds = %1473
  %1487 = load i32, ptr %64, align 4, !tbaa !9
  br label %1488

1488:                                             ; preds = %1486, %1484
  %1489 = phi i32 [ %1485, %1484 ], [ %1487, %1486 ]
  store i32 %1489, ptr %92, align 4, !tbaa !9
  %1490 = load ptr, ptr %36, align 8, !tbaa !5
  %1491 = load i32, ptr %80, align 4, !tbaa !9
  %1492 = load i32, ptr %85, align 4, !tbaa !9
  %1493 = load i32, ptr %59, align 4, !tbaa !9
  %1494 = mul nsw i32 %1492, %1493
  %1495 = add nsw i32 %1491, %1494
  %1496 = sext i32 %1495 to i64
  %1497 = getelementptr inbounds %struct.complex, ptr %1490, i64 %1496
  %1498 = load ptr, ptr %37, align 8, !tbaa !5
  %1499 = load ptr, ptr %41, align 8, !tbaa !5
  %1500 = load i32, ptr %56, align 4, !tbaa !9
  %1501 = sext i32 %1500 to i64
  %1502 = getelementptr inbounds %struct.complex, ptr %1499, i64 %1501
  %1503 = load ptr, ptr %42, align 8, !tbaa !5
  %1504 = load ptr, ptr %47, align 8, !tbaa !5
  %1505 = load i32, ptr %58, align 4, !tbaa !9
  %1506 = sext i32 %1505 to i64
  %1507 = getelementptr inbounds %struct.complex, ptr %1504, i64 %1506
  %1508 = load ptr, ptr %48, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str.1, ptr noundef @.str.1, ptr noundef %92, ptr noundef %86, ptr noundef %86, ptr noundef @c_b2, ptr noundef %1497, ptr noundef %1498, ptr noundef %1502, ptr noundef %1503, ptr noundef @c_b1, ptr noundef %1507, ptr noundef %1508)
  %1509 = load ptr, ptr %47, align 8, !tbaa !5
  %1510 = load i32, ptr %58, align 4, !tbaa !9
  %1511 = sext i32 %1510 to i64
  %1512 = getelementptr inbounds %struct.complex, ptr %1509, i64 %1511
  %1513 = load ptr, ptr %48, align 8, !tbaa !5
  %1514 = load ptr, ptr %36, align 8, !tbaa !5
  %1515 = load i32, ptr %80, align 4, !tbaa !9
  %1516 = load i32, ptr %85, align 4, !tbaa !9
  %1517 = load i32, ptr %59, align 4, !tbaa !9
  %1518 = mul nsw i32 %1516, %1517
  %1519 = add nsw i32 %1515, %1518
  %1520 = sext i32 %1519 to i64
  %1521 = getelementptr inbounds %struct.complex, ptr %1514, i64 %1520
  %1522 = load ptr, ptr %37, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.5, ptr noundef %92, ptr noundef %86, ptr noundef %1512, ptr noundef %1513, ptr noundef %1521, ptr noundef %1522)
  br label %1523

1523:                                             ; preds = %1488
  %1524 = load i32, ptr %62, align 4, !tbaa !9
  %1525 = load i32, ptr %80, align 4, !tbaa !9
  %1526 = add nsw i32 %1525, %1524
  store i32 %1526, ptr %80, align 4, !tbaa !9
  br label %1457, !llvm.loop !24

1527:                                             ; preds = %1470
  br label %1528

1528:                                             ; preds = %1527, %1446
  br label %1529

1529:                                             ; preds = %1528, %989, %985
  %1530 = load i32, ptr %86, align 4, !tbaa !9
  %1531 = load ptr, ptr %38, align 8, !tbaa !5
  %1532 = load i32, ptr %1531, align 4, !tbaa !9
  %1533 = sub nsw i32 %1530, %1532
  %1534 = load ptr, ptr %39, align 8, !tbaa !5
  store i32 %1533, ptr %1534, align 4, !tbaa !9
  %1535 = load i32, ptr %84, align 4, !tbaa !9
  %1536 = load ptr, ptr %38, align 8, !tbaa !5
  %1537 = load i32, ptr %1536, align 4, !tbaa !9
  %1538 = sub nsw i32 %1537, %1535
  store i32 %1538, ptr %1536, align 4, !tbaa !9
  %1539 = load i32, ptr %90, align 4, !tbaa !9
  %1540 = sitofp i32 %1539 to float
  store float %1540, ptr %65, align 4, !tbaa !14
  %1541 = load float, ptr %65, align 4, !tbaa !14
  %1542 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %1541, ptr %1542, align 4, !tbaa !11
  %1543 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float 0.000000e+00, ptr %1543, align 4, !tbaa !15
  %1544 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1545 = load float, ptr %1544, align 4, !tbaa !11
  %1546 = load ptr, ptr %49, align 8, !tbaa !5
  %1547 = getelementptr inbounds %struct.complex, ptr %1546, i64 1
  %1548 = getelementptr inbounds %struct.complex, ptr %1547, i32 0, i32 0
  store float %1545, ptr %1548, align 4, !tbaa !11
  %1549 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1550 = load float, ptr %1549, align 4, !tbaa !15
  %1551 = load ptr, ptr %49, align 8, !tbaa !5
  %1552 = getelementptr inbounds %struct.complex, ptr %1551, i64 1
  %1553 = getelementptr inbounds %struct.complex, ptr %1552, i32 0, i32 1
  store float %1550, ptr %1553, align 4, !tbaa !15
  store i32 1, ptr %99, align 4
  br label %1554

1554:                                             ; preds = %1529, %507, %301, %296, %266
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  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 @cgehrd_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare 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

declare float @slamch_(ptr noundef) #2

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

declare void @claset_(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 @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 void @ctrexc_(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 ptr @_pCf(ptr noundef) #4

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

declare void @clarf_(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) #5

declare void @cgemm_(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 = { 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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 = !{!13, !13, i64 0}
!15 = !{!12, !13, i64 4}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17}


; 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__1 = external hidden global i32, align 4
@c_n1 = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_true = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@c__12 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @claqr3_(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr noundef %6, ptr noundef %7, ptr nocapture noundef readonly %8, ptr nocapture noundef readonly %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr nocapture noundef writeonly %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr nocapture noundef readonly %17, ptr noundef %18, ptr noundef %19, ptr nocapture noundef readonly %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24) local_unnamed_addr #0 {
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %struct.complex, align 8
  %30 = alloca %struct.complex, align 8
  %31 = alloca %struct.complex, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca %struct.complex, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca i32, align 4
  %41 = alloca %struct.complex, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #6
  %42 = load i32, ptr %7, align 4, !tbaa !5
  %narrow = xor i32 %42, -1
  %43 = sext i32 %narrow to i64
  %44 = getelementptr inbounds %struct.complex, ptr %6, i64 %43
  %45 = load i32, ptr %11, align 4, !tbaa !5
  %narrow496 = xor i32 %45, -1
  %46 = sext i32 %narrow496 to i64
  %47 = getelementptr inbounds %struct.complex, ptr %10, i64 %46
  %48 = getelementptr inbounds i8, ptr %14, i64 -8
  %49 = load i32, ptr %16, align 4, !tbaa !5
  %narrow498 = xor i32 %49, -1
  %50 = sext i32 %narrow498 to i64
  %51 = getelementptr inbounds %struct.complex, ptr %15, i64 %50
  %52 = load i32, ptr %19, align 4, !tbaa !5
  %narrow497 = xor i32 %52, -1
  %53 = sext i32 %narrow497 to i64
  %54 = getelementptr inbounds %struct.complex, ptr %18, i64 %53
  %55 = getelementptr inbounds i8, ptr %23, i64 -8
  %56 = load i32, ptr %5, align 4, !tbaa !5
  store i32 %56, ptr %26, align 4, !tbaa !5
  %57 = load i32, ptr %4, align 4, !tbaa !5
  %58 = load i32, ptr %3, align 4, !tbaa !5
  %59 = sub nsw i32 %57, %58
  %60 = add nsw i32 %59, 1
  store i32 %60, ptr %27, align 4, !tbaa !5
  %61 = tail call i32 @llvm.smin.i32(i32 %56, i32 %60)
  store i32 %61, ptr %37, align 4, !tbaa !5
  %62 = icmp slt i32 %61, 3
  br i1 %62, label %77, label %63

63:                                               ; preds = %25
  %64 = add nsw i32 %61, -1
  store i32 %64, ptr %26, align 4, !tbaa !5
  call void @cgehrd_(ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef %18, ptr noundef nonnull %19, ptr noundef %23, ptr noundef %23, ptr noundef nonnull @c_n1, ptr noundef nonnull %32) #6
  %65 = load float, ptr %23, align 4, !tbaa !9
  %66 = fptosi float %65 to i32
  %67 = load i32, ptr %37, align 4, !tbaa !5
  %68 = add nsw i32 %67, -1
  store i32 %68, ptr %26, align 4, !tbaa !5
  call void @cunmhr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef %18, ptr noundef nonnull %19, ptr noundef nonnull %23, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %23, ptr noundef nonnull @c_n1, ptr noundef nonnull %32) #6
  %69 = load float, ptr %23, align 4, !tbaa !9
  %70 = fptosi float %69 to i32
  call void @claqr4_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef %18, ptr noundef nonnull %19, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %23, ptr noundef nonnull @c_n1, ptr noundef nonnull %36) #6
  %71 = load float, ptr %23, align 4, !tbaa !9
  %72 = fptosi float %71 to i32
  %73 = load i32, ptr %37, align 4, !tbaa !5
  %74 = call i32 @llvm.smax.i32(i32 %66, i32 %70)
  %75 = add nsw i32 %73, %74
  store i32 %75, ptr %26, align 4, !tbaa !5
  %76 = call i32 @llvm.smax.i32(i32 %75, i32 %72)
  br label %77

77:                                               ; preds = %25, %63
  %.0485 = phi i32 [ %76, %63 ], [ 1, %25 ]
  %78 = load i32, ptr %24, align 4, !tbaa !5
  %79 = icmp eq i32 %78, -1
  br i1 %79, label %80, label %82

80:                                               ; preds = %77
  %81 = sitofp i32 %.0485 to float
  store float %81, ptr %23, align 4, !tbaa !9
  br label %.sink.split

82:                                               ; preds = %77
  store i32 0, ptr %12, align 4, !tbaa !5
  store i32 0, ptr %13, align 4, !tbaa !5
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %23, align 4, !tbaa !12
  %83 = load i32, ptr %3, align 4, !tbaa !5
  %84 = load i32, ptr %4, align 4, !tbaa !5
  %85 = icmp sgt i32 %83, %84
  br i1 %85, label %501, label %86

86:                                               ; preds = %82
  %87 = load i32, ptr %5, align 4, !tbaa !5
  %88 = icmp slt i32 %87, 1
  br i1 %88, label %501, label %89

89:                                               ; preds = %86
  %90 = call float @slamch_(ptr noundef nonnull @.str.2) #6
  store float %90, ptr %38, align 4, !tbaa !12
  %91 = fdiv float 1.000000e+00, %90
  store float %91, ptr %39, align 4, !tbaa !12
  call void @slabad_(ptr noundef nonnull %38, ptr noundef nonnull %39) #6
  %92 = call float @slamch_(ptr noundef nonnull @.str.3) #6
  %93 = load float, ptr %38, align 4, !tbaa !12
  %94 = load i32, ptr %2, align 4, !tbaa !5
  %95 = sitofp i32 %94 to float
  %96 = fdiv float %95, %92
  %97 = fmul float %93, %96
  %98 = load i32, ptr %5, align 4, !tbaa !5
  store i32 %98, ptr %26, align 4, !tbaa !5
  %99 = load i32, ptr %4, align 4, !tbaa !5
  %100 = load i32, ptr %3, align 4, !tbaa !5
  %101 = sub nsw i32 %99, %100
  %102 = add nsw i32 %101, 1
  store i32 %102, ptr %27, align 4, !tbaa !5
  %103 = call i32 @llvm.smin.i32(i32 %98, i32 %102)
  store i32 %103, ptr %37, align 4, !tbaa !5
  %104 = sub nsw i32 %99, %103
  %105 = add nsw i32 %104, 1
  %106 = icmp eq i32 %105, %100
  br i1 %106, label %113, label %107

107:                                              ; preds = %89
  %108 = mul nsw i32 %104, %42
  %109 = add nsw i32 %105, %108
  store i32 %109, ptr %26, align 4, !tbaa !5
  %110 = sext i32 %109 to i64
  %111 = getelementptr inbounds %struct.complex, ptr %44, i64 %110
  %112 = load <2 x float>, ptr %111, align 4, !tbaa !12
  br label %113

113:                                              ; preds = %89, %107
  %114 = phi <2 x float> [ %112, %107 ], [ zeroinitializer, %89 ]
  %115 = getelementptr inbounds i8, ptr %35, i64 4
  store <2 x float> %114, ptr %35, align 8
  %116 = icmp eq i32 %99, %105
  br i1 %116, label %117, label %153

117:                                              ; preds = %113
  %118 = add i32 %42, 1
  %119 = mul i32 %99, %118
  store i32 %119, ptr %27, align 4, !tbaa !5
  %120 = sext i32 %119 to i64
  %121 = getelementptr inbounds %struct.complex, ptr %44, i64 %120
  %122 = sext i32 %99 to i64
  %123 = getelementptr inbounds %struct.complex, ptr %48, i64 %122
  %124 = load <2 x float>, ptr %121, align 4, !tbaa !12
  store <2 x float> %124, ptr %123, align 4, !tbaa !12
  store i32 1, ptr %12, align 4, !tbaa !5
  store i32 0, ptr %13, align 4, !tbaa !5
  store i32 %119, ptr %26, align 4, !tbaa !5
  %125 = call <2 x float> @Cf(ptr noundef nonnull %121)
  %126 = shufflevector <2 x float> %124, <2 x float> %125, <2 x i32> <i32 0, i32 3>
  %127 = fcmp oge <2 x float> %126, zeroinitializer
  %128 = fneg <2 x float> %126
  %129 = select <2 x i1> %127, <2 x float> %126, <2 x float> %128
  %shift = shufflevector <2 x float> %129, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %130 = fadd <2 x float> %129, %shift
  %131 = extractelement <2 x float> %130, i64 0
  %132 = fmul float %92, %131
  %133 = load float, ptr %35, align 8, !tbaa !9
  %134 = fcmp oge float %133, 0.000000e+00
  %135 = fneg float %133
  %136 = select i1 %134, float %133, float %135
  %137 = call <2 x float> @Cf(ptr noundef nonnull %35)
  %.sroa.017.4.vec.extract = extractelement <2 x float> %137, i64 1
  %138 = fcmp oge float %.sroa.017.4.vec.extract, 0.000000e+00
  %139 = fneg float %.sroa.017.4.vec.extract
  %140 = select i1 %138, float %.sroa.017.4.vec.extract, float %139
  %141 = fadd float %136, %140
  %142 = fcmp oge float %97, %132
  %143 = select i1 %142, float %97, float %132
  %144 = fcmp ugt float %141, %143
  br i1 %144, label %152, label %145

145:                                              ; preds = %117
  store i32 0, ptr %12, align 4, !tbaa !5
  store i32 1, ptr %13, align 4, !tbaa !5
  %146 = load i32, ptr %3, align 4, !tbaa !5
  %.not511 = icmp slt i32 %104, %146
  br i1 %.not511, label %152, label %147

147:                                              ; preds = %145
  %148 = mul nsw i32 %104, %42
  %149 = add nsw i32 %99, %148
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds %struct.complex, ptr %44, i64 %150
  store <2 x float> zeroinitializer, ptr %151, align 4, !tbaa !12
  br label %152

152:                                              ; preds = %145, %147, %117
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  br label %.sink.split

153:                                              ; preds = %113
  %154 = mul nsw i32 %105, %42
  %155 = add nsw i32 %154, %105
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds %struct.complex, ptr %44, i64 %156
  call void @clacpy_(ptr noundef nonnull @.str.4, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %157, ptr noundef nonnull %7, ptr noundef %18, ptr noundef nonnull %19) #6
  %158 = load i32, ptr %37, align 4, !tbaa !5
  %159 = add nsw i32 %158, -1
  store i32 %159, ptr %26, align 4, !tbaa !5
  %160 = load i32, ptr %7, align 4, !tbaa !5
  %161 = add nsw i32 %160, 1
  store i32 %161, ptr %27, align 4, !tbaa !5
  %162 = load i32, ptr %19, align 4, !tbaa !5
  %163 = add nsw i32 %162, 1
  store i32 %163, ptr %28, align 4, !tbaa !5
  %164 = add nsw i32 %104, 2
  %165 = add nsw i32 %164, %154
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds %struct.complex, ptr %44, i64 %166
  %168 = sext i32 %52 to i64
  %169 = getelementptr %struct.complex, ptr %54, i64 %168
  %170 = getelementptr i8, ptr %169, i64 16
  call void @ccopy_(ptr noundef nonnull %26, ptr noundef %167, ptr noundef nonnull %27, ptr noundef %170, ptr noundef nonnull %28) #6
  call void @claset_(ptr noundef nonnull @.str.5, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %15, ptr noundef nonnull %16) #6
  %171 = call i32 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef nonnull %24, i32 noundef 6, i32 noundef 2) #6
  %172 = load i32, ptr %37, align 4, !tbaa !5
  %173 = icmp sgt i32 %172, %171
  %174 = sext i32 %105 to i64
  %175 = getelementptr inbounds %struct.complex, ptr %48, i64 %174
  br i1 %173, label %176, label %177

176:                                              ; preds = %153
  call void @claqr4_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef %18, ptr noundef nonnull %19, ptr noundef nonnull %175, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %36) #6
  br label %178

177:                                              ; preds = %153
  call void @clahqr_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef %18, ptr noundef nonnull %19, ptr noundef nonnull %175, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %36) #6
  br label %178

178:                                              ; preds = %177, %176
  %179 = load i32, ptr %37, align 4, !tbaa !5
  store i32 %179, ptr %12, align 4, !tbaa !5
  %180 = load i32, ptr %36, align 4, !tbaa !5
  %181 = add nsw i32 %180, 1
  store i32 %181, ptr %34, align 4, !tbaa !5
  store i32 %179, ptr %26, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %51, i64 8
  %.not.not515 = icmp slt i32 %180, %179
  br i1 %.not.not515, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %178
  %182 = add i32 %52, 1
  br label %183

183:                                              ; preds = %.lr.ph, %244
  %.0483516.in = phi i32 [ %180, %.lr.ph ], [ %.0483516, %244 ]
  %.0483516 = add nsw i32 %.0483516.in, 1
  %184 = load i32, ptr %12, align 4, !tbaa !5
  %185 = mul i32 %184, %182
  store i32 %185, ptr %27, align 4, !tbaa !5
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds %struct.complex, ptr %54, i64 %186
  %188 = load float, ptr %187, align 4, !tbaa !9
  %189 = fcmp oge float %188, 0.000000e+00
  %190 = fneg float %188
  %191 = select i1 %189, float %188, float %190
  %192 = call <2 x float> @Cf(ptr noundef nonnull %187)
  %.sroa.016.4.vec.extract = extractelement <2 x float> %192, i64 1
  %193 = fcmp oge float %.sroa.016.4.vec.extract, 0.000000e+00
  %194 = fneg float %.sroa.016.4.vec.extract
  %195 = select i1 %193, float %.sroa.016.4.vec.extract, float %194
  %196 = fadd float %191, %195
  %197 = fcmp oeq float %196, 0.000000e+00
  br i1 %197, label %198, label %208

198:                                              ; preds = %183
  %199 = load float, ptr %35, align 8, !tbaa !9
  %200 = fcmp oge float %199, 0.000000e+00
  %201 = fneg float %199
  %202 = select i1 %200, float %199, float %201
  %203 = call <2 x float> @Cf(ptr noundef nonnull %35)
  %.sroa.015.4.vec.extract = extractelement <2 x float> %203, i64 1
  %204 = fcmp oge float %.sroa.015.4.vec.extract, 0.000000e+00
  %205 = fneg float %.sroa.015.4.vec.extract
  %206 = select i1 %204, float %.sroa.015.4.vec.extract, float %205
  %207 = fadd float %202, %206
  br label %208

208:                                              ; preds = %198, %183
  %.0484 = phi float [ %207, %198 ], [ %196, %183 ]
  %209 = load i32, ptr %12, align 4, !tbaa !5
  %210 = mul nsw i32 %209, %49
  %211 = add nsw i32 %210, 1
  store i32 %211, ptr %27, align 4, !tbaa !5
  %212 = fmul float %92, %.0484
  %213 = load float, ptr %35, align 8, !tbaa !9
  %214 = call <2 x float> @Cf(ptr noundef nonnull %35)
  %215 = load i32, ptr %27, align 4, !tbaa !5
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds %struct.complex, ptr %51, i64 %216
  %218 = load float, ptr %217, align 4, !tbaa !9
  %219 = load i32, ptr %12, align 4, !tbaa !5
  %220 = mul nsw i32 %219, %49
  %221 = sext i32 %220 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %221
  %222 = call <2 x float> @Cf(ptr noundef %gep)
  %223 = insertelement <2 x float> poison, float %213, i64 0
  %224 = insertelement <2 x float> %223, float %218, i64 1
  %225 = fcmp oge <2 x float> %224, zeroinitializer
  %226 = fneg <2 x float> %224
  %227 = select <2 x i1> %225, <2 x float> %224, <2 x float> %226
  %228 = shufflevector <2 x float> %214, <2 x float> %222, <2 x i32> <i32 1, i32 3>
  %229 = fcmp oge <2 x float> %228, zeroinitializer
  %230 = fneg <2 x float> %228
  %231 = select <2 x i1> %229, <2 x float> %228, <2 x float> %230
  %232 = fadd <2 x float> %227, %231
  %shift572 = shufflevector <2 x float> %232, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %233 = fmul <2 x float> %232, %shift572
  %234 = extractelement <2 x float> %233, i64 0
  %235 = fcmp oge float %97, %212
  %236 = select i1 %235, float %97, float %212
  %237 = fcmp ugt float %234, %236
  %238 = load i32, ptr %12, align 4, !tbaa !5
  br i1 %237, label %241, label %239

239:                                              ; preds = %208
  %240 = add nsw i32 %238, -1
  store i32 %240, ptr %12, align 4, !tbaa !5
  br label %244

241:                                              ; preds = %208
  store i32 %238, ptr %33, align 4, !tbaa !5
  call void @ctrexc_(ptr noundef nonnull @.str.8, ptr noundef nonnull %37, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %32) #6
  %242 = load i32, ptr %34, align 4, !tbaa !5
  %243 = add nsw i32 %242, 1
  store i32 %243, ptr %34, align 4, !tbaa !5
  br label %244

244:                                              ; preds = %239, %241
  %245 = load i32, ptr %26, align 4, !tbaa !5
  %.not.not = icmp slt i32 %.0483516, %245
  br i1 %.not.not, label %183, label %._crit_edge.loopexit, !llvm.loop !13

._crit_edge.loopexit:                             ; preds = %244
  %.pre = load i32, ptr %12, align 4, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %178
  %246 = phi i32 [ %.pre, %._crit_edge.loopexit ], [ %179, %178 ]
  %247 = icmp eq i32 %246, 0
  br i1 %247, label %248, label %249

248:                                              ; preds = %._crit_edge
  store <2 x float> zeroinitializer, ptr %35, align 8, !tbaa !12
  br label %249

249:                                              ; preds = %248, %._crit_edge
  %250 = load i32, ptr %37, align 4, !tbaa !5
  %251 = icmp slt i32 %246, %250
  %.pre566 = load i32, ptr %36, align 4, !tbaa !5
  br i1 %251, label %252, label %.loopexit513

252:                                              ; preds = %249
  store i32 %246, ptr %26, align 4, !tbaa !5
  %.not522.not = icmp slt i32 %.pre566, %246
  br i1 %.not522.not, label %.lr.ph525, label %.loopexit513

.lr.ph525:                                        ; preds = %252
  %253 = add i32 %52, 1
  %254 = add nsw i32 %.pre566, 2
  br label %255

255:                                              ; preds = %.lr.ph525, %292
  %indvars.iv = phi i32 [ %254, %.lr.ph525 ], [ %indvars.iv.next, %292 ]
  %.0489523.in = phi i32 [ %.pre566, %.lr.ph525 ], [ %.0489523, %292 ]
  %.0489523 = add nsw i32 %.0489523.in, 1
  store i32 %.0489523, ptr %33, align 4, !tbaa !5
  %256 = load i32, ptr %12, align 4, !tbaa !5
  store i32 %256, ptr %27, align 4, !tbaa !5
  %.not509517.not = icmp slt i32 %.0489523, %256
  br i1 %.not509517.not, label %.lr.ph520.preheader, label %._crit_edge521.thread

._crit_edge521.thread:                            ; preds = %255
  store i32 %.0489523, ptr %34, align 4, !tbaa !5
  br label %292

.lr.ph520.preheader:                              ; preds = %255
  %257 = sext i32 %indvars.iv to i64
  br label %.lr.ph520

.lr.ph520:                                        ; preds = %.lr.ph520.preheader, %288
  %indvars.iv553 = phi i64 [ %257, %.lr.ph520.preheader ], [ %indvars.iv.next554, %288 ]
  %258 = trunc nsw i64 %indvars.iv553 to i32
  %259 = mul i32 %253, %258
  store i32 %259, ptr %28, align 4, !tbaa !5
  %260 = load i32, ptr %33, align 4, !tbaa !5
  %261 = mul i32 %260, %253
  %262 = sext i32 %259 to i64
  %263 = getelementptr inbounds %struct.complex, ptr %54, i64 %262
  %264 = load float, ptr %263, align 4, !tbaa !9
  %265 = call <2 x float> @Cf(ptr noundef nonnull %263)
  %266 = sext i32 %261 to i64
  %267 = getelementptr inbounds %struct.complex, ptr %54, i64 %266
  %268 = load float, ptr %267, align 4, !tbaa !9
  %269 = load i32, ptr %33, align 4, !tbaa !5
  %270 = mul i32 %269, %253
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds %struct.complex, ptr %54, i64 %271
  %273 = call <2 x float> @Cf(ptr noundef %272)
  %274 = insertelement <2 x float> poison, float %264, i64 0
  %275 = insertelement <2 x float> %274, float %268, i64 1
  %276 = fcmp oge <2 x float> %275, zeroinitializer
  %277 = fneg <2 x float> %275
  %278 = select <2 x i1> %276, <2 x float> %275, <2 x float> %277
  %279 = shufflevector <2 x float> %265, <2 x float> %273, <2 x i32> <i32 1, i32 3>
  %280 = fcmp oge <2 x float> %279, zeroinitializer
  %281 = fneg <2 x float> %279
  %282 = select <2 x i1> %280, <2 x float> %279, <2 x float> %281
  %283 = fadd <2 x float> %278, %282
  %284 = extractelement <2 x float> %283, i64 0
  %285 = extractelement <2 x float> %283, i64 1
  %286 = fcmp ogt float %284, %285
  br i1 %286, label %287, label %288

287:                                              ; preds = %.lr.ph520
  store i32 %258, ptr %33, align 4, !tbaa !5
  br label %288

288:                                              ; preds = %.lr.ph520, %287
  %indvars.iv.next554 = add nsw i64 %indvars.iv553, 1
  %289 = load i32, ptr %27, align 4, !tbaa !5
  %290 = sext i32 %289 to i64
  %.not509.not = icmp slt i64 %indvars.iv553, %290
  br i1 %.not509.not, label %.lr.ph520, label %._crit_edge521, !llvm.loop !15

._crit_edge521:                                   ; preds = %288
  %.pre563 = load i32, ptr %33, align 4, !tbaa !5
  store i32 %.0489523, ptr %34, align 4, !tbaa !5
  %.not510 = icmp eq i32 %.pre563, %.0489523
  br i1 %.not510, label %292, label %291

291:                                              ; preds = %._crit_edge521
  call void @ctrexc_(ptr noundef nonnull @.str.8, ptr noundef nonnull %37, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %32) #6
  br label %292

292:                                              ; preds = %._crit_edge521.thread, %._crit_edge521, %291
  %293 = load i32, ptr %26, align 4, !tbaa !5
  %.not.not550 = icmp slt i32 %.0489523, %293
  %indvars.iv.next = add i32 %indvars.iv, 1
  br i1 %.not.not550, label %255, label %.loopexit513.loopexit, !llvm.loop !16

.loopexit513.loopexit:                            ; preds = %292
  %.pre564 = load i32, ptr %37, align 4, !tbaa !5
  %.pre565 = load i32, ptr %36, align 4, !tbaa !5
  br label %.loopexit513

.loopexit513:                                     ; preds = %.loopexit513.loopexit, %252, %249
  %294 = phi i32 [ %.pre565, %.loopexit513.loopexit ], [ %.pre566, %252 ], [ %.pre566, %249 ]
  %295 = phi i32 [ %.pre564, %.loopexit513.loopexit ], [ %250, %252 ], [ %250, %249 ]
  store i32 %295, ptr %26, align 4, !tbaa !5
  %.not499.not526 = icmp slt i32 %294, %295
  br i1 %.not499.not526, label %.lr.ph529, label %327

.lr.ph529:                                        ; preds = %.loopexit513
  %296 = add i32 %52, 1
  %297 = sext i32 %294 to i64
  %wide.trip.count = sext i32 %295 to i64
  %298 = sub nsw i64 %wide.trip.count, %297
  %xtraiter = and i64 %298, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.prol.loopexit, label %.prol.loopexit.unr-lcssa

.prol.loopexit.unr-lcssa:                         ; preds = %.lr.ph529
  %indvars.iv.next557.prol = add nsw i64 %297, 1
  %299 = add i32 %105, %294
  %300 = trunc nsw i64 %indvars.iv.next557.prol to i32
  %301 = mul i32 %296, %300
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds %struct.complex, ptr %54, i64 %302
  %304 = sext i32 %299 to i64
  %305 = getelementptr inbounds %struct.complex, ptr %48, i64 %304
  %306 = load <2 x float>, ptr %303, align 4, !tbaa !12
  store <2 x float> %306, ptr %305, align 4, !tbaa !12
  br label %.prol.loopexit

.prol.loopexit:                                   ; preds = %.prol.loopexit.unr-lcssa, %.lr.ph529
  %.lcssa573.unr = phi i32 [ poison, %.lr.ph529 ], [ %299, %.prol.loopexit.unr-lcssa ]
  %.lcssa.unr = phi i32 [ poison, %.lr.ph529 ], [ %301, %.prol.loopexit.unr-lcssa ]
  %indvars.iv556.unr = phi i64 [ %297, %.lr.ph529 ], [ %indvars.iv.next557.prol, %.prol.loopexit.unr-lcssa ]
  %307 = add nsw i64 %wide.trip.count, -1
  %308 = icmp eq i64 %307, %297
  br i1 %308, label %._crit_edge530, label %.lr.ph529.new

.lr.ph529.new:                                    ; preds = %.prol.loopexit, %.lr.ph529.new
  %indvars.iv556 = phi i64 [ %indvars.iv.next557.1, %.lr.ph529.new ], [ %indvars.iv556.unr, %.prol.loopexit ]
  %indvars.iv.next557 = add nsw i64 %indvars.iv556, 1
  %309 = trunc nsw i64 %indvars.iv556 to i32
  %310 = add i32 %105, %309
  %311 = trunc nsw i64 %indvars.iv.next557 to i32
  %312 = mul i32 %296, %311
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds %struct.complex, ptr %54, i64 %313
  %315 = sext i32 %310 to i64
  %316 = getelementptr inbounds %struct.complex, ptr %48, i64 %315
  %317 = load <2 x float>, ptr %314, align 4, !tbaa !12
  store <2 x float> %317, ptr %316, align 4, !tbaa !12
  %indvars.iv.next557.1 = add nsw i64 %indvars.iv556, 2
  %318 = trunc nsw i64 %indvars.iv.next557 to i32
  %319 = add i32 %105, %318
  %320 = trunc nsw i64 %indvars.iv.next557.1 to i32
  %321 = mul i32 %296, %320
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds %struct.complex, ptr %54, i64 %322
  %324 = sext i32 %319 to i64
  %325 = getelementptr inbounds %struct.complex, ptr %48, i64 %324
  %326 = load <2 x float>, ptr %323, align 4, !tbaa !12
  store <2 x float> %326, ptr %325, align 4, !tbaa !12
  %exitcond.not.1 = icmp eq i64 %indvars.iv.next557.1, %wide.trip.count
  br i1 %exitcond.not.1, label %._crit_edge530, label %.lr.ph529.new, !llvm.loop !17

._crit_edge530:                                   ; preds = %.lr.ph529.new, %.prol.loopexit
  %.lcssa573 = phi i32 [ %.lcssa573.unr, %.prol.loopexit ], [ %319, %.lr.ph529.new ]
  %.lcssa = phi i32 [ %.lcssa.unr, %.prol.loopexit ], [ %321, %.lr.ph529.new ]
  store i32 %.lcssa573, ptr %27, align 4, !tbaa !5
  store i32 %.lcssa, ptr %28, align 4, !tbaa !5
  br label %327

327:                                              ; preds = %._crit_edge530, %.loopexit513
  %328 = load i32, ptr %12, align 4, !tbaa !5
  %329 = icmp slt i32 %328, %295
  br i1 %329, label %335, label %330

330:                                              ; preds = %327
  %331 = load float, ptr %35, align 8, !tbaa !9
  %332 = fcmp oeq float %331, 0.000000e+00
  %333 = load float, ptr %115, align 4
  %334 = fcmp oeq float %333, 0.000000e+00
  %or.cond = select i1 %332, i1 %334, i1 false
  br i1 %or.cond, label %335, label %.loopexit

335:                                              ; preds = %330, %327
  %336 = icmp sgt i32 %328, 1
  br i1 %336, label %337, label %383

337:                                              ; preds = %335
  %338 = load float, ptr %35, align 8, !tbaa !9
  %339 = fcmp une float %338, 0.000000e+00
  %340 = load float, ptr %115, align 4
  %341 = fcmp une float %340, 0.000000e+00
  %or.cond5 = select i1 %339, i1 true, i1 %341
  br i1 %or.cond5, label %342, label %383

342:                                              ; preds = %337
  call void @ccopy_(ptr noundef nonnull %12, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %23, ptr noundef nonnull @c__1) #6
  %343 = load i32, ptr %12, align 4, !tbaa !5
  store i32 %343, ptr %26, align 4, !tbaa !5
  %.not500532 = icmp slt i32 %343, 1
  br i1 %.not500532, label %._crit_edge536, label %.lr.ph535

.lr.ph535:                                        ; preds = %342, %.lr.ph535
  %indvars.iv559 = phi i64 [ %indvars.iv.next560, %.lr.ph535 ], [ 1, %342 ]
  %344 = trunc nuw nsw i64 %indvars.iv559 to i32
  store i32 %344, ptr %27, align 4, !tbaa !5
  %345 = getelementptr inbounds %struct.complex, ptr %55, i64 %indvars.iv559
  %346 = call <2 x float> @Cf(ptr noundef nonnull %345)
  %.sroa.010.0.vec.extract = extractelement <2 x float> %346, i64 0
  %.sroa.010.4.vec.extract = extractelement <2 x float> %346, i64 1
  %347 = fneg float %.sroa.010.4.vec.extract
  %348 = call ptr @_pCf(ptr noundef nonnull %29)
  %349 = getelementptr inbounds i8, ptr %348, i64 4
  store float %.sroa.010.0.vec.extract, ptr %348, align 4
  store float %347, ptr %349, align 4
  %350 = load i32, ptr %27, align 4, !tbaa !5
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds %struct.complex, ptr %55, i64 %351
  %353 = load <2 x float>, ptr %29, align 8, !tbaa !12
  store <2 x float> %353, ptr %352, align 4, !tbaa !12
  %indvars.iv.next560 = add nuw nsw i64 %indvars.iv559, 1
  %354 = load i32, ptr %26, align 4, !tbaa !5
  %355 = sext i32 %354 to i64
  %.not500.not = icmp slt i64 %indvars.iv559, %355
  br i1 %.not500.not, label %.lr.ph535, label %._crit_edge536, !llvm.loop !18

._crit_edge536:                                   ; preds = %.lr.ph535, %342
  %356 = load <2 x float>, ptr %23, align 4, !tbaa !12
  store <2 x float> %356, ptr %31, align 8, !tbaa !12
  %357 = getelementptr inbounds i8, ptr %23, i64 8
  call void @clarfg_(ptr noundef nonnull %12, ptr noundef nonnull %31, ptr noundef nonnull %357, ptr noundef nonnull @c__1, ptr noundef nonnull %41) #6
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %23, align 4, !tbaa !12
  %358 = load i32, ptr %37, align 4, !tbaa !5
  %359 = add nsw i32 %358, -2
  store i32 %359, ptr %26, align 4, !tbaa !5
  store i32 %359, ptr %27, align 4, !tbaa !5
  %360 = getelementptr i8, ptr %169, i64 24
  call void @claset_(ptr noundef nonnull @.str.9, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %360, ptr noundef nonnull %19) #6
  %361 = call <2 x float> @Cf(ptr noundef nonnull %41)
  %.sroa.09.0.vec.extract = extractelement <2 x float> %361, i64 0
  %.sroa.09.4.vec.extract = extractelement <2 x float> %361, i64 1
  %362 = fneg float %.sroa.09.4.vec.extract
  %363 = call ptr @_pCf(ptr noundef nonnull %29)
  %364 = getelementptr inbounds i8, ptr %363, i64 4
  store float %.sroa.09.0.vec.extract, ptr %363, align 4
  store float %362, ptr %364, align 4
  %365 = load i32, ptr %37, align 4, !tbaa !5
  %366 = sext i32 %365 to i64
  %367 = getelementptr %struct.complex, ptr %55, i64 %366
  %368 = getelementptr i8, ptr %367, i64 8
  call void @clarf_(ptr noundef nonnull @.str.9, ptr noundef nonnull %12, ptr noundef nonnull %37, ptr noundef nonnull %23, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef %18, ptr noundef nonnull %19, ptr noundef %368) #6
  %369 = load i32, ptr %37, align 4, !tbaa !5
  %370 = sext i32 %369 to i64
  %371 = getelementptr %struct.complex, ptr %55, i64 %370
  %372 = getelementptr i8, ptr %371, i64 8
  call void @clarf_(ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %12, ptr noundef nonnull %23, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef %18, ptr noundef nonnull %19, ptr noundef %372) #6
  %373 = load i32, ptr %37, align 4, !tbaa !5
  %374 = sext i32 %373 to i64
  %375 = getelementptr %struct.complex, ptr %55, i64 %374
  %376 = getelementptr i8, ptr %375, i64 8
  call void @clarf_(ptr noundef nonnull @.str, ptr noundef nonnull %37, ptr noundef nonnull %12, ptr noundef nonnull %23, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef %15, ptr noundef nonnull %16, ptr noundef %376) #6
  %377 = load i32, ptr %24, align 4, !tbaa !5
  %378 = load i32, ptr %37, align 4, !tbaa !5
  %379 = sub nsw i32 %377, %378
  store i32 %379, ptr %26, align 4, !tbaa !5
  %380 = sext i32 %378 to i64
  %381 = getelementptr %struct.complex, ptr %55, i64 %380
  %382 = getelementptr i8, ptr %381, i64 8
  call void @cgehrd_(ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef %18, ptr noundef nonnull %19, ptr noundef nonnull %23, ptr noundef %382, ptr noundef nonnull %26, ptr noundef nonnull %32) #6
  br label %383

383:                                              ; preds = %337, %._crit_edge536, %335
  %384 = icmp sgt i32 %104, 0
  br i1 %384, label %385, label %406

385:                                              ; preds = %383
  %386 = mul nsw i32 %104, %42
  %387 = add nsw i32 %105, %386
  store i32 %387, ptr %26, align 4, !tbaa !5
  %388 = call <2 x float> @Cf(ptr noundef %15)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %388, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %388, i64 1
  %389 = fneg float %.sroa.0.4.vec.extract
  %390 = call ptr @_pCf(ptr noundef nonnull %30)
  %391 = getelementptr inbounds i8, ptr %390, i64 4
  store float %.sroa.0.0.vec.extract, ptr %390, align 4
  store float %389, ptr %391, align 4
  %392 = load float, ptr %35, align 8, !tbaa !9
  %393 = load float, ptr %115, align 4, !tbaa !19
  %394 = fneg float %393
  %395 = load <2 x float>, ptr %30, align 8, !tbaa !12
  %396 = insertelement <2 x float> poison, float %393, i64 0
  %397 = insertelement <2 x float> %396, float %394, i64 1
  %398 = fmul <2 x float> %395, %397
  %399 = shufflevector <2 x float> %398, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %400 = insertelement <2 x float> poison, float %392, i64 0
  %401 = shufflevector <2 x float> %400, <2 x float> poison, <2 x i32> zeroinitializer
  %402 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %401, <2 x float> %395, <2 x float> %399)
  store <2 x float> %402, ptr %29, align 8, !tbaa !12
  %403 = load i32, ptr %26, align 4, !tbaa !5
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds %struct.complex, ptr %44, i64 %404
  store <2 x float> %402, ptr %405, align 4, !tbaa !12
  br label %406

406:                                              ; preds = %385, %383
  call void @clacpy_(ptr noundef nonnull @.str.4, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %18, ptr noundef nonnull %19, ptr noundef %157, ptr noundef nonnull %7) #6
  %407 = load i32, ptr %37, align 4, !tbaa !5
  %408 = add nsw i32 %407, -1
  store i32 %408, ptr %26, align 4, !tbaa !5
  %409 = load i32, ptr %19, align 4, !tbaa !5
  %410 = add nsw i32 %409, 1
  store i32 %410, ptr %27, align 4, !tbaa !5
  %411 = load i32, ptr %7, align 4, !tbaa !5
  %412 = add nsw i32 %411, 1
  store i32 %412, ptr %28, align 4, !tbaa !5
  call void @ccopy_(ptr noundef nonnull %26, ptr noundef %170, ptr noundef nonnull %27, ptr noundef %167, ptr noundef nonnull %28) #6
  %413 = load i32, ptr %12, align 4, !tbaa !5
  %414 = icmp sgt i32 %413, 1
  br i1 %414, label %415, label %427

415:                                              ; preds = %406
  %416 = load float, ptr %35, align 8, !tbaa !9
  %417 = fcmp une float %416, 0.000000e+00
  %418 = load float, ptr %115, align 4
  %419 = fcmp une float %418, 0.000000e+00
  %or.cond8 = select i1 %417, i1 true, i1 %419
  br i1 %or.cond8, label %420, label %427

420:                                              ; preds = %415
  %421 = load i32, ptr %24, align 4, !tbaa !5
  %422 = load i32, ptr %37, align 4, !tbaa !5
  %423 = sub nsw i32 %421, %422
  store i32 %423, ptr %26, align 4, !tbaa !5
  %424 = sext i32 %422 to i64
  %425 = getelementptr %struct.complex, ptr %55, i64 %424
  %426 = getelementptr i8, ptr %425, i64 8
  call void @cunmhr_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %37, ptr noundef nonnull %12, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef %18, ptr noundef nonnull %19, ptr noundef nonnull %23, ptr noundef %15, ptr noundef nonnull %16, ptr noundef %426, ptr noundef nonnull %26, ptr noundef nonnull %32) #6
  br label %427

427:                                              ; preds = %415, %420, %406
  %428 = load i32, ptr %0, align 4, !tbaa !5
  %.not501 = icmp eq i32 %428, 0
  br i1 %.not501, label %429, label %431

429:                                              ; preds = %427
  %430 = load i32, ptr %3, align 4, !tbaa !5
  br label %431

431:                                              ; preds = %427, %429
  %.0486 = phi i32 [ %430, %429 ], [ 1, %427 ]
  store i32 %104, ptr %26, align 4, !tbaa !5
  %432 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %432, ptr %27, align 4, !tbaa !5
  %433 = icmp slt i32 %432, 0
  %434 = icmp sge i32 %.0486, %104
  %435 = icmp sle i32 %.0486, %104
  %.in537 = select i1 %433, i1 %434, i1 %435
  br i1 %.in537, label %.lr.ph540, label %._crit_edge541

.lr.ph540:                                        ; preds = %431, %.lr.ph540
  %.0487538 = phi i32 [ %443, %.lr.ph540 ], [ %.0486, %431 ]
  %436 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %436, ptr %28, align 4, !tbaa !5
  %437 = sub nsw i32 %105, %.0487538
  %438 = call i32 @llvm.smin.i32(i32 %436, i32 %437)
  store i32 %438, ptr %40, align 4, !tbaa !5
  %439 = add nsw i32 %.0487538, %154
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds %struct.complex, ptr %44, i64 %440
  call void @cgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.1, ptr noundef nonnull %40, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef nonnull @c_b2, ptr noundef %441, ptr noundef nonnull %7, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull @c_b1, ptr noundef %21, ptr noundef %22) #6
  call void @clacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %40, ptr noundef nonnull %37, ptr noundef %21, ptr noundef %22, ptr noundef %441, ptr noundef nonnull %7) #6
  %442 = load i32, ptr %27, align 4, !tbaa !5
  %443 = add nsw i32 %442, %.0487538
  %444 = icmp slt i32 %442, 0
  %445 = load i32, ptr %26, align 4
  %446 = icmp sge i32 %443, %445
  %447 = icmp sle i32 %443, %445
  %.in = select i1 %444, i1 %446, i1 %447
  br i1 %.in, label %.lr.ph540, label %._crit_edge541.loopexit, !llvm.loop !20

._crit_edge541.loopexit:                          ; preds = %.lr.ph540
  %.pre567 = load i32, ptr %0, align 4, !tbaa !5
  br label %._crit_edge541

._crit_edge541:                                   ; preds = %._crit_edge541.loopexit, %431
  %448 = phi i32 [ %.pre567, %._crit_edge541.loopexit ], [ %428, %431 ]
  %.not502 = icmp eq i32 %448, 0
  br i1 %.not502, label %.loopexit512, label %449

449:                                              ; preds = %._crit_edge541
  %450 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %450, ptr %27, align 4, !tbaa !5
  %451 = load i32, ptr %17, align 4, !tbaa !5
  store i32 %451, ptr %26, align 4, !tbaa !5
  %452 = load i32, ptr %4, align 4, !tbaa !5
  %453 = add nsw i32 %452, 1
  %454 = icmp slt i32 %451, 0
  %455 = icmp sge i32 %453, %450
  %456 = icmp slt i32 %452, %450
  %.in503542 = select i1 %454, i1 %455, i1 %456
  br i1 %.in503542, label %.lr.ph545, label %.loopexit512

.lr.ph545:                                        ; preds = %449, %.lr.ph545
  %.0543 = phi i32 [ %466, %.lr.ph545 ], [ %453, %449 ]
  %457 = load i32, ptr %17, align 4, !tbaa !5
  store i32 %457, ptr %28, align 4, !tbaa !5
  %458 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub = sub i32 %458, %.0543
  %459 = add i32 %reass.sub, 1
  %460 = call i32 @llvm.smin.i32(i32 %457, i32 %459)
  store i32 %460, ptr %40, align 4, !tbaa !5
  %461 = mul nsw i32 %.0543, %42
  %462 = add nsw i32 %461, %105
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds %struct.complex, ptr %44, i64 %463
  call void @cgemm_(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, ptr noundef nonnull %37, ptr noundef nonnull %40, ptr noundef nonnull %37, ptr noundef nonnull @c_b2, ptr noundef %15, ptr noundef nonnull %16, ptr noundef %464, ptr noundef nonnull %7, ptr noundef nonnull @c_b1, ptr noundef %18, ptr noundef nonnull %19) #6
  call void @clacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %37, ptr noundef nonnull %40, ptr noundef %18, ptr noundef nonnull %19, ptr noundef %464, ptr noundef nonnull %7) #6
  %465 = load i32, ptr %26, align 4, !tbaa !5
  %466 = add nsw i32 %465, %.0543
  %467 = icmp slt i32 %465, 0
  %468 = load i32, ptr %27, align 4
  %469 = icmp sge i32 %466, %468
  %470 = icmp sle i32 %466, %468
  %.in503 = select i1 %467, i1 %469, i1 %470
  br i1 %.in503, label %.lr.ph545, label %.loopexit512, !llvm.loop !21

.loopexit512:                                     ; preds = %.lr.ph545, %449, %._crit_edge541
  %471 = load i32, ptr %1, align 4, !tbaa !5
  %.not504 = icmp eq i32 %471, 0
  br i1 %.not504, label %.loopexit, label %472

472:                                              ; preds = %.loopexit512
  %473 = load i32, ptr %9, align 4, !tbaa !5
  store i32 %473, ptr %26, align 4, !tbaa !5
  %474 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %474, ptr %27, align 4, !tbaa !5
  %475 = load i32, ptr %8, align 4, !tbaa !5
  %476 = icmp slt i32 %474, 0
  %477 = icmp sge i32 %475, %473
  %478 = icmp sle i32 %475, %473
  %.in505546 = select i1 %476, i1 %477, i1 %478
  br i1 %.in505546, label %.lr.ph549, label %.loopexit

.lr.ph549:                                        ; preds = %472
  %479 = mul nsw i32 %105, %45
  br label %480

480:                                              ; preds = %.lr.ph549, %480
  %.1547 = phi i32 [ %475, %.lr.ph549 ], [ %489, %480 ]
  %481 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %481, ptr %28, align 4, !tbaa !5
  %482 = load i32, ptr %9, align 4, !tbaa !5
  %reass.sub551 = sub i32 %482, %.1547
  %483 = add i32 %reass.sub551, 1
  %484 = call i32 @llvm.smin.i32(i32 %481, i32 %483)
  store i32 %484, ptr %40, align 4, !tbaa !5
  %485 = add nsw i32 %.1547, %479
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds %struct.complex, ptr %47, i64 %486
  call void @cgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.1, ptr noundef nonnull %40, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef nonnull @c_b2, ptr noundef %487, ptr noundef nonnull %11, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull @c_b1, ptr noundef %21, ptr noundef nonnull %22) #6
  call void @clacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %40, ptr noundef nonnull %37, ptr noundef %21, ptr noundef nonnull %22, ptr noundef %487, ptr noundef nonnull %11) #6
  %488 = load i32, ptr %27, align 4, !tbaa !5
  %489 = add nsw i32 %488, %.1547
  %490 = icmp slt i32 %488, 0
  %491 = load i32, ptr %26, align 4
  %492 = icmp sge i32 %489, %491
  %493 = icmp sle i32 %489, %491
  %.in505 = select i1 %490, i1 %492, i1 %493
  br i1 %.in505, label %480, label %.loopexit, !llvm.loop !22

.loopexit:                                        ; preds = %480, %472, %.loopexit512, %330
  %494 = load i32, ptr %37, align 4, !tbaa !5
  %495 = load i32, ptr %12, align 4, !tbaa !5
  %496 = sub nsw i32 %494, %495
  store i32 %496, ptr %13, align 4, !tbaa !5
  %497 = load i32, ptr %36, align 4, !tbaa !5
  %498 = load i32, ptr %12, align 4, !tbaa !5
  %499 = sub nsw i32 %498, %497
  store i32 %499, ptr %12, align 4, !tbaa !5
  %500 = sitofp i32 %.0485 to float
  store float %500, ptr %23, align 4, !tbaa !9
  br label %.sink.split

.sink.split:                                      ; preds = %80, %152, %.loopexit
  %.sink570 = getelementptr inbounds i8, ptr %23, i64 4
  store float 0.000000e+00, ptr %.sink570, align 4, !tbaa !19
  br label %501

501:                                              ; preds = %.sink.split, %86, %82
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  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 @cgehrd_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

declare void @claset_(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 @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 void @ctrexc_(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 ptr @_pCf(ptr noundef) local_unnamed_addr #4

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

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

declare void @cgemm_(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.smin.i32(i32, i32) #5

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

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

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 = { 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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 = !{!10, !11, i64 0}
!10 = !{!"", !11, i64 0, !11, i64 4}
!11 = !{!"float", !7, i64 0}
!12 = !{!11, !11, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = !{!10, !11, i64 4}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}


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