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

; 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 }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8

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

162:                                              ; preds = %20
  store i64 0, ptr %107, align 8, !tbaa !9
  store i64 1, ptr %111, align 8, !tbaa !9
  br label %170

163:                                              ; preds = %20
  %164 = load ptr, ptr %22, align 8, !tbaa !5
  %165 = call i64 @lsame_(ptr noundef %164, ptr noundef @.str.1)
  %166 = icmp ne i64 %165, 0
  br i1 %166, label %167, label %168

167:                                              ; preds = %163
  store i64 1, ptr %107, align 8, !tbaa !9
  store i64 2, ptr %111, align 8, !tbaa !9
  br label %169

168:                                              ; preds = %163
  store i64 0, ptr %111, align 8, !tbaa !9
  br label %169

169:                                              ; preds = %168, %167
  br label %170

170:                                              ; preds = %169, %162
  %171 = load ptr, ptr %23, align 8, !tbaa !5
  %172 = call i64 @lsame_(ptr noundef %171, ptr noundef @.str.2)
  %173 = icmp ne i64 %172, 0
  br i1 %173, label %174, label %175

174:                                              ; preds = %170
  store i64 0, ptr %81, align 8, !tbaa !9
  store i64 1, ptr %108, align 8, !tbaa !9
  br label %188

175:                                              ; preds = %170
  %176 = load ptr, ptr %23, align 8, !tbaa !5
  %177 = call i64 @lsame_(ptr noundef %176, ptr noundef @.str.3)
  %178 = icmp ne i64 %177, 0
  br i1 %178, label %179, label %180

179:                                              ; preds = %175
  store i64 1, ptr %81, align 8, !tbaa !9
  store i64 2, ptr %108, align 8, !tbaa !9
  br label %187

180:                                              ; preds = %175
  %181 = load ptr, ptr %23, align 8, !tbaa !5
  %182 = call i64 @lsame_(ptr noundef %181, ptr noundef @.str.4)
  %183 = icmp ne i64 %182, 0
  br i1 %183, label %184, label %185

184:                                              ; preds = %180
  store i64 1, ptr %81, align 8, !tbaa !9
  store i64 3, ptr %108, align 8, !tbaa !9
  br label %186

185:                                              ; preds = %180
  store i64 0, ptr %108, align 8, !tbaa !9
  br label %186

186:                                              ; preds = %185, %184
  br label %187

187:                                              ; preds = %186, %179
  br label %188

188:                                              ; preds = %187, %174
  %189 = load ptr, ptr %24, align 8, !tbaa !5
  %190 = call i64 @lsame_(ptr noundef %189, ptr noundef @.str.2)
  %191 = icmp ne i64 %190, 0
  br i1 %191, label %192, label %193

192:                                              ; preds = %188
  store i64 0, ptr %82, align 8, !tbaa !9
  store i64 1, ptr %113, align 8, !tbaa !9
  br label %206

193:                                              ; preds = %188
  %194 = load ptr, ptr %24, align 8, !tbaa !5
  %195 = call i64 @lsame_(ptr noundef %194, ptr noundef @.str.3)
  %196 = icmp ne i64 %195, 0
  br i1 %196, label %197, label %198

197:                                              ; preds = %193
  store i64 1, ptr %82, align 8, !tbaa !9
  store i64 2, ptr %113, align 8, !tbaa !9
  br label %205

198:                                              ; preds = %193
  %199 = load ptr, ptr %24, align 8, !tbaa !5
  %200 = call i64 @lsame_(ptr noundef %199, ptr noundef @.str.4)
  %201 = icmp ne i64 %200, 0
  br i1 %201, label %202, label %203

202:                                              ; preds = %198
  store i64 1, ptr %82, align 8, !tbaa !9
  store i64 3, ptr %113, align 8, !tbaa !9
  br label %204

203:                                              ; preds = %198
  store i64 0, ptr %113, align 8, !tbaa !9
  br label %204

204:                                              ; preds = %203, %202
  br label %205

205:                                              ; preds = %204, %197
  br label %206

206:                                              ; preds = %205, %192
  %207 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 0, ptr %207, align 8, !tbaa !9
  %208 = load ptr, ptr %25, align 8, !tbaa !5
  %209 = load i64, ptr %208, align 8, !tbaa !9
  %210 = icmp sge i64 1, %209
  br i1 %210, label %211, label %212

211:                                              ; preds = %206
  br label %215

212:                                              ; preds = %206
  %213 = load ptr, ptr %25, align 8, !tbaa !5
  %214 = load i64, ptr %213, align 8, !tbaa !9
  br label %215

215:                                              ; preds = %212, %211
  %216 = phi i64 [ 1, %211 ], [ %214, %212 ]
  store i64 %216, ptr %50, align 8, !tbaa !9
  %217 = load i64, ptr %50, align 8, !tbaa !9
  %218 = sitofp i64 %217 to float
  %219 = load ptr, ptr %38, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.complex, ptr %219, i64 1
  %221 = getelementptr inbounds %struct.complex, ptr %220, i32 0, i32 0
  store float %218, ptr %221, align 4, !tbaa !11
  %222 = load ptr, ptr %38, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.complex, ptr %222, i64 1
  %224 = getelementptr inbounds %struct.complex, ptr %223, i32 0, i32 1
  store float 0.000000e+00, ptr %224, align 4, !tbaa !14
  %225 = load ptr, ptr %39, align 8, !tbaa !5
  %226 = load i64, ptr %225, align 8, !tbaa !9
  %227 = icmp eq i64 %226, -1
  %228 = zext i1 %227 to i32
  %229 = sext i32 %228 to i64
  store i64 %229, ptr %117, align 8, !tbaa !9
  %230 = load i64, ptr %111, align 8, !tbaa !9
  %231 = icmp eq i64 %230, 0
  br i1 %231, label %232, label %234

232:                                              ; preds = %215
  %233 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -1, ptr %233, align 8, !tbaa !9
  br label %345

234:                                              ; preds = %215
  %235 = load i64, ptr %108, align 8, !tbaa !9
  %236 = icmp eq i64 %235, 0
  br i1 %236, label %237, label %239

237:                                              ; preds = %234
  %238 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -2, ptr %238, align 8, !tbaa !9
  br label %344

239:                                              ; preds = %234
  %240 = load i64, ptr %113, align 8, !tbaa !9
  %241 = icmp eq i64 %240, 0
  br i1 %241, label %242, label %244

242:                                              ; preds = %239
  %243 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -3, ptr %243, align 8, !tbaa !9
  br label %343

244:                                              ; preds = %239
  %245 = load ptr, ptr %25, align 8, !tbaa !5
  %246 = load i64, ptr %245, align 8, !tbaa !9
  %247 = icmp slt i64 %246, 0
  br i1 %247, label %248, label %250

248:                                              ; preds = %244
  %249 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -4, ptr %249, align 8, !tbaa !9
  br label %342

250:                                              ; preds = %244
  %251 = load ptr, ptr %26, align 8, !tbaa !5
  %252 = load i64, ptr %251, align 8, !tbaa !9
  %253 = icmp slt i64 %252, 1
  br i1 %253, label %254, label %256

254:                                              ; preds = %250
  %255 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -5, ptr %255, align 8, !tbaa !9
  br label %341

256:                                              ; preds = %250
  %257 = load ptr, ptr %27, align 8, !tbaa !5
  %258 = load i64, ptr %257, align 8, !tbaa !9
  %259 = load ptr, ptr %25, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = icmp sgt i64 %258, %260
  br i1 %261, label %269, label %262

262:                                              ; preds = %256
  %263 = load ptr, ptr %27, align 8, !tbaa !5
  %264 = load i64, ptr %263, align 8, !tbaa !9
  %265 = load ptr, ptr %26, align 8, !tbaa !5
  %266 = load i64, ptr %265, align 8, !tbaa !9
  %267 = sub nsw i64 %266, 1
  %268 = icmp slt i64 %264, %267
  br i1 %268, label %269, label %271

269:                                              ; preds = %262, %256
  %270 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -6, ptr %270, align 8, !tbaa !9
  br label %340

271:                                              ; preds = %262
  %272 = load ptr, ptr %29, align 8, !tbaa !5
  %273 = load i64, ptr %272, align 8, !tbaa !9
  %274 = load ptr, ptr %25, align 8, !tbaa !5
  %275 = load i64, ptr %274, align 8, !tbaa !9
  %276 = icmp slt i64 %273, %275
  br i1 %276, label %277, label %279

277:                                              ; preds = %271
  %278 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -8, ptr %278, align 8, !tbaa !9
  br label %339

279:                                              ; preds = %271
  %280 = load ptr, ptr %31, align 8, !tbaa !5
  %281 = load i64, ptr %280, align 8, !tbaa !9
  %282 = load ptr, ptr %25, align 8, !tbaa !5
  %283 = load i64, ptr %282, align 8, !tbaa !9
  %284 = icmp slt i64 %281, %283
  br i1 %284, label %285, label %287

285:                                              ; preds = %279
  %286 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -10, ptr %286, align 8, !tbaa !9
  br label %338

287:                                              ; preds = %279
  %288 = load ptr, ptr %35, align 8, !tbaa !5
  %289 = load i64, ptr %288, align 8, !tbaa !9
  %290 = icmp slt i64 %289, 1
  br i1 %290, label %300, label %291

291:                                              ; preds = %287
  %292 = load i64, ptr %81, align 8, !tbaa !9
  %293 = icmp ne i64 %292, 0
  br i1 %293, label %294, label %302

294:                                              ; preds = %291
  %295 = load ptr, ptr %35, align 8, !tbaa !5
  %296 = load i64, ptr %295, align 8, !tbaa !9
  %297 = load ptr, ptr %25, align 8, !tbaa !5
  %298 = load i64, ptr %297, align 8, !tbaa !9
  %299 = icmp slt i64 %296, %298
  br i1 %299, label %300, label %302

300:                                              ; preds = %294, %287
  %301 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -14, ptr %301, align 8, !tbaa !9
  br label %337

302:                                              ; preds = %294, %291
  %303 = load ptr, ptr %37, align 8, !tbaa !5
  %304 = load i64, ptr %303, align 8, !tbaa !9
  %305 = icmp slt i64 %304, 1
  br i1 %305, label %315, label %306

306:                                              ; preds = %302
  %307 = load i64, ptr %82, align 8, !tbaa !9
  %308 = icmp ne i64 %307, 0
  br i1 %308, label %309, label %317

309:                                              ; preds = %306
  %310 = load ptr, ptr %37, align 8, !tbaa !5
  %311 = load i64, ptr %310, align 8, !tbaa !9
  %312 = load ptr, ptr %25, align 8, !tbaa !5
  %313 = load i64, ptr %312, align 8, !tbaa !9
  %314 = icmp slt i64 %311, %313
  br i1 %314, label %315, label %317

315:                                              ; preds = %309, %302
  %316 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -16, ptr %316, align 8, !tbaa !9
  br label %336

317:                                              ; preds = %309, %306
  %318 = load ptr, ptr %39, align 8, !tbaa !5
  %319 = load i64, ptr %318, align 8, !tbaa !9
  %320 = load ptr, ptr %25, align 8, !tbaa !5
  %321 = load i64, ptr %320, align 8, !tbaa !9
  %322 = icmp sge i64 1, %321
  br i1 %322, label %323, label %324

323:                                              ; preds = %317
  br label %327

324:                                              ; preds = %317
  %325 = load ptr, ptr %25, align 8, !tbaa !5
  %326 = load i64, ptr %325, align 8, !tbaa !9
  br label %327

327:                                              ; preds = %324, %323
  %328 = phi i64 [ 1, %323 ], [ %326, %324 ]
  %329 = icmp slt i64 %319, %328
  br i1 %329, label %330, label %335

330:                                              ; preds = %327
  %331 = load i64, ptr %117, align 8, !tbaa !9
  %332 = icmp ne i64 %331, 0
  br i1 %332, label %335, label %333

333:                                              ; preds = %330
  %334 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 -18, ptr %334, align 8, !tbaa !9
  br label %335

335:                                              ; preds = %333, %330, %327
  br label %336

336:                                              ; preds = %335, %315
  br label %337

337:                                              ; preds = %336, %300
  br label %338

338:                                              ; preds = %337, %285
  br label %339

339:                                              ; preds = %338, %277
  br label %340

340:                                              ; preds = %339, %269
  br label %341

341:                                              ; preds = %340, %254
  br label %342

342:                                              ; preds = %341, %248
  br label %343

343:                                              ; preds = %342, %242
  br label %344

344:                                              ; preds = %343, %237
  br label %345

345:                                              ; preds = %344, %232
  %346 = load ptr, ptr %41, align 8, !tbaa !5
  %347 = load i64, ptr %346, align 8, !tbaa !9
  %348 = icmp ne i64 %347, 0
  br i1 %348, label %349, label %354

349:                                              ; preds = %345
  %350 = load ptr, ptr %41, align 8, !tbaa !5
  %351 = load i64, ptr %350, align 8, !tbaa !9
  %352 = sub nsw i64 0, %351
  store i64 %352, ptr %50, align 8, !tbaa !9
  %353 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %50)
  store i32 0, ptr %21, align 4
  store i32 1, ptr %118, align 4
  br label %4465

354:                                              ; preds = %345
  %355 = load i64, ptr %117, align 8, !tbaa !9
  %356 = icmp ne i64 %355, 0
  br i1 %356, label %357, label %358

357:                                              ; preds = %354
  store i32 0, ptr %21, align 4
  store i32 1, ptr %118, align 4
  br label %4465

358:                                              ; preds = %354
  br label %359

359:                                              ; preds = %358
  %360 = load ptr, ptr %25, align 8, !tbaa !5
  %361 = load i64, ptr %360, align 8, !tbaa !9
  %362 = icmp sle i64 %361, 0
  br i1 %362, label %363, label %370

363:                                              ; preds = %359
  %364 = load ptr, ptr %38, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.complex, ptr %364, i64 1
  %366 = getelementptr inbounds %struct.complex, ptr %365, i32 0, i32 0
  store float 1.000000e+00, ptr %366, align 4, !tbaa !11
  %367 = load ptr, ptr %38, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.complex, ptr %367, i64 1
  %369 = getelementptr inbounds %struct.complex, ptr %368, i32 0, i32 1
  store float 0.000000e+00, ptr %369, align 4, !tbaa !14
  store i32 0, ptr %21, align 4
  store i32 1, ptr %118, align 4
  br label %4465

370:                                              ; preds = %359
  %371 = load i64, ptr %108, align 8, !tbaa !9
  %372 = icmp eq i64 %371, 3
  br i1 %372, label %373, label %381

373:                                              ; preds = %370
  %374 = load ptr, ptr %25, align 8, !tbaa !5
  %375 = load ptr, ptr %25, align 8, !tbaa !5
  %376 = load ptr, ptr %34, align 8, !tbaa !5
  %377 = load i64, ptr %45, align 8, !tbaa !9
  %378 = getelementptr inbounds %struct.complex, ptr %376, i64 %377
  %379 = load ptr, ptr %35, align 8, !tbaa !5
  %380 = call i32 @claset_(ptr noundef @.str.6, ptr noundef %374, ptr noundef %375, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %378, ptr noundef %379)
  br label %381

381:                                              ; preds = %373, %370
  %382 = load i64, ptr %113, align 8, !tbaa !9
  %383 = icmp eq i64 %382, 3
  br i1 %383, label %384, label %392

384:                                              ; preds = %381
  %385 = load ptr, ptr %25, align 8, !tbaa !5
  %386 = load ptr, ptr %25, align 8, !tbaa !5
  %387 = load ptr, ptr %36, align 8, !tbaa !5
  %388 = load i64, ptr %49, align 8, !tbaa !9
  %389 = getelementptr inbounds %struct.complex, ptr %387, i64 %388
  %390 = load ptr, ptr %37, align 8, !tbaa !5
  %391 = call i32 @claset_(ptr noundef @.str.6, ptr noundef %385, ptr noundef %386, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %389, ptr noundef %390)
  br label %392

392:                                              ; preds = %384, %381
  %393 = load ptr, ptr %27, align 8, !tbaa !5
  %394 = load i64, ptr %393, align 8, !tbaa !9
  %395 = add nsw i64 %394, 1
  %396 = load ptr, ptr %26, align 8, !tbaa !5
  %397 = load i64, ptr %396, align 8, !tbaa !9
  %398 = sub nsw i64 %395, %397
  store i64 %398, ptr %73, align 8, !tbaa !9
  %399 = call double @slamch_(ptr noundef @.str.1)
  %400 = fptrunc double %399 to float
  store float %400, ptr %105, align 4, !tbaa !15
  %401 = call double @slamch_(ptr noundef @.str)
  %402 = call double @slamch_(ptr noundef @.str.7)
  %403 = fmul double %401, %402
  %404 = fptrunc double %403 to float
  store float %404, ptr %83, align 4, !tbaa !15
  %405 = load ptr, ptr %28, align 8, !tbaa !5
  %406 = load ptr, ptr %26, align 8, !tbaa !5
  %407 = load i64, ptr %406, align 8, !tbaa !9
  %408 = load ptr, ptr %26, align 8, !tbaa !5
  %409 = load i64, ptr %408, align 8, !tbaa !9
  %410 = load i64, ptr %42, align 8, !tbaa !9
  %411 = mul nsw i64 %409, %410
  %412 = add nsw i64 %407, %411
  %413 = getelementptr inbounds %struct.complex, ptr %405, i64 %412
  %414 = load ptr, ptr %29, align 8, !tbaa !5
  %415 = load ptr, ptr %40, align 8, !tbaa !5
  %416 = getelementptr inbounds float, ptr %415, i64 1
  %417 = call double @clanhs_(ptr noundef @.str.8, ptr noundef %73, ptr noundef %413, ptr noundef %414, ptr noundef %416)
  %418 = fptrunc double %417 to float
  store float %418, ptr %94, align 4, !tbaa !15
  %419 = load ptr, ptr %30, align 8, !tbaa !5
  %420 = load ptr, ptr %26, align 8, !tbaa !5
  %421 = load i64, ptr %420, align 8, !tbaa !9
  %422 = load ptr, ptr %26, align 8, !tbaa !5
  %423 = load i64, ptr %422, align 8, !tbaa !9
  %424 = load i64, ptr %46, align 8, !tbaa !9
  %425 = mul nsw i64 %423, %424
  %426 = add nsw i64 %421, %425
  %427 = getelementptr inbounds %struct.complex, ptr %419, i64 %426
  %428 = load ptr, ptr %31, align 8, !tbaa !5
  %429 = load ptr, ptr %40, align 8, !tbaa !5
  %430 = getelementptr inbounds float, ptr %429, i64 1
  %431 = call double @clanhs_(ptr noundef @.str.8, ptr noundef %73, ptr noundef %427, ptr noundef %428, ptr noundef %430)
  %432 = fptrunc double %431 to float
  store float %432, ptr %95, align 4, !tbaa !15
  %433 = load float, ptr %105, align 4, !tbaa !15
  store float %433, ptr %56, align 4, !tbaa !15
  %434 = load float, ptr %83, align 4, !tbaa !15
  %435 = load float, ptr %94, align 4, !tbaa !15
  %436 = fmul float %434, %435
  store float %436, ptr %57, align 4, !tbaa !15
  %437 = load float, ptr %56, align 4, !tbaa !15
  %438 = load float, ptr %57, align 4, !tbaa !15
  %439 = fcmp oge float %437, %438
  br i1 %439, label %440, label %442

440:                                              ; preds = %392
  %441 = load float, ptr %56, align 4, !tbaa !15
  br label %444

442:                                              ; preds = %392
  %443 = load float, ptr %57, align 4, !tbaa !15
  br label %444

444:                                              ; preds = %442, %440
  %445 = phi float [ %441, %440 ], [ %443, %442 ]
  %446 = fpext float %445 to double
  %447 = fptrunc double %446 to float
  store float %447, ptr %86, align 4, !tbaa !15
  %448 = load float, ptr %105, align 4, !tbaa !15
  store float %448, ptr %56, align 4, !tbaa !15
  %449 = load float, ptr %83, align 4, !tbaa !15
  %450 = load float, ptr %95, align 4, !tbaa !15
  %451 = fmul float %449, %450
  store float %451, ptr %57, align 4, !tbaa !15
  %452 = load float, ptr %56, align 4, !tbaa !15
  %453 = load float, ptr %57, align 4, !tbaa !15
  %454 = fcmp oge float %452, %453
  br i1 %454, label %455, label %457

455:                                              ; preds = %444
  %456 = load float, ptr %56, align 4, !tbaa !15
  br label %459

457:                                              ; preds = %444
  %458 = load float, ptr %57, align 4, !tbaa !15
  br label %459

459:                                              ; preds = %457, %455
  %460 = phi float [ %456, %455 ], [ %458, %457 ]
  %461 = fpext float %460 to double
  %462 = fptrunc double %461 to float
  store float %462, ptr %87, align 4, !tbaa !15
  %463 = load float, ptr %105, align 4, !tbaa !15
  %464 = load float, ptr %94, align 4, !tbaa !15
  %465 = fcmp oge float %463, %464
  br i1 %465, label %466, label %468

466:                                              ; preds = %459
  %467 = load float, ptr %105, align 4, !tbaa !15
  br label %470

468:                                              ; preds = %459
  %469 = load float, ptr %94, align 4, !tbaa !15
  br label %470

470:                                              ; preds = %468, %466
  %471 = phi float [ %467, %466 ], [ %469, %468 ]
  %472 = fpext float %471 to double
  %473 = fdiv double 1.000000e+00, %472
  %474 = fptrunc double %473 to float
  store float %474, ptr %102, align 4, !tbaa !15
  %475 = load float, ptr %105, align 4, !tbaa !15
  %476 = load float, ptr %95, align 4, !tbaa !15
  %477 = fcmp oge float %475, %476
  br i1 %477, label %478, label %480

478:                                              ; preds = %470
  %479 = load float, ptr %105, align 4, !tbaa !15
  br label %482

480:                                              ; preds = %470
  %481 = load float, ptr %95, align 4, !tbaa !15
  br label %482

482:                                              ; preds = %480, %478
  %483 = phi float [ %479, %478 ], [ %481, %480 ]
  %484 = fpext float %483 to double
  %485 = fdiv double 1.000000e+00, %484
  %486 = fptrunc double %485 to float
  store float %486, ptr %103, align 4, !tbaa !15
  %487 = load ptr, ptr %25, align 8, !tbaa !5
  %488 = load i64, ptr %487, align 8, !tbaa !9
  store i64 %488, ptr %50, align 8, !tbaa !9
  %489 = load ptr, ptr %27, align 8, !tbaa !5
  %490 = load i64, ptr %489, align 8, !tbaa !9
  %491 = add nsw i64 %490, 1
  store i64 %491, ptr %69, align 8, !tbaa !9
  br label %492

492:                                              ; preds = %704, %482
  %493 = load i64, ptr %69, align 8, !tbaa !9
  %494 = load i64, ptr %50, align 8, !tbaa !9
  %495 = icmp sle i64 %493, %494
  br i1 %495, label %496, label %707

496:                                              ; preds = %492
  %497 = load ptr, ptr %30, align 8, !tbaa !5
  %498 = load i64, ptr %69, align 8, !tbaa !9
  %499 = load i64, ptr %69, align 8, !tbaa !9
  %500 = load i64, ptr %46, align 8, !tbaa !9
  %501 = mul nsw i64 %499, %500
  %502 = add nsw i64 %498, %501
  %503 = getelementptr inbounds %struct.complex, ptr %497, i64 %502
  %504 = call double @c_abs(ptr noundef %503)
  %505 = fptrunc double %504 to float
  store float %505, ptr %85, align 4, !tbaa !15
  %506 = load float, ptr %85, align 4, !tbaa !15
  %507 = load float, ptr %105, align 4, !tbaa !15
  %508 = fcmp ogt float %506, %507
  br i1 %508, label %509, label %641

509:                                              ; preds = %496
  %510 = load i64, ptr %69, align 8, !tbaa !9
  %511 = load i64, ptr %69, align 8, !tbaa !9
  %512 = load i64, ptr %46, align 8, !tbaa !9
  %513 = mul nsw i64 %511, %512
  %514 = add nsw i64 %510, %513
  store i64 %514, ptr %51, align 8, !tbaa !9
  %515 = load ptr, ptr %30, align 8, !tbaa !5
  %516 = load i64, ptr %51, align 8, !tbaa !9
  %517 = getelementptr inbounds %struct.complex, ptr %515, i64 %516
  %518 = getelementptr inbounds %struct.complex, ptr %517, i32 0, i32 0
  %519 = load float, ptr %518, align 4, !tbaa !11
  %520 = load float, ptr %85, align 4, !tbaa !15
  %521 = fdiv float %519, %520
  %522 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %521, ptr %522, align 4, !tbaa !11
  %523 = load ptr, ptr %30, align 8, !tbaa !5
  %524 = load i64, ptr %51, align 8, !tbaa !9
  %525 = getelementptr inbounds %struct.complex, ptr %523, i64 %524
  %526 = getelementptr inbounds %struct.complex, ptr %525, i32 0, i32 1
  %527 = load float, ptr %526, align 4, !tbaa !14
  %528 = load float, ptr %85, align 4, !tbaa !15
  %529 = fdiv float %527, %528
  %530 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %529, ptr %530, align 4, !tbaa !14
  call void @r_cnjg(ptr noundef %62, ptr noundef %63)
  %531 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %532 = load float, ptr %531, align 4, !tbaa !11
  %533 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 0
  store float %532, ptr %533, align 4, !tbaa !11
  %534 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %535 = load float, ptr %534, align 4, !tbaa !14
  %536 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 1
  store float %535, ptr %536, align 4, !tbaa !14
  %537 = load i64, ptr %69, align 8, !tbaa !9
  %538 = load i64, ptr %69, align 8, !tbaa !9
  %539 = load i64, ptr %46, align 8, !tbaa !9
  %540 = mul nsw i64 %538, %539
  %541 = add nsw i64 %537, %540
  store i64 %541, ptr %51, align 8, !tbaa !9
  %542 = load float, ptr %85, align 4, !tbaa !15
  %543 = load ptr, ptr %30, align 8, !tbaa !5
  %544 = load i64, ptr %51, align 8, !tbaa !9
  %545 = getelementptr inbounds %struct.complex, ptr %543, i64 %544
  %546 = getelementptr inbounds %struct.complex, ptr %545, i32 0, i32 0
  store float %542, ptr %546, align 4, !tbaa !11
  %547 = load ptr, ptr %30, align 8, !tbaa !5
  %548 = load i64, ptr %51, align 8, !tbaa !9
  %549 = getelementptr inbounds %struct.complex, ptr %547, i64 %548
  %550 = getelementptr inbounds %struct.complex, ptr %549, i32 0, i32 1
  store float 0.000000e+00, ptr %550, align 4, !tbaa !14
  %551 = load i64, ptr %107, align 8, !tbaa !9
  %552 = icmp ne i64 %551, 0
  br i1 %552, label %553, label %570

553:                                              ; preds = %509
  %554 = load i64, ptr %69, align 8, !tbaa !9
  %555 = sub nsw i64 %554, 1
  store i64 %555, ptr %51, align 8, !tbaa !9
  %556 = load ptr, ptr %30, align 8, !tbaa !5
  %557 = load i64, ptr %69, align 8, !tbaa !9
  %558 = load i64, ptr %46, align 8, !tbaa !9
  %559 = mul nsw i64 %557, %558
  %560 = add nsw i64 %559, 1
  %561 = getelementptr inbounds %struct.complex, ptr %556, i64 %560
  %562 = call i32 @f2c_cscal(ptr noundef %51, ptr noundef %104, ptr noundef %561, ptr noundef @c__1)
  %563 = load ptr, ptr %28, align 8, !tbaa !5
  %564 = load i64, ptr %69, align 8, !tbaa !9
  %565 = load i64, ptr %42, align 8, !tbaa !9
  %566 = mul nsw i64 %564, %565
  %567 = add nsw i64 %566, 1
  %568 = getelementptr inbounds %struct.complex, ptr %563, i64 %567
  %569 = call i32 @f2c_cscal(ptr noundef %69, ptr noundef %104, ptr noundef %568, ptr noundef @c__1)
  br label %628

570:                                              ; preds = %509
  %571 = load i64, ptr %69, align 8, !tbaa !9
  %572 = load i64, ptr %69, align 8, !tbaa !9
  %573 = load i64, ptr %42, align 8, !tbaa !9
  %574 = mul nsw i64 %572, %573
  %575 = add nsw i64 %571, %574
  store i64 %575, ptr %51, align 8, !tbaa !9
  %576 = load i64, ptr %69, align 8, !tbaa !9
  %577 = load i64, ptr %69, align 8, !tbaa !9
  %578 = load i64, ptr %42, align 8, !tbaa !9
  %579 = mul nsw i64 %577, %578
  %580 = add nsw i64 %576, %579
  store i64 %580, ptr %52, align 8, !tbaa !9
  %581 = load ptr, ptr %28, align 8, !tbaa !5
  %582 = load i64, ptr %52, align 8, !tbaa !9
  %583 = getelementptr inbounds %struct.complex, ptr %581, i64 %582
  %584 = getelementptr inbounds %struct.complex, ptr %583, i32 0, i32 0
  %585 = load float, ptr %584, align 4, !tbaa !11
  %586 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 0
  %587 = load float, ptr %586, align 4, !tbaa !11
  %588 = load ptr, ptr %28, align 8, !tbaa !5
  %589 = load i64, ptr %52, align 8, !tbaa !9
  %590 = getelementptr inbounds %struct.complex, ptr %588, i64 %589
  %591 = getelementptr inbounds %struct.complex, ptr %590, i32 0, i32 1
  %592 = load float, ptr %591, align 4, !tbaa !14
  %593 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 1
  %594 = load float, ptr %593, align 4, !tbaa !14
  %595 = fmul float %592, %594
  %596 = fneg float %595
  %597 = call float @llvm.fmuladd.f32(float %585, float %587, float %596)
  %598 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %597, ptr %598, align 4, !tbaa !11
  %599 = load ptr, ptr %28, align 8, !tbaa !5
  %600 = load i64, ptr %52, align 8, !tbaa !9
  %601 = getelementptr inbounds %struct.complex, ptr %599, i64 %600
  %602 = getelementptr inbounds %struct.complex, ptr %601, i32 0, i32 0
  %603 = load float, ptr %602, align 4, !tbaa !11
  %604 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 1
  %605 = load float, ptr %604, align 4, !tbaa !14
  %606 = load ptr, ptr %28, align 8, !tbaa !5
  %607 = load i64, ptr %52, align 8, !tbaa !9
  %608 = getelementptr inbounds %struct.complex, ptr %606, i64 %607
  %609 = getelementptr inbounds %struct.complex, ptr %608, i32 0, i32 1
  %610 = load float, ptr %609, align 4, !tbaa !14
  %611 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 0
  %612 = load float, ptr %611, align 4, !tbaa !11
  %613 = fmul float %610, %612
  %614 = call float @llvm.fmuladd.f32(float %603, float %605, float %613)
  %615 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %614, ptr %615, align 4, !tbaa !14
  %616 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %617 = load float, ptr %616, align 4, !tbaa !11
  %618 = load ptr, ptr %28, align 8, !tbaa !5
  %619 = load i64, ptr %51, align 8, !tbaa !9
  %620 = getelementptr inbounds %struct.complex, ptr %618, i64 %619
  %621 = getelementptr inbounds %struct.complex, ptr %620, i32 0, i32 0
  store float %617, ptr %621, align 4, !tbaa !11
  %622 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %623 = load float, ptr %622, align 4, !tbaa !14
  %624 = load ptr, ptr %28, align 8, !tbaa !5
  %625 = load i64, ptr %51, align 8, !tbaa !9
  %626 = getelementptr inbounds %struct.complex, ptr %624, i64 %625
  %627 = getelementptr inbounds %struct.complex, ptr %626, i32 0, i32 1
  store float %623, ptr %627, align 4, !tbaa !14
  br label %628

628:                                              ; preds = %570, %553
  %629 = load i64, ptr %82, align 8, !tbaa !9
  %630 = icmp ne i64 %629, 0
  br i1 %630, label %631, label %640

631:                                              ; preds = %628
  %632 = load ptr, ptr %25, align 8, !tbaa !5
  %633 = load ptr, ptr %36, align 8, !tbaa !5
  %634 = load i64, ptr %69, align 8, !tbaa !9
  %635 = load i64, ptr %48, align 8, !tbaa !9
  %636 = mul nsw i64 %634, %635
  %637 = add nsw i64 %636, 1
  %638 = getelementptr inbounds %struct.complex, ptr %633, i64 %637
  %639 = call i32 @f2c_cscal(ptr noundef %632, ptr noundef %104, ptr noundef %638, ptr noundef @c__1)
  br label %640

640:                                              ; preds = %631, %628
  br label %655

641:                                              ; preds = %496
  %642 = load i64, ptr %69, align 8, !tbaa !9
  %643 = load i64, ptr %69, align 8, !tbaa !9
  %644 = load i64, ptr %46, align 8, !tbaa !9
  %645 = mul nsw i64 %643, %644
  %646 = add nsw i64 %642, %645
  store i64 %646, ptr %51, align 8, !tbaa !9
  %647 = load ptr, ptr %30, align 8, !tbaa !5
  %648 = load i64, ptr %51, align 8, !tbaa !9
  %649 = getelementptr inbounds %struct.complex, ptr %647, i64 %648
  %650 = getelementptr inbounds %struct.complex, ptr %649, i32 0, i32 0
  store float 0.000000e+00, ptr %650, align 4, !tbaa !11
  %651 = load ptr, ptr %30, align 8, !tbaa !5
  %652 = load i64, ptr %51, align 8, !tbaa !9
  %653 = getelementptr inbounds %struct.complex, ptr %651, i64 %652
  %654 = getelementptr inbounds %struct.complex, ptr %653, i32 0, i32 1
  store float 0.000000e+00, ptr %654, align 4, !tbaa !14
  br label %655

655:                                              ; preds = %641, %640
  %656 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %656, ptr %51, align 8, !tbaa !9
  %657 = load i64, ptr %69, align 8, !tbaa !9
  %658 = load i64, ptr %69, align 8, !tbaa !9
  %659 = load i64, ptr %42, align 8, !tbaa !9
  %660 = mul nsw i64 %658, %659
  %661 = add nsw i64 %657, %660
  store i64 %661, ptr %52, align 8, !tbaa !9
  %662 = load ptr, ptr %28, align 8, !tbaa !5
  %663 = load i64, ptr %52, align 8, !tbaa !9
  %664 = getelementptr inbounds %struct.complex, ptr %662, i64 %663
  %665 = getelementptr inbounds %struct.complex, ptr %664, i32 0, i32 0
  %666 = load float, ptr %665, align 4, !tbaa !11
  %667 = load ptr, ptr %32, align 8, !tbaa !5
  %668 = load i64, ptr %51, align 8, !tbaa !9
  %669 = getelementptr inbounds %struct.complex, ptr %667, i64 %668
  %670 = getelementptr inbounds %struct.complex, ptr %669, i32 0, i32 0
  store float %666, ptr %670, align 4, !tbaa !11
  %671 = load ptr, ptr %28, align 8, !tbaa !5
  %672 = load i64, ptr %52, align 8, !tbaa !9
  %673 = getelementptr inbounds %struct.complex, ptr %671, i64 %672
  %674 = getelementptr inbounds %struct.complex, ptr %673, i32 0, i32 1
  %675 = load float, ptr %674, align 4, !tbaa !14
  %676 = load ptr, ptr %32, align 8, !tbaa !5
  %677 = load i64, ptr %51, align 8, !tbaa !9
  %678 = getelementptr inbounds %struct.complex, ptr %676, i64 %677
  %679 = getelementptr inbounds %struct.complex, ptr %678, i32 0, i32 1
  store float %675, ptr %679, align 4, !tbaa !14
  %680 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %680, ptr %51, align 8, !tbaa !9
  %681 = load i64, ptr %69, align 8, !tbaa !9
  %682 = load i64, ptr %69, align 8, !tbaa !9
  %683 = load i64, ptr %46, align 8, !tbaa !9
  %684 = mul nsw i64 %682, %683
  %685 = add nsw i64 %681, %684
  store i64 %685, ptr %52, align 8, !tbaa !9
  %686 = load ptr, ptr %30, align 8, !tbaa !5
  %687 = load i64, ptr %52, align 8, !tbaa !9
  %688 = getelementptr inbounds %struct.complex, ptr %686, i64 %687
  %689 = getelementptr inbounds %struct.complex, ptr %688, i32 0, i32 0
  %690 = load float, ptr %689, align 4, !tbaa !11
  %691 = load ptr, ptr %33, align 8, !tbaa !5
  %692 = load i64, ptr %51, align 8, !tbaa !9
  %693 = getelementptr inbounds %struct.complex, ptr %691, i64 %692
  %694 = getelementptr inbounds %struct.complex, ptr %693, i32 0, i32 0
  store float %690, ptr %694, align 4, !tbaa !11
  %695 = load ptr, ptr %30, align 8, !tbaa !5
  %696 = load i64, ptr %52, align 8, !tbaa !9
  %697 = getelementptr inbounds %struct.complex, ptr %695, i64 %696
  %698 = getelementptr inbounds %struct.complex, ptr %697, i32 0, i32 1
  %699 = load float, ptr %698, align 4, !tbaa !14
  %700 = load ptr, ptr %33, align 8, !tbaa !5
  %701 = load i64, ptr %51, align 8, !tbaa !9
  %702 = getelementptr inbounds %struct.complex, ptr %700, i64 %701
  %703 = getelementptr inbounds %struct.complex, ptr %702, i32 0, i32 1
  store float %699, ptr %703, align 4, !tbaa !14
  br label %704

704:                                              ; preds = %655
  %705 = load i64, ptr %69, align 8, !tbaa !9
  %706 = add nsw i64 %705, 1
  store i64 %706, ptr %69, align 8, !tbaa !9
  br label %492, !llvm.loop !16

707:                                              ; preds = %492
  %708 = load ptr, ptr %27, align 8, !tbaa !5
  %709 = load i64, ptr %708, align 8, !tbaa !9
  %710 = load ptr, ptr %26, align 8, !tbaa !5
  %711 = load i64, ptr %710, align 8, !tbaa !9
  %712 = icmp slt i64 %709, %711
  br i1 %712, label %713, label %714

713:                                              ; preds = %707
  br label %4228

714:                                              ; preds = %707
  %715 = load ptr, ptr %27, align 8, !tbaa !5
  %716 = load i64, ptr %715, align 8, !tbaa !9
  store i64 %716, ptr %92, align 8, !tbaa !9
  %717 = load i64, ptr %107, align 8, !tbaa !9
  %718 = icmp ne i64 %717, 0
  br i1 %718, label %719, label %722

719:                                              ; preds = %714
  store i64 1, ptr %115, align 8, !tbaa !9
  %720 = load ptr, ptr %25, align 8, !tbaa !5
  %721 = load i64, ptr %720, align 8, !tbaa !9
  store i64 %721, ptr %109, align 8, !tbaa !9
  br label %727

722:                                              ; preds = %714
  %723 = load ptr, ptr %26, align 8, !tbaa !5
  %724 = load i64, ptr %723, align 8, !tbaa !9
  store i64 %724, ptr %115, align 8, !tbaa !9
  %725 = load ptr, ptr %27, align 8, !tbaa !5
  %726 = load i64, ptr %725, align 8, !tbaa !9
  store i64 %726, ptr %109, align 8, !tbaa !9
  br label %727

727:                                              ; preds = %722, %719
  store i64 0, ptr %91, align 8, !tbaa !9
  %728 = getelementptr inbounds %struct.complex, ptr %106, i32 0, i32 0
  store float 0.000000e+00, ptr %728, align 4, !tbaa !11
  %729 = getelementptr inbounds %struct.complex, ptr %106, i32 0, i32 1
  store float 0.000000e+00, ptr %729, align 4, !tbaa !14
  %730 = load ptr, ptr %27, align 8, !tbaa !5
  %731 = load i64, ptr %730, align 8, !tbaa !9
  %732 = load ptr, ptr %26, align 8, !tbaa !5
  %733 = load i64, ptr %732, align 8, !tbaa !9
  %734 = sub nsw i64 %731, %733
  %735 = add nsw i64 %734, 1
  %736 = mul nsw i64 %735, 30
  store i64 %736, ptr %96, align 8, !tbaa !9
  %737 = load i64, ptr %96, align 8, !tbaa !9
  store i64 %737, ptr %50, align 8, !tbaa !9
  store i64 1, ptr %93, align 8, !tbaa !9
  br label %738

738:                                              ; preds = %4221, %727
  %739 = load i64, ptr %93, align 8, !tbaa !9
  %740 = load i64, ptr %50, align 8, !tbaa !9
  %741 = icmp sle i64 %739, %740
  br i1 %741, label %742, label %4224

742:                                              ; preds = %738
  %743 = load i64, ptr %93, align 8, !tbaa !9
  %744 = load i64, ptr %96, align 8, !tbaa !9
  %745 = icmp sgt i64 %743, %744
  br i1 %745, label %746, label %747

746:                                              ; preds = %742
  br label %4225

747:                                              ; preds = %742
  %748 = load i64, ptr %92, align 8, !tbaa !9
  %749 = load ptr, ptr %26, align 8, !tbaa !5
  %750 = load i64, ptr %749, align 8, !tbaa !9
  %751 = icmp eq i64 %748, %750
  br i1 %751, label %752, label %753

752:                                              ; preds = %747
  br label %1698

753:                                              ; preds = %747
  %754 = load i64, ptr %92, align 8, !tbaa !9
  %755 = load i64, ptr %92, align 8, !tbaa !9
  %756 = sub nsw i64 %755, 1
  %757 = load i64, ptr %42, align 8, !tbaa !9
  %758 = mul nsw i64 %756, %757
  %759 = add nsw i64 %754, %758
  store i64 %759, ptr %51, align 8, !tbaa !9
  %760 = load ptr, ptr %28, align 8, !tbaa !5
  %761 = load i64, ptr %51, align 8, !tbaa !9
  %762 = getelementptr inbounds %struct.complex, ptr %760, i64 %761
  %763 = getelementptr inbounds %struct.complex, ptr %762, i32 0, i32 0
  %764 = load float, ptr %763, align 4, !tbaa !11
  store float %764, ptr %56, align 4, !tbaa !15
  %765 = load float, ptr %56, align 4, !tbaa !15
  %766 = fcmp oge float %765, 0.000000e+00
  br i1 %766, label %767, label %769

767:                                              ; preds = %753
  %768 = load float, ptr %56, align 4, !tbaa !15
  br label %772

769:                                              ; preds = %753
  %770 = load float, ptr %56, align 4, !tbaa !15
  %771 = fneg float %770
  br label %772

772:                                              ; preds = %769, %767
  %773 = phi float [ %768, %767 ], [ %771, %769 ]
  %774 = fpext float %773 to double
  %775 = load ptr, ptr %28, align 8, !tbaa !5
  %776 = load i64, ptr %92, align 8, !tbaa !9
  %777 = load i64, ptr %92, align 8, !tbaa !9
  %778 = sub nsw i64 %777, 1
  %779 = load i64, ptr %42, align 8, !tbaa !9
  %780 = mul nsw i64 %778, %779
  %781 = add nsw i64 %776, %780
  %782 = getelementptr inbounds %struct.complex, ptr %775, i64 %781
  %783 = call double @r_imag(ptr noundef %782)
  %784 = fptrunc double %783 to float
  store float %784, ptr %57, align 4, !tbaa !15
  %785 = load float, ptr %57, align 4, !tbaa !15
  %786 = fcmp oge float %785, 0.000000e+00
  br i1 %786, label %787, label %789

787:                                              ; preds = %772
  %788 = load float, ptr %57, align 4, !tbaa !15
  br label %792

789:                                              ; preds = %772
  %790 = load float, ptr %57, align 4, !tbaa !15
  %791 = fneg float %790
  br label %792

792:                                              ; preds = %789, %787
  %793 = phi float [ %788, %787 ], [ %791, %789 ]
  %794 = fpext float %793 to double
  %795 = fadd double %774, %794
  %796 = load float, ptr %86, align 4, !tbaa !15
  %797 = fpext float %796 to double
  %798 = fcmp ole double %795, %797
  br i1 %798, label %799, label %814

799:                                              ; preds = %792
  %800 = load i64, ptr %92, align 8, !tbaa !9
  %801 = load i64, ptr %92, align 8, !tbaa !9
  %802 = sub nsw i64 %801, 1
  %803 = load i64, ptr %42, align 8, !tbaa !9
  %804 = mul nsw i64 %802, %803
  %805 = add nsw i64 %800, %804
  store i64 %805, ptr %51, align 8, !tbaa !9
  %806 = load ptr, ptr %28, align 8, !tbaa !5
  %807 = load i64, ptr %51, align 8, !tbaa !9
  %808 = getelementptr inbounds %struct.complex, ptr %806, i64 %807
  %809 = getelementptr inbounds %struct.complex, ptr %808, i32 0, i32 0
  store float 0.000000e+00, ptr %809, align 4, !tbaa !11
  %810 = load ptr, ptr %28, align 8, !tbaa !5
  %811 = load i64, ptr %51, align 8, !tbaa !9
  %812 = getelementptr inbounds %struct.complex, ptr %810, i64 %811
  %813 = getelementptr inbounds %struct.complex, ptr %812, i32 0, i32 1
  store float 0.000000e+00, ptr %813, align 4, !tbaa !14
  br label %1698

814:                                              ; preds = %792
  br label %815

815:                                              ; preds = %814
  %816 = load ptr, ptr %30, align 8, !tbaa !5
  %817 = load i64, ptr %92, align 8, !tbaa !9
  %818 = load i64, ptr %92, align 8, !tbaa !9
  %819 = load i64, ptr %46, align 8, !tbaa !9
  %820 = mul nsw i64 %818, %819
  %821 = add nsw i64 %817, %820
  %822 = getelementptr inbounds %struct.complex, ptr %816, i64 %821
  %823 = call double @c_abs(ptr noundef %822)
  %824 = load float, ptr %87, align 4, !tbaa !15
  %825 = fpext float %824 to double
  %826 = fcmp ole double %823, %825
  br i1 %826, label %827, label %841

827:                                              ; preds = %815
  %828 = load i64, ptr %92, align 8, !tbaa !9
  %829 = load i64, ptr %92, align 8, !tbaa !9
  %830 = load i64, ptr %46, align 8, !tbaa !9
  %831 = mul nsw i64 %829, %830
  %832 = add nsw i64 %828, %831
  store i64 %832, ptr %51, align 8, !tbaa !9
  %833 = load ptr, ptr %30, align 8, !tbaa !5
  %834 = load i64, ptr %51, align 8, !tbaa !9
  %835 = getelementptr inbounds %struct.complex, ptr %833, i64 %834
  %836 = getelementptr inbounds %struct.complex, ptr %835, i32 0, i32 0
  store float 0.000000e+00, ptr %836, align 4, !tbaa !11
  %837 = load ptr, ptr %30, align 8, !tbaa !5
  %838 = load i64, ptr %51, align 8, !tbaa !9
  %839 = getelementptr inbounds %struct.complex, ptr %837, i64 %838
  %840 = getelementptr inbounds %struct.complex, ptr %839, i32 0, i32 1
  store float 0.000000e+00, ptr %840, align 4, !tbaa !14
  br label %1593

841:                                              ; preds = %815
  %842 = load ptr, ptr %26, align 8, !tbaa !5
  %843 = load i64, ptr %842, align 8, !tbaa !9
  store i64 %843, ptr %51, align 8, !tbaa !9
  %844 = load i64, ptr %92, align 8, !tbaa !9
  %845 = sub nsw i64 %844, 1
  store i64 %845, ptr %69, align 8, !tbaa !9
  br label %846

846:                                              ; preds = %1584, %841
  %847 = load i64, ptr %69, align 8, !tbaa !9
  %848 = load i64, ptr %51, align 8, !tbaa !9
  %849 = icmp sge i64 %847, %848
  br i1 %849, label %850, label %1587

850:                                              ; preds = %846
  %851 = load i64, ptr %69, align 8, !tbaa !9
  %852 = load ptr, ptr %26, align 8, !tbaa !5
  %853 = load i64, ptr %852, align 8, !tbaa !9
  %854 = icmp eq i64 %851, %853
  br i1 %854, label %855, label %856

855:                                              ; preds = %850
  store i64 1, ptr %112, align 8, !tbaa !9
  br label %919

856:                                              ; preds = %850
  %857 = load i64, ptr %69, align 8, !tbaa !9
  %858 = load i64, ptr %69, align 8, !tbaa !9
  %859 = sub nsw i64 %858, 1
  %860 = load i64, ptr %42, align 8, !tbaa !9
  %861 = mul nsw i64 %859, %860
  %862 = add nsw i64 %857, %861
  store i64 %862, ptr %52, align 8, !tbaa !9
  %863 = load ptr, ptr %28, align 8, !tbaa !5
  %864 = load i64, ptr %52, align 8, !tbaa !9
  %865 = getelementptr inbounds %struct.complex, ptr %863, i64 %864
  %866 = getelementptr inbounds %struct.complex, ptr %865, i32 0, i32 0
  %867 = load float, ptr %866, align 4, !tbaa !11
  store float %867, ptr %56, align 4, !tbaa !15
  %868 = load float, ptr %56, align 4, !tbaa !15
  %869 = fcmp oge float %868, 0.000000e+00
  br i1 %869, label %870, label %872

870:                                              ; preds = %856
  %871 = load float, ptr %56, align 4, !tbaa !15
  br label %875

872:                                              ; preds = %856
  %873 = load float, ptr %56, align 4, !tbaa !15
  %874 = fneg float %873
  br label %875

875:                                              ; preds = %872, %870
  %876 = phi float [ %871, %870 ], [ %874, %872 ]
  %877 = fpext float %876 to double
  %878 = load ptr, ptr %28, align 8, !tbaa !5
  %879 = load i64, ptr %69, align 8, !tbaa !9
  %880 = load i64, ptr %69, align 8, !tbaa !9
  %881 = sub nsw i64 %880, 1
  %882 = load i64, ptr %42, align 8, !tbaa !9
  %883 = mul nsw i64 %881, %882
  %884 = add nsw i64 %879, %883
  %885 = getelementptr inbounds %struct.complex, ptr %878, i64 %884
  %886 = call double @r_imag(ptr noundef %885)
  %887 = fptrunc double %886 to float
  store float %887, ptr %57, align 4, !tbaa !15
  %888 = load float, ptr %57, align 4, !tbaa !15
  %889 = fcmp oge float %888, 0.000000e+00
  br i1 %889, label %890, label %892

890:                                              ; preds = %875
  %891 = load float, ptr %57, align 4, !tbaa !15
  br label %895

892:                                              ; preds = %875
  %893 = load float, ptr %57, align 4, !tbaa !15
  %894 = fneg float %893
  br label %895

895:                                              ; preds = %892, %890
  %896 = phi float [ %891, %890 ], [ %894, %892 ]
  %897 = fpext float %896 to double
  %898 = fadd double %877, %897
  %899 = load float, ptr %86, align 4, !tbaa !15
  %900 = fpext float %899 to double
  %901 = fcmp ole double %898, %900
  br i1 %901, label %902, label %917

902:                                              ; preds = %895
  %903 = load i64, ptr %69, align 8, !tbaa !9
  %904 = load i64, ptr %69, align 8, !tbaa !9
  %905 = sub nsw i64 %904, 1
  %906 = load i64, ptr %42, align 8, !tbaa !9
  %907 = mul nsw i64 %905, %906
  %908 = add nsw i64 %903, %907
  store i64 %908, ptr %52, align 8, !tbaa !9
  %909 = load ptr, ptr %28, align 8, !tbaa !5
  %910 = load i64, ptr %52, align 8, !tbaa !9
  %911 = getelementptr inbounds %struct.complex, ptr %909, i64 %910
  %912 = getelementptr inbounds %struct.complex, ptr %911, i32 0, i32 0
  store float 0.000000e+00, ptr %912, align 4, !tbaa !11
  %913 = load ptr, ptr %28, align 8, !tbaa !5
  %914 = load i64, ptr %52, align 8, !tbaa !9
  %915 = getelementptr inbounds %struct.complex, ptr %913, i64 %914
  %916 = getelementptr inbounds %struct.complex, ptr %915, i32 0, i32 1
  store float 0.000000e+00, ptr %916, align 4, !tbaa !14
  store i64 1, ptr %112, align 8, !tbaa !9
  br label %918

917:                                              ; preds = %895
  store i64 0, ptr %112, align 8, !tbaa !9
  br label %918

918:                                              ; preds = %917, %902
  br label %919

919:                                              ; preds = %918, %855
  %920 = load ptr, ptr %30, align 8, !tbaa !5
  %921 = load i64, ptr %69, align 8, !tbaa !9
  %922 = load i64, ptr %69, align 8, !tbaa !9
  %923 = load i64, ptr %46, align 8, !tbaa !9
  %924 = mul nsw i64 %922, %923
  %925 = add nsw i64 %921, %924
  %926 = getelementptr inbounds %struct.complex, ptr %920, i64 %925
  %927 = call double @c_abs(ptr noundef %926)
  %928 = load float, ptr %87, align 4, !tbaa !15
  %929 = fpext float %928 to double
  %930 = fcmp olt double %927, %929
  br i1 %930, label %931, label %1577

931:                                              ; preds = %919
  %932 = load i64, ptr %69, align 8, !tbaa !9
  %933 = load i64, ptr %69, align 8, !tbaa !9
  %934 = load i64, ptr %46, align 8, !tbaa !9
  %935 = mul nsw i64 %933, %934
  %936 = add nsw i64 %932, %935
  store i64 %936, ptr %52, align 8, !tbaa !9
  %937 = load ptr, ptr %30, align 8, !tbaa !5
  %938 = load i64, ptr %52, align 8, !tbaa !9
  %939 = getelementptr inbounds %struct.complex, ptr %937, i64 %938
  %940 = getelementptr inbounds %struct.complex, ptr %939, i32 0, i32 0
  store float 0.000000e+00, ptr %940, align 4, !tbaa !11
  %941 = load ptr, ptr %30, align 8, !tbaa !5
  %942 = load i64, ptr %52, align 8, !tbaa !9
  %943 = getelementptr inbounds %struct.complex, ptr %941, i64 %942
  %944 = getelementptr inbounds %struct.complex, ptr %943, i32 0, i32 1
  store float 0.000000e+00, ptr %944, align 4, !tbaa !14
  store i64 0, ptr %101, align 8, !tbaa !9
  %945 = load i64, ptr %112, align 8, !tbaa !9
  %946 = icmp ne i64 %945, 0
  br i1 %946, label %1084, label %947

947:                                              ; preds = %931
  %948 = load i64, ptr %69, align 8, !tbaa !9
  %949 = load i64, ptr %69, align 8, !tbaa !9
  %950 = sub nsw i64 %949, 1
  %951 = load i64, ptr %42, align 8, !tbaa !9
  %952 = mul nsw i64 %950, %951
  %953 = add nsw i64 %948, %952
  store i64 %953, ptr %52, align 8, !tbaa !9
  %954 = load i64, ptr %69, align 8, !tbaa !9
  %955 = add nsw i64 %954, 1
  %956 = load i64, ptr %69, align 8, !tbaa !9
  %957 = load i64, ptr %42, align 8, !tbaa !9
  %958 = mul nsw i64 %956, %957
  %959 = add nsw i64 %955, %958
  store i64 %959, ptr %53, align 8, !tbaa !9
  %960 = load i64, ptr %69, align 8, !tbaa !9
  %961 = load i64, ptr %69, align 8, !tbaa !9
  %962 = load i64, ptr %42, align 8, !tbaa !9
  %963 = mul nsw i64 %961, %962
  %964 = add nsw i64 %960, %963
  store i64 %964, ptr %54, align 8, !tbaa !9
  %965 = load ptr, ptr %28, align 8, !tbaa !5
  %966 = load i64, ptr %52, align 8, !tbaa !9
  %967 = getelementptr inbounds %struct.complex, ptr %965, i64 %966
  %968 = getelementptr inbounds %struct.complex, ptr %967, i32 0, i32 0
  %969 = load float, ptr %968, align 4, !tbaa !11
  store float %969, ptr %56, align 4, !tbaa !15
  %970 = load float, ptr %56, align 4, !tbaa !15
  %971 = fcmp oge float %970, 0.000000e+00
  br i1 %971, label %972, label %974

972:                                              ; preds = %947
  %973 = load float, ptr %56, align 4, !tbaa !15
  br label %977

974:                                              ; preds = %947
  %975 = load float, ptr %56, align 4, !tbaa !15
  %976 = fneg float %975
  br label %977

977:                                              ; preds = %974, %972
  %978 = phi float [ %973, %972 ], [ %976, %974 ]
  %979 = fpext float %978 to double
  %980 = load ptr, ptr %28, align 8, !tbaa !5
  %981 = load i64, ptr %69, align 8, !tbaa !9
  %982 = load i64, ptr %69, align 8, !tbaa !9
  %983 = sub nsw i64 %982, 1
  %984 = load i64, ptr %42, align 8, !tbaa !9
  %985 = mul nsw i64 %983, %984
  %986 = add nsw i64 %981, %985
  %987 = getelementptr inbounds %struct.complex, ptr %980, i64 %986
  %988 = call double @r_imag(ptr noundef %987)
  %989 = fptrunc double %988 to float
  store float %989, ptr %57, align 4, !tbaa !15
  %990 = load float, ptr %57, align 4, !tbaa !15
  %991 = fcmp oge float %990, 0.000000e+00
  br i1 %991, label %992, label %994

992:                                              ; preds = %977
  %993 = load float, ptr %57, align 4, !tbaa !15
  br label %997

994:                                              ; preds = %977
  %995 = load float, ptr %57, align 4, !tbaa !15
  %996 = fneg float %995
  br label %997

997:                                              ; preds = %994, %992
  %998 = phi float [ %993, %992 ], [ %996, %994 ]
  %999 = fpext float %998 to double
  %1000 = fadd double %979, %999
  %1001 = load float, ptr %102, align 4, !tbaa !15
  %1002 = fpext float %1001 to double
  %1003 = load ptr, ptr %28, align 8, !tbaa !5
  %1004 = load i64, ptr %53, align 8, !tbaa !9
  %1005 = getelementptr inbounds %struct.complex, ptr %1003, i64 %1004
  %1006 = getelementptr inbounds %struct.complex, ptr %1005, i32 0, i32 0
  %1007 = load float, ptr %1006, align 4, !tbaa !11
  store float %1007, ptr %58, align 4, !tbaa !15
  %1008 = load float, ptr %58, align 4, !tbaa !15
  %1009 = fcmp oge float %1008, 0.000000e+00
  br i1 %1009, label %1010, label %1012

1010:                                             ; preds = %997
  %1011 = load float, ptr %58, align 4, !tbaa !15
  br label %1015

1012:                                             ; preds = %997
  %1013 = load float, ptr %58, align 4, !tbaa !15
  %1014 = fneg float %1013
  br label %1015

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

1030:                                             ; preds = %1015
  %1031 = load float, ptr %59, align 4, !tbaa !15
  br label %1035

1032:                                             ; preds = %1015
  %1033 = load float, ptr %59, align 4, !tbaa !15
  %1034 = fneg float %1033
  br label %1035

1035:                                             ; preds = %1032, %1030
  %1036 = phi float [ %1031, %1030 ], [ %1034, %1032 ]
  %1037 = fpext float %1036 to double
  %1038 = fadd double %1017, %1037
  %1039 = fmul double %1002, %1038
  %1040 = fmul double %1000, %1039
  %1041 = load ptr, ptr %28, align 8, !tbaa !5
  %1042 = load i64, ptr %54, align 8, !tbaa !9
  %1043 = getelementptr inbounds %struct.complex, ptr %1041, i64 %1042
  %1044 = getelementptr inbounds %struct.complex, ptr %1043, i32 0, i32 0
  %1045 = load float, ptr %1044, align 4, !tbaa !11
  store float %1045, ptr %60, align 4, !tbaa !15
  %1046 = load float, ptr %60, align 4, !tbaa !15
  %1047 = fcmp oge float %1046, 0.000000e+00
  br i1 %1047, label %1048, label %1050

1048:                                             ; preds = %1035
  %1049 = load float, ptr %60, align 4, !tbaa !15
  br label %1053

1050:                                             ; preds = %1035
  %1051 = load float, ptr %60, align 4, !tbaa !15
  %1052 = fneg float %1051
  br label %1053

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

1067:                                             ; preds = %1053
  %1068 = load float, ptr %61, align 4, !tbaa !15
  br label %1072

1069:                                             ; preds = %1053
  %1070 = load float, ptr %61, align 4, !tbaa !15
  %1071 = fneg float %1070
  br label %1072

1072:                                             ; preds = %1069, %1067
  %1073 = phi float [ %1068, %1067 ], [ %1071, %1069 ]
  %1074 = fpext float %1073 to double
  %1075 = fadd double %1055, %1074
  %1076 = load float, ptr %102, align 4, !tbaa !15
  %1077 = load float, ptr %86, align 4, !tbaa !15
  %1078 = fmul float %1076, %1077
  %1079 = fpext float %1078 to double
  %1080 = fmul double %1075, %1079
  %1081 = fcmp ole double %1040, %1080
  br i1 %1081, label %1082, label %1083

1082:                                             ; preds = %1072
  store i64 1, ptr %101, align 8, !tbaa !9
  br label %1083

1083:                                             ; preds = %1082, %1072
  br label %1084

1084:                                             ; preds = %1083, %931
  %1085 = load i64, ptr %112, align 8, !tbaa !9
  %1086 = icmp ne i64 %1085, 0
  br i1 %1086, label %1090, label %1087

1087:                                             ; preds = %1084
  %1088 = load i64, ptr %101, align 8, !tbaa !9
  %1089 = icmp ne i64 %1088, 0
  br i1 %1089, label %1090, label %1331

1090:                                             ; preds = %1087, %1084
  %1091 = load i64, ptr %92, align 8, !tbaa !9
  %1092 = sub nsw i64 %1091, 1
  store i64 %1092, ptr %52, align 8, !tbaa !9
  %1093 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %1093, ptr %80, align 8, !tbaa !9
  br label %1094

1094:                                             ; preds = %1327, %1090
  %1095 = load i64, ptr %80, align 8, !tbaa !9
  %1096 = load i64, ptr %52, align 8, !tbaa !9
  %1097 = icmp sle i64 %1095, %1096
  br i1 %1097, label %1098, label %1330

1098:                                             ; preds = %1094
  %1099 = load i64, ptr %80, align 8, !tbaa !9
  %1100 = load i64, ptr %80, align 8, !tbaa !9
  %1101 = load i64, ptr %42, align 8, !tbaa !9
  %1102 = mul nsw i64 %1100, %1101
  %1103 = add nsw i64 %1099, %1102
  store i64 %1103, ptr %53, align 8, !tbaa !9
  %1104 = load ptr, ptr %28, align 8, !tbaa !5
  %1105 = load i64, ptr %53, align 8, !tbaa !9
  %1106 = getelementptr inbounds %struct.complex, ptr %1104, i64 %1105
  %1107 = getelementptr inbounds %struct.complex, ptr %1106, i32 0, i32 0
  %1108 = load float, ptr %1107, align 4, !tbaa !11
  %1109 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %1108, ptr %1109, align 4, !tbaa !11
  %1110 = load ptr, ptr %28, align 8, !tbaa !5
  %1111 = load i64, ptr %53, align 8, !tbaa !9
  %1112 = getelementptr inbounds %struct.complex, ptr %1110, i64 %1111
  %1113 = getelementptr inbounds %struct.complex, ptr %1112, i32 0, i32 1
  %1114 = load float, ptr %1113, align 4, !tbaa !14
  %1115 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %1114, ptr %1115, align 4, !tbaa !14
  %1116 = load ptr, ptr %28, align 8, !tbaa !5
  %1117 = load i64, ptr %80, align 8, !tbaa !9
  %1118 = add nsw i64 %1117, 1
  %1119 = load i64, ptr %80, align 8, !tbaa !9
  %1120 = load i64, ptr %42, align 8, !tbaa !9
  %1121 = mul nsw i64 %1119, %1120
  %1122 = add nsw i64 %1118, %1121
  %1123 = getelementptr inbounds %struct.complex, ptr %1116, i64 %1122
  %1124 = load ptr, ptr %28, align 8, !tbaa !5
  %1125 = load i64, ptr %80, align 8, !tbaa !9
  %1126 = load i64, ptr %80, align 8, !tbaa !9
  %1127 = load i64, ptr %42, align 8, !tbaa !9
  %1128 = mul nsw i64 %1126, %1127
  %1129 = add nsw i64 %1125, %1128
  %1130 = getelementptr inbounds %struct.complex, ptr %1124, i64 %1129
  %1131 = call i32 @clartg_(ptr noundef %90, ptr noundef %1123, ptr noundef %68, ptr noundef %70, ptr noundef %1130)
  %1132 = load i64, ptr %80, align 8, !tbaa !9
  %1133 = add nsw i64 %1132, 1
  %1134 = load i64, ptr %80, align 8, !tbaa !9
  %1135 = load i64, ptr %42, align 8, !tbaa !9
  %1136 = mul nsw i64 %1134, %1135
  %1137 = add nsw i64 %1133, %1136
  store i64 %1137, ptr %53, align 8, !tbaa !9
  %1138 = load ptr, ptr %28, align 8, !tbaa !5
  %1139 = load i64, ptr %53, align 8, !tbaa !9
  %1140 = getelementptr inbounds %struct.complex, ptr %1138, i64 %1139
  %1141 = getelementptr inbounds %struct.complex, ptr %1140, i32 0, i32 0
  store float 0.000000e+00, ptr %1141, align 4, !tbaa !11
  %1142 = load ptr, ptr %28, align 8, !tbaa !5
  %1143 = load i64, ptr %53, align 8, !tbaa !9
  %1144 = getelementptr inbounds %struct.complex, ptr %1142, i64 %1143
  %1145 = getelementptr inbounds %struct.complex, ptr %1144, i32 0, i32 1
  store float 0.000000e+00, ptr %1145, align 4, !tbaa !14
  %1146 = load i64, ptr %109, align 8, !tbaa !9
  %1147 = load i64, ptr %80, align 8, !tbaa !9
  %1148 = sub nsw i64 %1146, %1147
  store i64 %1148, ptr %53, align 8, !tbaa !9
  %1149 = load ptr, ptr %28, align 8, !tbaa !5
  %1150 = load i64, ptr %80, align 8, !tbaa !9
  %1151 = load i64, ptr %80, align 8, !tbaa !9
  %1152 = add nsw i64 %1151, 1
  %1153 = load i64, ptr %42, align 8, !tbaa !9
  %1154 = mul nsw i64 %1152, %1153
  %1155 = add nsw i64 %1150, %1154
  %1156 = getelementptr inbounds %struct.complex, ptr %1149, i64 %1155
  %1157 = load ptr, ptr %29, align 8, !tbaa !5
  %1158 = load ptr, ptr %28, align 8, !tbaa !5
  %1159 = load i64, ptr %80, align 8, !tbaa !9
  %1160 = add nsw i64 %1159, 1
  %1161 = load i64, ptr %80, align 8, !tbaa !9
  %1162 = add nsw i64 %1161, 1
  %1163 = load i64, ptr %42, align 8, !tbaa !9
  %1164 = mul nsw i64 %1162, %1163
  %1165 = add nsw i64 %1160, %1164
  %1166 = getelementptr inbounds %struct.complex, ptr %1158, i64 %1165
  %1167 = load ptr, ptr %29, align 8, !tbaa !5
  %1168 = call i32 @crot_(ptr noundef %53, ptr noundef %1156, ptr noundef %1157, ptr noundef %1166, ptr noundef %1167, ptr noundef %68, ptr noundef %70)
  %1169 = load i64, ptr %109, align 8, !tbaa !9
  %1170 = load i64, ptr %80, align 8, !tbaa !9
  %1171 = sub nsw i64 %1169, %1170
  store i64 %1171, ptr %53, align 8, !tbaa !9
  %1172 = load ptr, ptr %30, align 8, !tbaa !5
  %1173 = load i64, ptr %80, align 8, !tbaa !9
  %1174 = load i64, ptr %80, align 8, !tbaa !9
  %1175 = add nsw i64 %1174, 1
  %1176 = load i64, ptr %46, align 8, !tbaa !9
  %1177 = mul nsw i64 %1175, %1176
  %1178 = add nsw i64 %1173, %1177
  %1179 = getelementptr inbounds %struct.complex, ptr %1172, i64 %1178
  %1180 = load ptr, ptr %31, align 8, !tbaa !5
  %1181 = load ptr, ptr %30, align 8, !tbaa !5
  %1182 = load i64, ptr %80, align 8, !tbaa !9
  %1183 = add nsw i64 %1182, 1
  %1184 = load i64, ptr %80, align 8, !tbaa !9
  %1185 = add nsw i64 %1184, 1
  %1186 = load i64, ptr %46, align 8, !tbaa !9
  %1187 = mul nsw i64 %1185, %1186
  %1188 = add nsw i64 %1183, %1187
  %1189 = getelementptr inbounds %struct.complex, ptr %1181, i64 %1188
  %1190 = load ptr, ptr %31, align 8, !tbaa !5
  %1191 = call i32 @crot_(ptr noundef %53, ptr noundef %1179, ptr noundef %1180, ptr noundef %1189, ptr noundef %1190, ptr noundef %68, ptr noundef %70)
  %1192 = load i64, ptr %81, align 8, !tbaa !9
  %1193 = icmp ne i64 %1192, 0
  br i1 %1193, label %1194, label %1210

1194:                                             ; preds = %1098
  call void @r_cnjg(ptr noundef %62, ptr noundef %70)
  %1195 = load ptr, ptr %25, align 8, !tbaa !5
  %1196 = load ptr, ptr %34, align 8, !tbaa !5
  %1197 = load i64, ptr %80, align 8, !tbaa !9
  %1198 = load i64, ptr %44, align 8, !tbaa !9
  %1199 = mul nsw i64 %1197, %1198
  %1200 = add nsw i64 %1199, 1
  %1201 = getelementptr inbounds %struct.complex, ptr %1196, i64 %1200
  %1202 = load ptr, ptr %34, align 8, !tbaa !5
  %1203 = load i64, ptr %80, align 8, !tbaa !9
  %1204 = add nsw i64 %1203, 1
  %1205 = load i64, ptr %44, align 8, !tbaa !9
  %1206 = mul nsw i64 %1204, %1205
  %1207 = add nsw i64 %1206, 1
  %1208 = getelementptr inbounds %struct.complex, ptr %1202, i64 %1207
  %1209 = call i32 @crot_(ptr noundef %1195, ptr noundef %1201, ptr noundef @c__1, ptr noundef %1208, ptr noundef @c__1, ptr noundef %68, ptr noundef %62)
  br label %1210

1210:                                             ; preds = %1194, %1098
  %1211 = load i64, ptr %101, align 8, !tbaa !9
  %1212 = icmp ne i64 %1211, 0
  br i1 %1212, label %1213, label %1254

1213:                                             ; preds = %1210
  %1214 = load i64, ptr %80, align 8, !tbaa !9
  %1215 = load i64, ptr %80, align 8, !tbaa !9
  %1216 = sub nsw i64 %1215, 1
  %1217 = load i64, ptr %42, align 8, !tbaa !9
  %1218 = mul nsw i64 %1216, %1217
  %1219 = add nsw i64 %1214, %1218
  store i64 %1219, ptr %53, align 8, !tbaa !9
  %1220 = load i64, ptr %80, align 8, !tbaa !9
  %1221 = load i64, ptr %80, align 8, !tbaa !9
  %1222 = sub nsw i64 %1221, 1
  %1223 = load i64, ptr %42, align 8, !tbaa !9
  %1224 = mul nsw i64 %1222, %1223
  %1225 = add nsw i64 %1220, %1224
  store i64 %1225, ptr %54, align 8, !tbaa !9
  %1226 = load float, ptr %68, align 4, !tbaa !15
  %1227 = load ptr, ptr %28, align 8, !tbaa !5
  %1228 = load i64, ptr %54, align 8, !tbaa !9
  %1229 = getelementptr inbounds %struct.complex, ptr %1227, i64 %1228
  %1230 = getelementptr inbounds %struct.complex, ptr %1229, i32 0, i32 0
  %1231 = load float, ptr %1230, align 4, !tbaa !11
  %1232 = fmul float %1226, %1231
  %1233 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1232, ptr %1233, align 4, !tbaa !11
  %1234 = load float, ptr %68, align 4, !tbaa !15
  %1235 = load ptr, ptr %28, align 8, !tbaa !5
  %1236 = load i64, ptr %54, align 8, !tbaa !9
  %1237 = getelementptr inbounds %struct.complex, ptr %1235, i64 %1236
  %1238 = getelementptr inbounds %struct.complex, ptr %1237, i32 0, i32 1
  %1239 = load float, ptr %1238, align 4, !tbaa !14
  %1240 = fmul float %1234, %1239
  %1241 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %1240, ptr %1241, align 4, !tbaa !14
  %1242 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %1243 = load float, ptr %1242, align 4, !tbaa !11
  %1244 = load ptr, ptr %28, align 8, !tbaa !5
  %1245 = load i64, ptr %53, align 8, !tbaa !9
  %1246 = getelementptr inbounds %struct.complex, ptr %1244, i64 %1245
  %1247 = getelementptr inbounds %struct.complex, ptr %1246, i32 0, i32 0
  store float %1243, ptr %1247, align 4, !tbaa !11
  %1248 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %1249 = load float, ptr %1248, align 4, !tbaa !14
  %1250 = load ptr, ptr %28, align 8, !tbaa !5
  %1251 = load i64, ptr %53, align 8, !tbaa !9
  %1252 = getelementptr inbounds %struct.complex, ptr %1250, i64 %1251
  %1253 = getelementptr inbounds %struct.complex, ptr %1252, i32 0, i32 1
  store float %1249, ptr %1253, align 4, !tbaa !14
  br label %1254

1254:                                             ; preds = %1213, %1210
  store i64 0, ptr %101, align 8, !tbaa !9
  %1255 = load i64, ptr %80, align 8, !tbaa !9
  %1256 = add nsw i64 %1255, 1
  %1257 = load i64, ptr %80, align 8, !tbaa !9
  %1258 = add nsw i64 %1257, 1
  %1259 = load i64, ptr %46, align 8, !tbaa !9
  %1260 = mul nsw i64 %1258, %1259
  %1261 = add nsw i64 %1256, %1260
  store i64 %1261, ptr %53, align 8, !tbaa !9
  %1262 = load ptr, ptr %30, align 8, !tbaa !5
  %1263 = load i64, ptr %53, align 8, !tbaa !9
  %1264 = getelementptr inbounds %struct.complex, ptr %1262, i64 %1263
  %1265 = getelementptr inbounds %struct.complex, ptr %1264, i32 0, i32 0
  %1266 = load float, ptr %1265, align 4, !tbaa !11
  store float %1266, ptr %56, align 4, !tbaa !15
  %1267 = load float, ptr %56, align 4, !tbaa !15
  %1268 = fcmp oge float %1267, 0.000000e+00
  br i1 %1268, label %1269, label %1271

1269:                                             ; preds = %1254
  %1270 = load float, ptr %56, align 4, !tbaa !15
  br label %1274

1271:                                             ; preds = %1254
  %1272 = load float, ptr %56, align 4, !tbaa !15
  %1273 = fneg float %1272
  br label %1274

1274:                                             ; preds = %1271, %1269
  %1275 = phi float [ %1270, %1269 ], [ %1273, %1271 ]
  %1276 = fpext float %1275 to double
  %1277 = load ptr, ptr %30, align 8, !tbaa !5
  %1278 = load i64, ptr %80, align 8, !tbaa !9
  %1279 = add nsw i64 %1278, 1
  %1280 = load i64, ptr %80, align 8, !tbaa !9
  %1281 = add nsw i64 %1280, 1
  %1282 = load i64, ptr %46, align 8, !tbaa !9
  %1283 = mul nsw i64 %1281, %1282
  %1284 = add nsw i64 %1279, %1283
  %1285 = getelementptr inbounds %struct.complex, ptr %1277, i64 %1284
  %1286 = call double @r_imag(ptr noundef %1285)
  %1287 = fptrunc double %1286 to float
  store float %1287, ptr %57, align 4, !tbaa !15
  %1288 = load float, ptr %57, align 4, !tbaa !15
  %1289 = fcmp oge float %1288, 0.000000e+00
  br i1 %1289, label %1290, label %1292

1290:                                             ; preds = %1274
  %1291 = load float, ptr %57, align 4, !tbaa !15
  br label %1295

1292:                                             ; preds = %1274
  %1293 = load float, ptr %57, align 4, !tbaa !15
  %1294 = fneg float %1293
  br label %1295

1295:                                             ; preds = %1292, %1290
  %1296 = phi float [ %1291, %1290 ], [ %1294, %1292 ]
  %1297 = fpext float %1296 to double
  %1298 = fadd double %1276, %1297
  %1299 = load float, ptr %87, align 4, !tbaa !15
  %1300 = fpext float %1299 to double
  %1301 = fcmp oge double %1298, %1300
  br i1 %1301, label %1302, label %1311

1302:                                             ; preds = %1295
  %1303 = load i64, ptr %80, align 8, !tbaa !9
  %1304 = add nsw i64 %1303, 1
  %1305 = load i64, ptr %92, align 8, !tbaa !9
  %1306 = icmp sge i64 %1304, %1305
  br i1 %1306, label %1307, label %1308

1307:                                             ; preds = %1302
  br label %1698

1308:                                             ; preds = %1302
  %1309 = load i64, ptr %80, align 8, !tbaa !9
  %1310 = add nsw i64 %1309, 1
  store i64 %1310, ptr %114, align 8, !tbaa !9
  br label %1935

1311:                                             ; preds = %1295
  %1312 = load i64, ptr %80, align 8, !tbaa !9
  %1313 = add nsw i64 %1312, 1
  %1314 = load i64, ptr %80, align 8, !tbaa !9
  %1315 = add nsw i64 %1314, 1
  %1316 = load i64, ptr %46, align 8, !tbaa !9
  %1317 = mul nsw i64 %1315, %1316
  %1318 = add nsw i64 %1313, %1317
  store i64 %1318, ptr %53, align 8, !tbaa !9
  %1319 = load ptr, ptr %30, align 8, !tbaa !5
  %1320 = load i64, ptr %53, align 8, !tbaa !9
  %1321 = getelementptr inbounds %struct.complex, ptr %1319, i64 %1320
  %1322 = getelementptr inbounds %struct.complex, ptr %1321, i32 0, i32 0
  store float 0.000000e+00, ptr %1322, align 4, !tbaa !11
  %1323 = load ptr, ptr %30, align 8, !tbaa !5
  %1324 = load i64, ptr %53, align 8, !tbaa !9
  %1325 = getelementptr inbounds %struct.complex, ptr %1323, i64 %1324
  %1326 = getelementptr inbounds %struct.complex, ptr %1325, i32 0, i32 1
  store float 0.000000e+00, ptr %1326, align 4, !tbaa !14
  br label %1327

1327:                                             ; preds = %1311
  %1328 = load i64, ptr %80, align 8, !tbaa !9
  %1329 = add nsw i64 %1328, 1
  store i64 %1329, ptr %80, align 8, !tbaa !9
  br label %1094, !llvm.loop !18

1330:                                             ; preds = %1094
  br label %1593

1331:                                             ; preds = %1087
  %1332 = load i64, ptr %92, align 8, !tbaa !9
  %1333 = sub nsw i64 %1332, 1
  store i64 %1333, ptr %52, align 8, !tbaa !9
  %1334 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %1334, ptr %80, align 8, !tbaa !9
  br label %1335

1335:                                             ; preds = %1573, %1331
  %1336 = load i64, ptr %80, align 8, !tbaa !9
  %1337 = load i64, ptr %52, align 8, !tbaa !9
  %1338 = icmp sle i64 %1336, %1337
  br i1 %1338, label %1339, label %1576

1339:                                             ; preds = %1335
  %1340 = load i64, ptr %80, align 8, !tbaa !9
  %1341 = load i64, ptr %80, align 8, !tbaa !9
  %1342 = add nsw i64 %1341, 1
  %1343 = load i64, ptr %46, align 8, !tbaa !9
  %1344 = mul nsw i64 %1342, %1343
  %1345 = add nsw i64 %1340, %1344
  store i64 %1345, ptr %53, align 8, !tbaa !9
  %1346 = load ptr, ptr %30, align 8, !tbaa !5
  %1347 = load i64, ptr %53, align 8, !tbaa !9
  %1348 = getelementptr inbounds %struct.complex, ptr %1346, i64 %1347
  %1349 = getelementptr inbounds %struct.complex, ptr %1348, i32 0, i32 0
  %1350 = load float, ptr %1349, align 4, !tbaa !11
  %1351 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %1350, ptr %1351, align 4, !tbaa !11
  %1352 = load ptr, ptr %30, align 8, !tbaa !5
  %1353 = load i64, ptr %53, align 8, !tbaa !9
  %1354 = getelementptr inbounds %struct.complex, ptr %1352, i64 %1353
  %1355 = getelementptr inbounds %struct.complex, ptr %1354, i32 0, i32 1
  %1356 = load float, ptr %1355, align 4, !tbaa !14
  %1357 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %1356, ptr %1357, align 4, !tbaa !14
  %1358 = load ptr, ptr %30, align 8, !tbaa !5
  %1359 = load i64, ptr %80, align 8, !tbaa !9
  %1360 = add nsw i64 %1359, 1
  %1361 = load i64, ptr %80, align 8, !tbaa !9
  %1362 = add nsw i64 %1361, 1
  %1363 = load i64, ptr %46, align 8, !tbaa !9
  %1364 = mul nsw i64 %1362, %1363
  %1365 = add nsw i64 %1360, %1364
  %1366 = getelementptr inbounds %struct.complex, ptr %1358, i64 %1365
  %1367 = load ptr, ptr %30, align 8, !tbaa !5
  %1368 = load i64, ptr %80, align 8, !tbaa !9
  %1369 = load i64, ptr %80, align 8, !tbaa !9
  %1370 = add nsw i64 %1369, 1
  %1371 = load i64, ptr %46, align 8, !tbaa !9
  %1372 = mul nsw i64 %1370, %1371
  %1373 = add nsw i64 %1368, %1372
  %1374 = getelementptr inbounds %struct.complex, ptr %1367, i64 %1373
  %1375 = call i32 @clartg_(ptr noundef %90, ptr noundef %1366, ptr noundef %68, ptr noundef %70, ptr noundef %1374)
  %1376 = load i64, ptr %80, align 8, !tbaa !9
  %1377 = add nsw i64 %1376, 1
  %1378 = load i64, ptr %80, align 8, !tbaa !9
  %1379 = add nsw i64 %1378, 1
  %1380 = load i64, ptr %46, align 8, !tbaa !9
  %1381 = mul nsw i64 %1379, %1380
  %1382 = add nsw i64 %1377, %1381
  store i64 %1382, ptr %53, align 8, !tbaa !9
  %1383 = load ptr, ptr %30, align 8, !tbaa !5
  %1384 = load i64, ptr %53, align 8, !tbaa !9
  %1385 = getelementptr inbounds %struct.complex, ptr %1383, i64 %1384
  %1386 = getelementptr inbounds %struct.complex, ptr %1385, i32 0, i32 0
  store float 0.000000e+00, ptr %1386, align 4, !tbaa !11
  %1387 = load ptr, ptr %30, align 8, !tbaa !5
  %1388 = load i64, ptr %53, align 8, !tbaa !9
  %1389 = getelementptr inbounds %struct.complex, ptr %1387, i64 %1388
  %1390 = getelementptr inbounds %struct.complex, ptr %1389, i32 0, i32 1
  store float 0.000000e+00, ptr %1390, align 4, !tbaa !14
  %1391 = load i64, ptr %80, align 8, !tbaa !9
  %1392 = load i64, ptr %109, align 8, !tbaa !9
  %1393 = sub nsw i64 %1392, 1
  %1394 = icmp slt i64 %1391, %1393
  br i1 %1394, label %1395, label %1420

1395:                                             ; preds = %1339
  %1396 = load i64, ptr %109, align 8, !tbaa !9
  %1397 = load i64, ptr %80, align 8, !tbaa !9
  %1398 = sub nsw i64 %1396, %1397
  %1399 = sub nsw i64 %1398, 1
  store i64 %1399, ptr %53, align 8, !tbaa !9
  %1400 = load ptr, ptr %30, align 8, !tbaa !5
  %1401 = load i64, ptr %80, align 8, !tbaa !9
  %1402 = load i64, ptr %80, align 8, !tbaa !9
  %1403 = add nsw i64 %1402, 2
  %1404 = load i64, ptr %46, align 8, !tbaa !9
  %1405 = mul nsw i64 %1403, %1404
  %1406 = add nsw i64 %1401, %1405
  %1407 = getelementptr inbounds %struct.complex, ptr %1400, i64 %1406
  %1408 = load ptr, ptr %31, align 8, !tbaa !5
  %1409 = load ptr, ptr %30, align 8, !tbaa !5
  %1410 = load i64, ptr %80, align 8, !tbaa !9
  %1411 = add nsw i64 %1410, 1
  %1412 = load i64, ptr %80, align 8, !tbaa !9
  %1413 = add nsw i64 %1412, 2
  %1414 = load i64, ptr %46, align 8, !tbaa !9
  %1415 = mul nsw i64 %1413, %1414
  %1416 = add nsw i64 %1411, %1415
  %1417 = getelementptr inbounds %struct.complex, ptr %1409, i64 %1416
  %1418 = load ptr, ptr %31, align 8, !tbaa !5
  %1419 = call i32 @crot_(ptr noundef %53, ptr noundef %1407, ptr noundef %1408, ptr noundef %1417, ptr noundef %1418, ptr noundef %68, ptr noundef %70)
  br label %1420

1420:                                             ; preds = %1395, %1339
  %1421 = load i64, ptr %109, align 8, !tbaa !9
  %1422 = load i64, ptr %80, align 8, !tbaa !9
  %1423 = sub nsw i64 %1421, %1422
  %1424 = add nsw i64 %1423, 2
  store i64 %1424, ptr %53, align 8, !tbaa !9
  %1425 = load ptr, ptr %28, align 8, !tbaa !5
  %1426 = load i64, ptr %80, align 8, !tbaa !9
  %1427 = load i64, ptr %80, align 8, !tbaa !9
  %1428 = sub nsw i64 %1427, 1
  %1429 = load i64, ptr %42, align 8, !tbaa !9
  %1430 = mul nsw i64 %1428, %1429
  %1431 = add nsw i64 %1426, %1430
  %1432 = getelementptr inbounds %struct.complex, ptr %1425, i64 %1431
  %1433 = load ptr, ptr %29, align 8, !tbaa !5
  %1434 = load ptr, ptr %28, align 8, !tbaa !5
  %1435 = load i64, ptr %80, align 8, !tbaa !9
  %1436 = add nsw i64 %1435, 1
  %1437 = load i64, ptr %80, align 8, !tbaa !9
  %1438 = sub nsw i64 %1437, 1
  %1439 = load i64, ptr %42, align 8, !tbaa !9
  %1440 = mul nsw i64 %1438, %1439
  %1441 = add nsw i64 %1436, %1440
  %1442 = getelementptr inbounds %struct.complex, ptr %1434, i64 %1441
  %1443 = load ptr, ptr %29, align 8, !tbaa !5
  %1444 = call i32 @crot_(ptr noundef %53, ptr noundef %1432, ptr noundef %1433, ptr noundef %1442, ptr noundef %1443, ptr noundef %68, ptr noundef %70)
  %1445 = load i64, ptr %81, align 8, !tbaa !9
  %1446 = icmp ne i64 %1445, 0
  br i1 %1446, label %1447, label %1463

1447:                                             ; preds = %1420
  call void @r_cnjg(ptr noundef %62, ptr noundef %70)
  %1448 = load ptr, ptr %25, align 8, !tbaa !5
  %1449 = load ptr, ptr %34, align 8, !tbaa !5
  %1450 = load i64, ptr %80, align 8, !tbaa !9
  %1451 = load i64, ptr %44, align 8, !tbaa !9
  %1452 = mul nsw i64 %1450, %1451
  %1453 = add nsw i64 %1452, 1
  %1454 = getelementptr inbounds %struct.complex, ptr %1449, i64 %1453
  %1455 = load ptr, ptr %34, align 8, !tbaa !5
  %1456 = load i64, ptr %80, align 8, !tbaa !9
  %1457 = add nsw i64 %1456, 1
  %1458 = load i64, ptr %44, align 8, !tbaa !9
  %1459 = mul nsw i64 %1457, %1458
  %1460 = add nsw i64 %1459, 1
  %1461 = getelementptr inbounds %struct.complex, ptr %1455, i64 %1460
  %1462 = call i32 @crot_(ptr noundef %1448, ptr noundef %1454, ptr noundef @c__1, ptr noundef %1461, ptr noundef @c__1, ptr noundef %68, ptr noundef %62)
  br label %1463

1463:                                             ; preds = %1447, %1420
  %1464 = load i64, ptr %80, align 8, !tbaa !9
  %1465 = add nsw i64 %1464, 1
  %1466 = load i64, ptr %80, align 8, !tbaa !9
  %1467 = load i64, ptr %42, align 8, !tbaa !9
  %1468 = mul nsw i64 %1466, %1467
  %1469 = add nsw i64 %1465, %1468
  store i64 %1469, ptr %53, align 8, !tbaa !9
  %1470 = load ptr, ptr %28, align 8, !tbaa !5
  %1471 = load i64, ptr %53, align 8, !tbaa !9
  %1472 = getelementptr inbounds %struct.complex, ptr %1470, i64 %1471
  %1473 = getelementptr inbounds %struct.complex, ptr %1472, i32 0, i32 0
  %1474 = load float, ptr %1473, align 4, !tbaa !11
  %1475 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %1474, ptr %1475, align 4, !tbaa !11
  %1476 = load ptr, ptr %28, align 8, !tbaa !5
  %1477 = load i64, ptr %53, align 8, !tbaa !9
  %1478 = getelementptr inbounds %struct.complex, ptr %1476, i64 %1477
  %1479 = getelementptr inbounds %struct.complex, ptr %1478, i32 0, i32 1
  %1480 = load float, ptr %1479, align 4, !tbaa !14
  %1481 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %1480, ptr %1481, align 4, !tbaa !14
  %1482 = load ptr, ptr %28, align 8, !tbaa !5
  %1483 = load i64, ptr %80, align 8, !tbaa !9
  %1484 = add nsw i64 %1483, 1
  %1485 = load i64, ptr %80, align 8, !tbaa !9
  %1486 = sub nsw i64 %1485, 1
  %1487 = load i64, ptr %42, align 8, !tbaa !9
  %1488 = mul nsw i64 %1486, %1487
  %1489 = add nsw i64 %1484, %1488
  %1490 = getelementptr inbounds %struct.complex, ptr %1482, i64 %1489
  %1491 = load ptr, ptr %28, align 8, !tbaa !5
  %1492 = load i64, ptr %80, align 8, !tbaa !9
  %1493 = add nsw i64 %1492, 1
  %1494 = load i64, ptr %80, align 8, !tbaa !9
  %1495 = load i64, ptr %42, align 8, !tbaa !9
  %1496 = mul nsw i64 %1494, %1495
  %1497 = add nsw i64 %1493, %1496
  %1498 = getelementptr inbounds %struct.complex, ptr %1491, i64 %1497
  %1499 = call i32 @clartg_(ptr noundef %90, ptr noundef %1490, ptr noundef %68, ptr noundef %70, ptr noundef %1498)
  %1500 = load i64, ptr %80, align 8, !tbaa !9
  %1501 = add nsw i64 %1500, 1
  %1502 = load i64, ptr %80, align 8, !tbaa !9
  %1503 = sub nsw i64 %1502, 1
  %1504 = load i64, ptr %42, align 8, !tbaa !9
  %1505 = mul nsw i64 %1503, %1504
  %1506 = add nsw i64 %1501, %1505
  store i64 %1506, ptr %53, align 8, !tbaa !9
  %1507 = load ptr, ptr %28, align 8, !tbaa !5
  %1508 = load i64, ptr %53, align 8, !tbaa !9
  %1509 = getelementptr inbounds %struct.complex, ptr %1507, i64 %1508
  %1510 = getelementptr inbounds %struct.complex, ptr %1509, i32 0, i32 0
  store float 0.000000e+00, ptr %1510, align 4, !tbaa !11
  %1511 = load ptr, ptr %28, align 8, !tbaa !5
  %1512 = load i64, ptr %53, align 8, !tbaa !9
  %1513 = getelementptr inbounds %struct.complex, ptr %1511, i64 %1512
  %1514 = getelementptr inbounds %struct.complex, ptr %1513, i32 0, i32 1
  store float 0.000000e+00, ptr %1514, align 4, !tbaa !14
  %1515 = load i64, ptr %80, align 8, !tbaa !9
  %1516 = add nsw i64 %1515, 1
  %1517 = load i64, ptr %115, align 8, !tbaa !9
  %1518 = sub nsw i64 %1516, %1517
  store i64 %1518, ptr %53, align 8, !tbaa !9
  %1519 = load ptr, ptr %28, align 8, !tbaa !5
  %1520 = load i64, ptr %115, align 8, !tbaa !9
  %1521 = load i64, ptr %80, align 8, !tbaa !9
  %1522 = load i64, ptr %42, align 8, !tbaa !9
  %1523 = mul nsw i64 %1521, %1522
  %1524 = add nsw i64 %1520, %1523
  %1525 = getelementptr inbounds %struct.complex, ptr %1519, i64 %1524
  %1526 = load ptr, ptr %28, align 8, !tbaa !5
  %1527 = load i64, ptr %115, align 8, !tbaa !9
  %1528 = load i64, ptr %80, align 8, !tbaa !9
  %1529 = sub nsw i64 %1528, 1
  %1530 = load i64, ptr %42, align 8, !tbaa !9
  %1531 = mul nsw i64 %1529, %1530
  %1532 = add nsw i64 %1527, %1531
  %1533 = getelementptr inbounds %struct.complex, ptr %1526, i64 %1532
  %1534 = call i32 @crot_(ptr noundef %53, ptr noundef %1525, ptr noundef @c__1, ptr noundef %1533, ptr noundef @c__1, ptr noundef %68, ptr noundef %70)
  %1535 = load i64, ptr %80, align 8, !tbaa !9
  %1536 = load i64, ptr %115, align 8, !tbaa !9
  %1537 = sub nsw i64 %1535, %1536
  store i64 %1537, ptr %53, align 8, !tbaa !9
  %1538 = load ptr, ptr %30, align 8, !tbaa !5
  %1539 = load i64, ptr %115, align 8, !tbaa !9
  %1540 = load i64, ptr %80, align 8, !tbaa !9
  %1541 = load i64, ptr %46, align 8, !tbaa !9
  %1542 = mul nsw i64 %1540, %1541
  %1543 = add nsw i64 %1539, %1542
  %1544 = getelementptr inbounds %struct.complex, ptr %1538, i64 %1543
  %1545 = load ptr, ptr %30, align 8, !tbaa !5
  %1546 = load i64, ptr %115, align 8, !tbaa !9
  %1547 = load i64, ptr %80, align 8, !tbaa !9
  %1548 = sub nsw i64 %1547, 1
  %1549 = load i64, ptr %46, align 8, !tbaa !9
  %1550 = mul nsw i64 %1548, %1549
  %1551 = add nsw i64 %1546, %1550
  %1552 = getelementptr inbounds %struct.complex, ptr %1545, i64 %1551
  %1553 = call i32 @crot_(ptr noundef %53, ptr noundef %1544, ptr noundef @c__1, ptr noundef %1552, ptr noundef @c__1, ptr noundef %68, ptr noundef %70)
  %1554 = load i64, ptr %82, align 8, !tbaa !9
  %1555 = icmp ne i64 %1554, 0
  br i1 %1555, label %1556, label %1572

1556:                                             ; preds = %1463
  %1557 = load ptr, ptr %25, align 8, !tbaa !5
  %1558 = load ptr, ptr %36, align 8, !tbaa !5
  %1559 = load i64, ptr %80, align 8, !tbaa !9
  %1560 = load i64, ptr %48, align 8, !tbaa !9
  %1561 = mul nsw i64 %1559, %1560
  %1562 = add nsw i64 %1561, 1
  %1563 = getelementptr inbounds %struct.complex, ptr %1558, i64 %1562
  %1564 = load ptr, ptr %36, align 8, !tbaa !5
  %1565 = load i64, ptr %80, align 8, !tbaa !9
  %1566 = sub nsw i64 %1565, 1
  %1567 = load i64, ptr %48, align 8, !tbaa !9
  %1568 = mul nsw i64 %1566, %1567
  %1569 = add nsw i64 %1568, 1
  %1570 = getelementptr inbounds %struct.complex, ptr %1564, i64 %1569
  %1571 = call i32 @crot_(ptr noundef %1557, ptr noundef %1563, ptr noundef @c__1, ptr noundef %1570, ptr noundef @c__1, ptr noundef %68, ptr noundef %70)
  br label %1572

1572:                                             ; preds = %1556, %1463
  br label %1573

1573:                                             ; preds = %1572
  %1574 = load i64, ptr %80, align 8, !tbaa !9
  %1575 = add nsw i64 %1574, 1
  store i64 %1575, ptr %80, align 8, !tbaa !9
  br label %1335, !llvm.loop !19

1576:                                             ; preds = %1335
  br label %1593

1577:                                             ; preds = %919
  %1578 = load i64, ptr %112, align 8, !tbaa !9
  %1579 = icmp ne i64 %1578, 0
  br i1 %1579, label %1580, label %1582

1580:                                             ; preds = %1577
  %1581 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %1581, ptr %114, align 8, !tbaa !9
  br label %1935

1582:                                             ; preds = %1577
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

1584:                                             ; preds = %1583
  %1585 = load i64, ptr %69, align 8, !tbaa !9
  %1586 = add nsw i64 %1585, -1
  store i64 %1586, ptr %69, align 8, !tbaa !9
  br label %846, !llvm.loop !20

1587:                                             ; preds = %846
  %1588 = load ptr, ptr %25, align 8, !tbaa !5
  %1589 = load i64, ptr %1588, align 8, !tbaa !9
  %1590 = shl i64 %1589, 1
  %1591 = add nsw i64 %1590, 1
  %1592 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 %1591, ptr %1592, align 8, !tbaa !9
  br label %4449

1593:                                             ; preds = %1576, %1330, %827
  %1594 = load i64, ptr %92, align 8, !tbaa !9
  %1595 = load i64, ptr %92, align 8, !tbaa !9
  %1596 = load i64, ptr %42, align 8, !tbaa !9
  %1597 = mul nsw i64 %1595, %1596
  %1598 = add nsw i64 %1594, %1597
  store i64 %1598, ptr %51, align 8, !tbaa !9
  %1599 = load ptr, ptr %28, align 8, !tbaa !5
  %1600 = load i64, ptr %51, align 8, !tbaa !9
  %1601 = getelementptr inbounds %struct.complex, ptr %1599, i64 %1600
  %1602 = getelementptr inbounds %struct.complex, ptr %1601, i32 0, i32 0
  %1603 = load float, ptr %1602, align 4, !tbaa !11
  %1604 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %1603, ptr %1604, align 4, !tbaa !11
  %1605 = load ptr, ptr %28, align 8, !tbaa !5
  %1606 = load i64, ptr %51, align 8, !tbaa !9
  %1607 = getelementptr inbounds %struct.complex, ptr %1605, i64 %1606
  %1608 = getelementptr inbounds %struct.complex, ptr %1607, i32 0, i32 1
  %1609 = load float, ptr %1608, align 4, !tbaa !14
  %1610 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %1609, ptr %1610, align 4, !tbaa !14
  %1611 = load ptr, ptr %28, align 8, !tbaa !5
  %1612 = load i64, ptr %92, align 8, !tbaa !9
  %1613 = load i64, ptr %92, align 8, !tbaa !9
  %1614 = sub nsw i64 %1613, 1
  %1615 = load i64, ptr %42, align 8, !tbaa !9
  %1616 = mul nsw i64 %1614, %1615
  %1617 = add nsw i64 %1612, %1616
  %1618 = getelementptr inbounds %struct.complex, ptr %1611, i64 %1617
  %1619 = load ptr, ptr %28, align 8, !tbaa !5
  %1620 = load i64, ptr %92, align 8, !tbaa !9
  %1621 = load i64, ptr %92, align 8, !tbaa !9
  %1622 = load i64, ptr %42, align 8, !tbaa !9
  %1623 = mul nsw i64 %1621, %1622
  %1624 = add nsw i64 %1620, %1623
  %1625 = getelementptr inbounds %struct.complex, ptr %1619, i64 %1624
  %1626 = call i32 @clartg_(ptr noundef %90, ptr noundef %1618, ptr noundef %68, ptr noundef %70, ptr noundef %1625)
  %1627 = load i64, ptr %92, align 8, !tbaa !9
  %1628 = load i64, ptr %92, align 8, !tbaa !9
  %1629 = sub nsw i64 %1628, 1
  %1630 = load i64, ptr %42, align 8, !tbaa !9
  %1631 = mul nsw i64 %1629, %1630
  %1632 = add nsw i64 %1627, %1631
  store i64 %1632, ptr %51, align 8, !tbaa !9
  %1633 = load ptr, ptr %28, align 8, !tbaa !5
  %1634 = load i64, ptr %51, align 8, !tbaa !9
  %1635 = getelementptr inbounds %struct.complex, ptr %1633, i64 %1634
  %1636 = getelementptr inbounds %struct.complex, ptr %1635, i32 0, i32 0
  store float 0.000000e+00, ptr %1636, align 4, !tbaa !11
  %1637 = load ptr, ptr %28, align 8, !tbaa !5
  %1638 = load i64, ptr %51, align 8, !tbaa !9
  %1639 = getelementptr inbounds %struct.complex, ptr %1637, i64 %1638
  %1640 = getelementptr inbounds %struct.complex, ptr %1639, i32 0, i32 1
  store float 0.000000e+00, ptr %1640, align 4, !tbaa !14
  %1641 = load i64, ptr %92, align 8, !tbaa !9
  %1642 = load i64, ptr %115, align 8, !tbaa !9
  %1643 = sub nsw i64 %1641, %1642
  store i64 %1643, ptr %51, align 8, !tbaa !9
  %1644 = load ptr, ptr %28, align 8, !tbaa !5
  %1645 = load i64, ptr %115, align 8, !tbaa !9
  %1646 = load i64, ptr %92, align 8, !tbaa !9
  %1647 = load i64, ptr %42, align 8, !tbaa !9
  %1648 = mul nsw i64 %1646, %1647
  %1649 = add nsw i64 %1645, %1648
  %1650 = getelementptr inbounds %struct.complex, ptr %1644, i64 %1649
  %1651 = load ptr, ptr %28, align 8, !tbaa !5
  %1652 = load i64, ptr %115, align 8, !tbaa !9
  %1653 = load i64, ptr %92, align 8, !tbaa !9
  %1654 = sub nsw i64 %1653, 1
  %1655 = load i64, ptr %42, align 8, !tbaa !9
  %1656 = mul nsw i64 %1654, %1655
  %1657 = add nsw i64 %1652, %1656
  %1658 = getelementptr inbounds %struct.complex, ptr %1651, i64 %1657
  %1659 = call i32 @crot_(ptr noundef %51, ptr noundef %1650, ptr noundef @c__1, ptr noundef %1658, ptr noundef @c__1, ptr noundef %68, ptr noundef %70)
  %1660 = load i64, ptr %92, align 8, !tbaa !9
  %1661 = load i64, ptr %115, align 8, !tbaa !9
  %1662 = sub nsw i64 %1660, %1661
  store i64 %1662, ptr %51, align 8, !tbaa !9
  %1663 = load ptr, ptr %30, align 8, !tbaa !5
  %1664 = load i64, ptr %115, align 8, !tbaa !9
  %1665 = load i64, ptr %92, align 8, !tbaa !9
  %1666 = load i64, ptr %46, align 8, !tbaa !9
  %1667 = mul nsw i64 %1665, %1666
  %1668 = add nsw i64 %1664, %1667
  %1669 = getelementptr inbounds %struct.complex, ptr %1663, i64 %1668
  %1670 = load ptr, ptr %30, align 8, !tbaa !5
  %1671 = load i64, ptr %115, align 8, !tbaa !9
  %1672 = load i64, ptr %92, align 8, !tbaa !9
  %1673 = sub nsw i64 %1672, 1
  %1674 = load i64, ptr %46, align 8, !tbaa !9
  %1675 = mul nsw i64 %1673, %1674
  %1676 = add nsw i64 %1671, %1675
  %1677 = getelementptr inbounds %struct.complex, ptr %1670, i64 %1676
  %1678 = call i32 @crot_(ptr noundef %51, ptr noundef %1669, ptr noundef @c__1, ptr noundef %1677, ptr noundef @c__1, ptr noundef %68, ptr noundef %70)
  %1679 = load i64, ptr %82, align 8, !tbaa !9
  %1680 = icmp ne i64 %1679, 0
  br i1 %1680, label %1681, label %1697

1681:                                             ; preds = %1593
  %1682 = load ptr, ptr %25, align 8, !tbaa !5
  %1683 = load ptr, ptr %36, align 8, !tbaa !5
  %1684 = load i64, ptr %92, align 8, !tbaa !9
  %1685 = load i64, ptr %48, align 8, !tbaa !9
  %1686 = mul nsw i64 %1684, %1685
  %1687 = add nsw i64 %1686, 1
  %1688 = getelementptr inbounds %struct.complex, ptr %1683, i64 %1687
  %1689 = load ptr, ptr %36, align 8, !tbaa !5
  %1690 = load i64, ptr %92, align 8, !tbaa !9
  %1691 = sub nsw i64 %1690, 1
  %1692 = load i64, ptr %48, align 8, !tbaa !9
  %1693 = mul nsw i64 %1691, %1692
  %1694 = add nsw i64 %1693, 1
  %1695 = getelementptr inbounds %struct.complex, ptr %1689, i64 %1694
  %1696 = call i32 @crot_(ptr noundef %1682, ptr noundef %1688, ptr noundef @c__1, ptr noundef %1695, ptr noundef @c__1, ptr noundef %68, ptr noundef %70)
  br label %1697

1697:                                             ; preds = %1681, %1593
  br label %1698

1698:                                             ; preds = %1697, %1307, %799, %752
  %1699 = load ptr, ptr %30, align 8, !tbaa !5
  %1700 = load i64, ptr %92, align 8, !tbaa !9
  %1701 = load i64, ptr %92, align 8, !tbaa !9
  %1702 = load i64, ptr %46, align 8, !tbaa !9
  %1703 = mul nsw i64 %1701, %1702
  %1704 = add nsw i64 %1700, %1703
  %1705 = getelementptr inbounds %struct.complex, ptr %1699, i64 %1704
  %1706 = call double @c_abs(ptr noundef %1705)
  %1707 = fptrunc double %1706 to float
  store float %1707, ptr %85, align 4, !tbaa !15
  %1708 = load float, ptr %85, align 4, !tbaa !15
  %1709 = load float, ptr %105, align 4, !tbaa !15
  %1710 = fcmp ogt float %1708, %1709
  br i1 %1710, label %1711, label %1850

1711:                                             ; preds = %1698
  %1712 = load i64, ptr %92, align 8, !tbaa !9
  %1713 = load i64, ptr %92, align 8, !tbaa !9
  %1714 = load i64, ptr %46, align 8, !tbaa !9
  %1715 = mul nsw i64 %1713, %1714
  %1716 = add nsw i64 %1712, %1715
  store i64 %1716, ptr %51, align 8, !tbaa !9
  %1717 = load ptr, ptr %30, align 8, !tbaa !5
  %1718 = load i64, ptr %51, align 8, !tbaa !9
  %1719 = getelementptr inbounds %struct.complex, ptr %1717, i64 %1718
  %1720 = getelementptr inbounds %struct.complex, ptr %1719, i32 0, i32 0
  %1721 = load float, ptr %1720, align 4, !tbaa !11
  %1722 = load float, ptr %85, align 4, !tbaa !15
  %1723 = fdiv float %1721, %1722
  %1724 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %1723, ptr %1724, align 4, !tbaa !11
  %1725 = load ptr, ptr %30, align 8, !tbaa !5
  %1726 = load i64, ptr %51, align 8, !tbaa !9
  %1727 = getelementptr inbounds %struct.complex, ptr %1725, i64 %1726
  %1728 = getelementptr inbounds %struct.complex, ptr %1727, i32 0, i32 1
  %1729 = load float, ptr %1728, align 4, !tbaa !14
  %1730 = load float, ptr %85, align 4, !tbaa !15
  %1731 = fdiv float %1729, %1730
  %1732 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %1731, ptr %1732, align 4, !tbaa !14
  call void @r_cnjg(ptr noundef %62, ptr noundef %63)
  %1733 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %1734 = load float, ptr %1733, align 4, !tbaa !11
  %1735 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 0
  store float %1734, ptr %1735, align 4, !tbaa !11
  %1736 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %1737 = load float, ptr %1736, align 4, !tbaa !14
  %1738 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 1
  store float %1737, ptr %1738, align 4, !tbaa !14
  %1739 = load i64, ptr %92, align 8, !tbaa !9
  %1740 = load i64, ptr %92, align 8, !tbaa !9
  %1741 = load i64, ptr %46, align 8, !tbaa !9
  %1742 = mul nsw i64 %1740, %1741
  %1743 = add nsw i64 %1739, %1742
  store i64 %1743, ptr %51, align 8, !tbaa !9
  %1744 = load float, ptr %85, align 4, !tbaa !15
  %1745 = load ptr, ptr %30, align 8, !tbaa !5
  %1746 = load i64, ptr %51, align 8, !tbaa !9
  %1747 = getelementptr inbounds %struct.complex, ptr %1745, i64 %1746
  %1748 = getelementptr inbounds %struct.complex, ptr %1747, i32 0, i32 0
  store float %1744, ptr %1748, align 4, !tbaa !11
  %1749 = load ptr, ptr %30, align 8, !tbaa !5
  %1750 = load i64, ptr %51, align 8, !tbaa !9
  %1751 = getelementptr inbounds %struct.complex, ptr %1749, i64 %1750
  %1752 = getelementptr inbounds %struct.complex, ptr %1751, i32 0, i32 1
  store float 0.000000e+00, ptr %1752, align 4, !tbaa !14
  %1753 = load i64, ptr %107, align 8, !tbaa !9
  %1754 = icmp ne i64 %1753, 0
  br i1 %1754, label %1755, label %1779

1755:                                             ; preds = %1711
  %1756 = load i64, ptr %92, align 8, !tbaa !9
  %1757 = load i64, ptr %115, align 8, !tbaa !9
  %1758 = sub nsw i64 %1756, %1757
  store i64 %1758, ptr %51, align 8, !tbaa !9
  %1759 = load ptr, ptr %30, align 8, !tbaa !5
  %1760 = load i64, ptr %115, align 8, !tbaa !9
  %1761 = load i64, ptr %92, align 8, !tbaa !9
  %1762 = load i64, ptr %46, align 8, !tbaa !9
  %1763 = mul nsw i64 %1761, %1762
  %1764 = add nsw i64 %1760, %1763
  %1765 = getelementptr inbounds %struct.complex, ptr %1759, i64 %1764
  %1766 = call i32 @f2c_cscal(ptr noundef %51, ptr noundef %104, ptr noundef %1765, ptr noundef @c__1)
  %1767 = load i64, ptr %92, align 8, !tbaa !9
  %1768 = add nsw i64 %1767, 1
  %1769 = load i64, ptr %115, align 8, !tbaa !9
  %1770 = sub nsw i64 %1768, %1769
  store i64 %1770, ptr %51, align 8, !tbaa !9
  %1771 = load ptr, ptr %28, align 8, !tbaa !5
  %1772 = load i64, ptr %115, align 8, !tbaa !9
  %1773 = load i64, ptr %92, align 8, !tbaa !9
  %1774 = load i64, ptr %42, align 8, !tbaa !9
  %1775 = mul nsw i64 %1773, %1774
  %1776 = add nsw i64 %1772, %1775
  %1777 = getelementptr inbounds %struct.complex, ptr %1771, i64 %1776
  %1778 = call i32 @f2c_cscal(ptr noundef %51, ptr noundef %104, ptr noundef %1777, ptr noundef @c__1)
  br label %1837

1779:                                             ; preds = %1711
  %1780 = load i64, ptr %92, align 8, !tbaa !9
  %1781 = load i64, ptr %92, align 8, !tbaa !9
  %1782 = load i64, ptr %42, align 8, !tbaa !9
  %1783 = mul nsw i64 %1781, %1782
  %1784 = add nsw i64 %1780, %1783
  store i64 %1784, ptr %51, align 8, !tbaa !9
  %1785 = load i64, ptr %92, align 8, !tbaa !9
  %1786 = load i64, ptr %92, align 8, !tbaa !9
  %1787 = load i64, ptr %42, align 8, !tbaa !9
  %1788 = mul nsw i64 %1786, %1787
  %1789 = add nsw i64 %1785, %1788
  store i64 %1789, ptr %52, align 8, !tbaa !9
  %1790 = load ptr, ptr %28, align 8, !tbaa !5
  %1791 = load i64, ptr %52, align 8, !tbaa !9
  %1792 = getelementptr inbounds %struct.complex, ptr %1790, i64 %1791
  %1793 = getelementptr inbounds %struct.complex, ptr %1792, i32 0, i32 0
  %1794 = load float, ptr %1793, align 4, !tbaa !11
  %1795 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 0
  %1796 = load float, ptr %1795, align 4, !tbaa !11
  %1797 = load ptr, ptr %28, align 8, !tbaa !5
  %1798 = load i64, ptr %52, align 8, !tbaa !9
  %1799 = getelementptr inbounds %struct.complex, ptr %1797, i64 %1798
  %1800 = getelementptr inbounds %struct.complex, ptr %1799, i32 0, i32 1
  %1801 = load float, ptr %1800, align 4, !tbaa !14
  %1802 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 1
  %1803 = load float, ptr %1802, align 4, !tbaa !14
  %1804 = fmul float %1801, %1803
  %1805 = fneg float %1804
  %1806 = call float @llvm.fmuladd.f32(float %1794, float %1796, float %1805)
  %1807 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %1806, ptr %1807, align 4, !tbaa !11
  %1808 = load ptr, ptr %28, align 8, !tbaa !5
  %1809 = load i64, ptr %52, align 8, !tbaa !9
  %1810 = getelementptr inbounds %struct.complex, ptr %1808, i64 %1809
  %1811 = getelementptr inbounds %struct.complex, ptr %1810, i32 0, i32 0
  %1812 = load float, ptr %1811, align 4, !tbaa !11
  %1813 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 1
  %1814 = load float, ptr %1813, align 4, !tbaa !14
  %1815 = load ptr, ptr %28, align 8, !tbaa !5
  %1816 = load i64, ptr %52, align 8, !tbaa !9
  %1817 = getelementptr inbounds %struct.complex, ptr %1815, i64 %1816
  %1818 = getelementptr inbounds %struct.complex, ptr %1817, i32 0, i32 1
  %1819 = load float, ptr %1818, align 4, !tbaa !14
  %1820 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 0
  %1821 = load float, ptr %1820, align 4, !tbaa !11
  %1822 = fmul float %1819, %1821
  %1823 = call float @llvm.fmuladd.f32(float %1812, float %1814, float %1822)
  %1824 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %1823, ptr %1824, align 4, !tbaa !14
  %1825 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %1826 = load float, ptr %1825, align 4, !tbaa !11
  %1827 = load ptr, ptr %28, align 8, !tbaa !5
  %1828 = load i64, ptr %51, align 8, !tbaa !9
  %1829 = getelementptr inbounds %struct.complex, ptr %1827, i64 %1828
  %1830 = getelementptr inbounds %struct.complex, ptr %1829, i32 0, i32 0
  store float %1826, ptr %1830, align 4, !tbaa !11
  %1831 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %1832 = load float, ptr %1831, align 4, !tbaa !14
  %1833 = load ptr, ptr %28, align 8, !tbaa !5
  %1834 = load i64, ptr %51, align 8, !tbaa !9
  %1835 = getelementptr inbounds %struct.complex, ptr %1833, i64 %1834
  %1836 = getelementptr inbounds %struct.complex, ptr %1835, i32 0, i32 1
  store float %1832, ptr %1836, align 4, !tbaa !14
  br label %1837

1837:                                             ; preds = %1779, %1755
  %1838 = load i64, ptr %82, align 8, !tbaa !9
  %1839 = icmp ne i64 %1838, 0
  br i1 %1839, label %1840, label %1849

1840:                                             ; preds = %1837
  %1841 = load ptr, ptr %25, align 8, !tbaa !5
  %1842 = load ptr, ptr %36, align 8, !tbaa !5
  %1843 = load i64, ptr %92, align 8, !tbaa !9
  %1844 = load i64, ptr %48, align 8, !tbaa !9
  %1845 = mul nsw i64 %1843, %1844
  %1846 = add nsw i64 %1845, 1
  %1847 = getelementptr inbounds %struct.complex, ptr %1842, i64 %1846
  %1848 = call i32 @f2c_cscal(ptr noundef %1841, ptr noundef %104, ptr noundef %1847, ptr noundef @c__1)
  br label %1849

1849:                                             ; preds = %1840, %1837
  br label %1864

1850:                                             ; preds = %1698
  %1851 = load i64, ptr %92, align 8, !tbaa !9
  %1852 = load i64, ptr %92, align 8, !tbaa !9
  %1853 = load i64, ptr %46, align 8, !tbaa !9
  %1854 = mul nsw i64 %1852, %1853
  %1855 = add nsw i64 %1851, %1854
  store i64 %1855, ptr %51, align 8, !tbaa !9
  %1856 = load ptr, ptr %30, align 8, !tbaa !5
  %1857 = load i64, ptr %51, align 8, !tbaa !9
  %1858 = getelementptr inbounds %struct.complex, ptr %1856, i64 %1857
  %1859 = getelementptr inbounds %struct.complex, ptr %1858, i32 0, i32 0
  store float 0.000000e+00, ptr %1859, align 4, !tbaa !11
  %1860 = load ptr, ptr %30, align 8, !tbaa !5
  %1861 = load i64, ptr %51, align 8, !tbaa !9
  %1862 = getelementptr inbounds %struct.complex, ptr %1860, i64 %1861
  %1863 = getelementptr inbounds %struct.complex, ptr %1862, i32 0, i32 1
  store float 0.000000e+00, ptr %1863, align 4, !tbaa !14
  br label %1864

1864:                                             ; preds = %1850, %1849
  %1865 = load i64, ptr %92, align 8, !tbaa !9
  store i64 %1865, ptr %51, align 8, !tbaa !9
  %1866 = load i64, ptr %92, align 8, !tbaa !9
  %1867 = load i64, ptr %92, align 8, !tbaa !9
  %1868 = load i64, ptr %42, align 8, !tbaa !9
  %1869 = mul nsw i64 %1867, %1868
  %1870 = add nsw i64 %1866, %1869
  store i64 %1870, ptr %52, align 8, !tbaa !9
  %1871 = load ptr, ptr %28, align 8, !tbaa !5
  %1872 = load i64, ptr %52, align 8, !tbaa !9
  %1873 = getelementptr inbounds %struct.complex, ptr %1871, i64 %1872
  %1874 = getelementptr inbounds %struct.complex, ptr %1873, i32 0, i32 0
  %1875 = load float, ptr %1874, align 4, !tbaa !11
  %1876 = load ptr, ptr %32, align 8, !tbaa !5
  %1877 = load i64, ptr %51, align 8, !tbaa !9
  %1878 = getelementptr inbounds %struct.complex, ptr %1876, i64 %1877
  %1879 = getelementptr inbounds %struct.complex, ptr %1878, i32 0, i32 0
  store float %1875, ptr %1879, align 4, !tbaa !11
  %1880 = load ptr, ptr %28, align 8, !tbaa !5
  %1881 = load i64, ptr %52, align 8, !tbaa !9
  %1882 = getelementptr inbounds %struct.complex, ptr %1880, i64 %1881
  %1883 = getelementptr inbounds %struct.complex, ptr %1882, i32 0, i32 1
  %1884 = load float, ptr %1883, align 4, !tbaa !14
  %1885 = load ptr, ptr %32, align 8, !tbaa !5
  %1886 = load i64, ptr %51, align 8, !tbaa !9
  %1887 = getelementptr inbounds %struct.complex, ptr %1885, i64 %1886
  %1888 = getelementptr inbounds %struct.complex, ptr %1887, i32 0, i32 1
  store float %1884, ptr %1888, align 4, !tbaa !14
  %1889 = load i64, ptr %92, align 8, !tbaa !9
  store i64 %1889, ptr %51, align 8, !tbaa !9
  %1890 = load i64, ptr %92, align 8, !tbaa !9
  %1891 = load i64, ptr %92, align 8, !tbaa !9
  %1892 = load i64, ptr %46, align 8, !tbaa !9
  %1893 = mul nsw i64 %1891, %1892
  %1894 = add nsw i64 %1890, %1893
  store i64 %1894, ptr %52, align 8, !tbaa !9
  %1895 = load ptr, ptr %30, align 8, !tbaa !5
  %1896 = load i64, ptr %52, align 8, !tbaa !9
  %1897 = getelementptr inbounds %struct.complex, ptr %1895, i64 %1896
  %1898 = getelementptr inbounds %struct.complex, ptr %1897, i32 0, i32 0
  %1899 = load float, ptr %1898, align 4, !tbaa !11
  %1900 = load ptr, ptr %33, align 8, !tbaa !5
  %1901 = load i64, ptr %51, align 8, !tbaa !9
  %1902 = getelementptr inbounds %struct.complex, ptr %1900, i64 %1901
  %1903 = getelementptr inbounds %struct.complex, ptr %1902, i32 0, i32 0
  store float %1899, ptr %1903, align 4, !tbaa !11
  %1904 = load ptr, ptr %30, align 8, !tbaa !5
  %1905 = load i64, ptr %52, align 8, !tbaa !9
  %1906 = getelementptr inbounds %struct.complex, ptr %1904, i64 %1905
  %1907 = getelementptr inbounds %struct.complex, ptr %1906, i32 0, i32 1
  %1908 = load float, ptr %1907, align 4, !tbaa !14
  %1909 = load ptr, ptr %33, align 8, !tbaa !5
  %1910 = load i64, ptr %51, align 8, !tbaa !9
  %1911 = getelementptr inbounds %struct.complex, ptr %1909, i64 %1910
  %1912 = getelementptr inbounds %struct.complex, ptr %1911, i32 0, i32 1
  store float %1908, ptr %1912, align 4, !tbaa !14
  %1913 = load i64, ptr %92, align 8, !tbaa !9
  %1914 = add nsw i64 %1913, -1
  store i64 %1914, ptr %92, align 8, !tbaa !9
  %1915 = load i64, ptr %92, align 8, !tbaa !9
  %1916 = load ptr, ptr %26, align 8, !tbaa !5
  %1917 = load i64, ptr %1916, align 8, !tbaa !9
  %1918 = icmp slt i64 %1915, %1917
  br i1 %1918, label %1919, label %1920

1919:                                             ; preds = %1864
  br label %4228

1920:                                             ; preds = %1864
  store i64 0, ptr %91, align 8, !tbaa !9
  %1921 = getelementptr inbounds %struct.complex, ptr %106, i32 0, i32 0
  store float 0.000000e+00, ptr %1921, align 4, !tbaa !11
  %1922 = getelementptr inbounds %struct.complex, ptr %106, i32 0, i32 1
  store float 0.000000e+00, ptr %1922, align 4, !tbaa !14
  %1923 = load i64, ptr %107, align 8, !tbaa !9
  %1924 = icmp ne i64 %1923, 0
  br i1 %1924, label %1934, label %1925

1925:                                             ; preds = %1920
  %1926 = load i64, ptr %92, align 8, !tbaa !9
  store i64 %1926, ptr %109, align 8, !tbaa !9
  %1927 = load i64, ptr %115, align 8, !tbaa !9
  %1928 = load i64, ptr %92, align 8, !tbaa !9
  %1929 = icmp sgt i64 %1927, %1928
  br i1 %1929, label %1930, label %1933

1930:                                             ; preds = %1925
  %1931 = load ptr, ptr %26, align 8, !tbaa !5
  %1932 = load i64, ptr %1931, align 8, !tbaa !9
  store i64 %1932, ptr %115, align 8, !tbaa !9
  br label %1933

1933:                                             ; preds = %1930, %1925
  br label %1934

1934:                                             ; preds = %1933, %1920
  br label %4220

1935:                                             ; preds = %1580, %1308
  %1936 = load i64, ptr %91, align 8, !tbaa !9
  %1937 = add nsw i64 %1936, 1
  store i64 %1937, ptr %91, align 8, !tbaa !9
  %1938 = load i64, ptr %107, align 8, !tbaa !9
  %1939 = icmp ne i64 %1938, 0
  br i1 %1939, label %1942, label %1940

1940:                                             ; preds = %1935
  %1941 = load i64, ptr %114, align 8, !tbaa !9
  store i64 %1941, ptr %115, align 8, !tbaa !9
  br label %1942

1942:                                             ; preds = %1940, %1935
  %1943 = load i64, ptr %91, align 8, !tbaa !9
  %1944 = sdiv i64 %1943, 10
  %1945 = mul nsw i64 %1944, 10
  %1946 = load i64, ptr %91, align 8, !tbaa !9
  %1947 = icmp ne i64 %1945, %1946
  br i1 %1947, label %1948, label %2416

1948:                                             ; preds = %1942
  %1949 = load i64, ptr %92, align 8, !tbaa !9
  %1950 = sub nsw i64 %1949, 1
  %1951 = load i64, ptr %92, align 8, !tbaa !9
  %1952 = load i64, ptr %46, align 8, !tbaa !9
  %1953 = mul nsw i64 %1951, %1952
  %1954 = add nsw i64 %1950, %1953
  store i64 %1954, ptr %51, align 8, !tbaa !9
  %1955 = load float, ptr %103, align 4, !tbaa !15
  %1956 = load ptr, ptr %30, align 8, !tbaa !5
  %1957 = load i64, ptr %51, align 8, !tbaa !9
  %1958 = getelementptr inbounds %struct.complex, ptr %1956, i64 %1957
  %1959 = getelementptr inbounds %struct.complex, ptr %1958, i32 0, i32 0
  %1960 = load float, ptr %1959, align 4, !tbaa !11
  %1961 = fmul float %1955, %1960
  %1962 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %1961, ptr %1962, align 4, !tbaa !11
  %1963 = load float, ptr %103, align 4, !tbaa !15
  %1964 = load ptr, ptr %30, align 8, !tbaa !5
  %1965 = load i64, ptr %51, align 8, !tbaa !9
  %1966 = getelementptr inbounds %struct.complex, ptr %1964, i64 %1965
  %1967 = getelementptr inbounds %struct.complex, ptr %1966, i32 0, i32 1
  %1968 = load float, ptr %1967, align 4, !tbaa !14
  %1969 = fmul float %1963, %1968
  %1970 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %1969, ptr %1970, align 4, !tbaa !14
  %1971 = load i64, ptr %92, align 8, !tbaa !9
  %1972 = load i64, ptr %92, align 8, !tbaa !9
  %1973 = load i64, ptr %46, align 8, !tbaa !9
  %1974 = mul nsw i64 %1972, %1973
  %1975 = add nsw i64 %1971, %1974
  store i64 %1975, ptr %52, align 8, !tbaa !9
  %1976 = load float, ptr %103, align 4, !tbaa !15
  %1977 = load ptr, ptr %30, align 8, !tbaa !5
  %1978 = load i64, ptr %52, align 8, !tbaa !9
  %1979 = getelementptr inbounds %struct.complex, ptr %1977, i64 %1978
  %1980 = getelementptr inbounds %struct.complex, ptr %1979, i32 0, i32 0
  %1981 = load float, ptr %1980, align 4, !tbaa !11
  %1982 = fmul float %1976, %1981
  %1983 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %1982, ptr %1983, align 4, !tbaa !11
  %1984 = load float, ptr %103, align 4, !tbaa !15
  %1985 = load ptr, ptr %30, align 8, !tbaa !5
  %1986 = load i64, ptr %52, align 8, !tbaa !9
  %1987 = getelementptr inbounds %struct.complex, ptr %1985, i64 %1986
  %1988 = getelementptr inbounds %struct.complex, ptr %1987, i32 0, i32 1
  %1989 = load float, ptr %1988, align 4, !tbaa !14
  %1990 = fmul float %1984, %1989
  %1991 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %1990, ptr %1991, align 4, !tbaa !14
  call void @c_div(ptr noundef %62, ptr noundef %63, ptr noundef %64)
  %1992 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %1993 = load float, ptr %1992, align 4, !tbaa !11
  %1994 = getelementptr inbounds %struct.complex, ptr %74, i32 0, i32 0
  store float %1993, ptr %1994, align 4, !tbaa !11
  %1995 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %1996 = load float, ptr %1995, align 4, !tbaa !14
  %1997 = getelementptr inbounds %struct.complex, ptr %74, i32 0, i32 1
  store float %1996, ptr %1997, align 4, !tbaa !14
  %1998 = load i64, ptr %92, align 8, !tbaa !9
  %1999 = sub nsw i64 %1998, 1
  %2000 = load i64, ptr %92, align 8, !tbaa !9
  %2001 = sub nsw i64 %2000, 1
  %2002 = load i64, ptr %42, align 8, !tbaa !9
  %2003 = mul nsw i64 %2001, %2002
  %2004 = add nsw i64 %1999, %2003
  store i64 %2004, ptr %51, align 8, !tbaa !9
  %2005 = load float, ptr %102, align 4, !tbaa !15
  %2006 = load ptr, ptr %28, align 8, !tbaa !5
  %2007 = load i64, ptr %51, align 8, !tbaa !9
  %2008 = getelementptr inbounds %struct.complex, ptr %2006, i64 %2007
  %2009 = getelementptr inbounds %struct.complex, ptr %2008, i32 0, i32 0
  %2010 = load float, ptr %2009, align 4, !tbaa !11
  %2011 = fmul float %2005, %2010
  %2012 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2011, ptr %2012, align 4, !tbaa !11
  %2013 = load float, ptr %102, align 4, !tbaa !15
  %2014 = load ptr, ptr %28, align 8, !tbaa !5
  %2015 = load i64, ptr %51, align 8, !tbaa !9
  %2016 = getelementptr inbounds %struct.complex, ptr %2014, i64 %2015
  %2017 = getelementptr inbounds %struct.complex, ptr %2016, i32 0, i32 1
  %2018 = load float, ptr %2017, align 4, !tbaa !14
  %2019 = fmul float %2013, %2018
  %2020 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2019, ptr %2020, align 4, !tbaa !14
  %2021 = load i64, ptr %92, align 8, !tbaa !9
  %2022 = sub nsw i64 %2021, 1
  %2023 = load i64, ptr %92, align 8, !tbaa !9
  %2024 = sub nsw i64 %2023, 1
  %2025 = load i64, ptr %46, align 8, !tbaa !9
  %2026 = mul nsw i64 %2024, %2025
  %2027 = add nsw i64 %2022, %2026
  store i64 %2027, ptr %52, align 8, !tbaa !9
  %2028 = load float, ptr %103, align 4, !tbaa !15
  %2029 = load ptr, ptr %30, align 8, !tbaa !5
  %2030 = load i64, ptr %52, align 8, !tbaa !9
  %2031 = getelementptr inbounds %struct.complex, ptr %2029, i64 %2030
  %2032 = getelementptr inbounds %struct.complex, ptr %2031, i32 0, i32 0
  %2033 = load float, ptr %2032, align 4, !tbaa !11
  %2034 = fmul float %2028, %2033
  %2035 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %2034, ptr %2035, align 4, !tbaa !11
  %2036 = load float, ptr %103, align 4, !tbaa !15
  %2037 = load ptr, ptr %30, align 8, !tbaa !5
  %2038 = load i64, ptr %52, align 8, !tbaa !9
  %2039 = getelementptr inbounds %struct.complex, ptr %2037, i64 %2038
  %2040 = getelementptr inbounds %struct.complex, ptr %2039, i32 0, i32 1
  %2041 = load float, ptr %2040, align 4, !tbaa !14
  %2042 = fmul float %2036, %2041
  %2043 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %2042, ptr %2043, align 4, !tbaa !14
  call void @c_div(ptr noundef %62, ptr noundef %63, ptr noundef %64)
  %2044 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2045 = load float, ptr %2044, align 4, !tbaa !11
  %2046 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 0
  store float %2045, ptr %2046, align 4, !tbaa !11
  %2047 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2048 = load float, ptr %2047, align 4, !tbaa !14
  %2049 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 1
  store float %2048, ptr %2049, align 4, !tbaa !14
  %2050 = load i64, ptr %92, align 8, !tbaa !9
  %2051 = load i64, ptr %92, align 8, !tbaa !9
  %2052 = sub nsw i64 %2051, 1
  %2053 = load i64, ptr %42, align 8, !tbaa !9
  %2054 = mul nsw i64 %2052, %2053
  %2055 = add nsw i64 %2050, %2054
  store i64 %2055, ptr %51, align 8, !tbaa !9
  %2056 = load float, ptr %102, align 4, !tbaa !15
  %2057 = load ptr, ptr %28, align 8, !tbaa !5
  %2058 = load i64, ptr %51, align 8, !tbaa !9
  %2059 = getelementptr inbounds %struct.complex, ptr %2057, i64 %2058
  %2060 = getelementptr inbounds %struct.complex, ptr %2059, i32 0, i32 0
  %2061 = load float, ptr %2060, align 4, !tbaa !11
  %2062 = fmul float %2056, %2061
  %2063 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2062, ptr %2063, align 4, !tbaa !11
  %2064 = load float, ptr %102, align 4, !tbaa !15
  %2065 = load ptr, ptr %28, align 8, !tbaa !5
  %2066 = load i64, ptr %51, align 8, !tbaa !9
  %2067 = getelementptr inbounds %struct.complex, ptr %2065, i64 %2066
  %2068 = getelementptr inbounds %struct.complex, ptr %2067, i32 0, i32 1
  %2069 = load float, ptr %2068, align 4, !tbaa !14
  %2070 = fmul float %2064, %2069
  %2071 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2070, ptr %2071, align 4, !tbaa !14
  %2072 = load i64, ptr %92, align 8, !tbaa !9
  %2073 = sub nsw i64 %2072, 1
  %2074 = load i64, ptr %92, align 8, !tbaa !9
  %2075 = sub nsw i64 %2074, 1
  %2076 = load i64, ptr %46, align 8, !tbaa !9
  %2077 = mul nsw i64 %2075, %2076
  %2078 = add nsw i64 %2073, %2077
  store i64 %2078, ptr %52, align 8, !tbaa !9
  %2079 = load float, ptr %103, align 4, !tbaa !15
  %2080 = load ptr, ptr %30, align 8, !tbaa !5
  %2081 = load i64, ptr %52, align 8, !tbaa !9
  %2082 = getelementptr inbounds %struct.complex, ptr %2080, i64 %2081
  %2083 = getelementptr inbounds %struct.complex, ptr %2082, i32 0, i32 0
  %2084 = load float, ptr %2083, align 4, !tbaa !11
  %2085 = fmul float %2079, %2084
  %2086 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %2085, ptr %2086, align 4, !tbaa !11
  %2087 = load float, ptr %103, align 4, !tbaa !15
  %2088 = load ptr, ptr %30, align 8, !tbaa !5
  %2089 = load i64, ptr %52, align 8, !tbaa !9
  %2090 = getelementptr inbounds %struct.complex, ptr %2088, i64 %2089
  %2091 = getelementptr inbounds %struct.complex, ptr %2090, i32 0, i32 1
  %2092 = load float, ptr %2091, align 4, !tbaa !14
  %2093 = fmul float %2087, %2092
  %2094 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %2093, ptr %2094, align 4, !tbaa !14
  call void @c_div(ptr noundef %62, ptr noundef %63, ptr noundef %64)
  %2095 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2096 = load float, ptr %2095, align 4, !tbaa !11
  %2097 = getelementptr inbounds %struct.complex, ptr %78, i32 0, i32 0
  store float %2096, ptr %2097, align 4, !tbaa !11
  %2098 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2099 = load float, ptr %2098, align 4, !tbaa !14
  %2100 = getelementptr inbounds %struct.complex, ptr %78, i32 0, i32 1
  store float %2099, ptr %2100, align 4, !tbaa !14
  %2101 = load i64, ptr %92, align 8, !tbaa !9
  %2102 = sub nsw i64 %2101, 1
  %2103 = load i64, ptr %92, align 8, !tbaa !9
  %2104 = load i64, ptr %42, align 8, !tbaa !9
  %2105 = mul nsw i64 %2103, %2104
  %2106 = add nsw i64 %2102, %2105
  store i64 %2106, ptr %51, align 8, !tbaa !9
  %2107 = load float, ptr %102, align 4, !tbaa !15
  %2108 = load ptr, ptr %28, align 8, !tbaa !5
  %2109 = load i64, ptr %51, align 8, !tbaa !9
  %2110 = getelementptr inbounds %struct.complex, ptr %2108, i64 %2109
  %2111 = getelementptr inbounds %struct.complex, ptr %2110, i32 0, i32 0
  %2112 = load float, ptr %2111, align 4, !tbaa !11
  %2113 = fmul float %2107, %2112
  %2114 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2113, ptr %2114, align 4, !tbaa !11
  %2115 = load float, ptr %102, align 4, !tbaa !15
  %2116 = load ptr, ptr %28, align 8, !tbaa !5
  %2117 = load i64, ptr %51, align 8, !tbaa !9
  %2118 = getelementptr inbounds %struct.complex, ptr %2116, i64 %2117
  %2119 = getelementptr inbounds %struct.complex, ptr %2118, i32 0, i32 1
  %2120 = load float, ptr %2119, align 4, !tbaa !14
  %2121 = fmul float %2115, %2120
  %2122 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2121, ptr %2122, align 4, !tbaa !14
  %2123 = load i64, ptr %92, align 8, !tbaa !9
  %2124 = load i64, ptr %92, align 8, !tbaa !9
  %2125 = load i64, ptr %46, align 8, !tbaa !9
  %2126 = mul nsw i64 %2124, %2125
  %2127 = add nsw i64 %2123, %2126
  store i64 %2127, ptr %52, align 8, !tbaa !9
  %2128 = load float, ptr %103, align 4, !tbaa !15
  %2129 = load ptr, ptr %30, align 8, !tbaa !5
  %2130 = load i64, ptr %52, align 8, !tbaa !9
  %2131 = getelementptr inbounds %struct.complex, ptr %2129, i64 %2130
  %2132 = getelementptr inbounds %struct.complex, ptr %2131, i32 0, i32 0
  %2133 = load float, ptr %2132, align 4, !tbaa !11
  %2134 = fmul float %2128, %2133
  %2135 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %2134, ptr %2135, align 4, !tbaa !11
  %2136 = load float, ptr %103, align 4, !tbaa !15
  %2137 = load ptr, ptr %30, align 8, !tbaa !5
  %2138 = load i64, ptr %52, align 8, !tbaa !9
  %2139 = getelementptr inbounds %struct.complex, ptr %2137, i64 %2138
  %2140 = getelementptr inbounds %struct.complex, ptr %2139, i32 0, i32 1
  %2141 = load float, ptr %2140, align 4, !tbaa !14
  %2142 = fmul float %2136, %2141
  %2143 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %2142, ptr %2143, align 4, !tbaa !14
  call void @c_div(ptr noundef %62, ptr noundef %63, ptr noundef %64)
  %2144 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2145 = load float, ptr %2144, align 4, !tbaa !11
  %2146 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  store float %2145, ptr %2146, align 4, !tbaa !11
  %2147 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2148 = load float, ptr %2147, align 4, !tbaa !14
  %2149 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  store float %2148, ptr %2149, align 4, !tbaa !14
  %2150 = load i64, ptr %92, align 8, !tbaa !9
  %2151 = load i64, ptr %92, align 8, !tbaa !9
  %2152 = load i64, ptr %42, align 8, !tbaa !9
  %2153 = mul nsw i64 %2151, %2152
  %2154 = add nsw i64 %2150, %2153
  store i64 %2154, ptr %51, align 8, !tbaa !9
  %2155 = load float, ptr %102, align 4, !tbaa !15
  %2156 = load ptr, ptr %28, align 8, !tbaa !5
  %2157 = load i64, ptr %51, align 8, !tbaa !9
  %2158 = getelementptr inbounds %struct.complex, ptr %2156, i64 %2157
  %2159 = getelementptr inbounds %struct.complex, ptr %2158, i32 0, i32 0
  %2160 = load float, ptr %2159, align 4, !tbaa !11
  %2161 = fmul float %2155, %2160
  %2162 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2161, ptr %2162, align 4, !tbaa !11
  %2163 = load float, ptr %102, align 4, !tbaa !15
  %2164 = load ptr, ptr %28, align 8, !tbaa !5
  %2165 = load i64, ptr %51, align 8, !tbaa !9
  %2166 = getelementptr inbounds %struct.complex, ptr %2164, i64 %2165
  %2167 = getelementptr inbounds %struct.complex, ptr %2166, i32 0, i32 1
  %2168 = load float, ptr %2167, align 4, !tbaa !14
  %2169 = fmul float %2163, %2168
  %2170 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2169, ptr %2170, align 4, !tbaa !14
  %2171 = load i64, ptr %92, align 8, !tbaa !9
  %2172 = load i64, ptr %92, align 8, !tbaa !9
  %2173 = load i64, ptr %46, align 8, !tbaa !9
  %2174 = mul nsw i64 %2172, %2173
  %2175 = add nsw i64 %2171, %2174
  store i64 %2175, ptr %52, align 8, !tbaa !9
  %2176 = load float, ptr %103, align 4, !tbaa !15
  %2177 = load ptr, ptr %30, align 8, !tbaa !5
  %2178 = load i64, ptr %52, align 8, !tbaa !9
  %2179 = getelementptr inbounds %struct.complex, ptr %2177, i64 %2178
  %2180 = getelementptr inbounds %struct.complex, ptr %2179, i32 0, i32 0
  %2181 = load float, ptr %2180, align 4, !tbaa !11
  %2182 = fmul float %2176, %2181
  %2183 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %2182, ptr %2183, align 4, !tbaa !11
  %2184 = load float, ptr %103, align 4, !tbaa !15
  %2185 = load ptr, ptr %30, align 8, !tbaa !5
  %2186 = load i64, ptr %52, align 8, !tbaa !9
  %2187 = getelementptr inbounds %struct.complex, ptr %2185, i64 %2186
  %2188 = getelementptr inbounds %struct.complex, ptr %2187, i32 0, i32 1
  %2189 = load float, ptr %2188, align 4, !tbaa !14
  %2190 = fmul float %2184, %2189
  %2191 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %2190, ptr %2191, align 4, !tbaa !14
  call void @c_div(ptr noundef %62, ptr noundef %63, ptr noundef %64)
  %2192 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2193 = load float, ptr %2192, align 4, !tbaa !11
  %2194 = getelementptr inbounds %struct.complex, ptr %79, i32 0, i32 0
  store float %2193, ptr %2194, align 4, !tbaa !11
  %2195 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2196 = load float, ptr %2195, align 4, !tbaa !14
  %2197 = getelementptr inbounds %struct.complex, ptr %79, i32 0, i32 1
  store float %2196, ptr %2197, align 4, !tbaa !14
  %2198 = getelementptr inbounds %struct.complex, ptr %74, i32 0, i32 0
  %2199 = load float, ptr %2198, align 4, !tbaa !11
  %2200 = getelementptr inbounds %struct.complex, ptr %78, i32 0, i32 0
  %2201 = load float, ptr %2200, align 4, !tbaa !11
  %2202 = getelementptr inbounds %struct.complex, ptr %74, i32 0, i32 1
  %2203 = load float, ptr %2202, align 4, !tbaa !14
  %2204 = getelementptr inbounds %struct.complex, ptr %78, i32 0, i32 1
  %2205 = load float, ptr %2204, align 4, !tbaa !14
  %2206 = fmul float %2203, %2205
  %2207 = fneg float %2206
  %2208 = call float @llvm.fmuladd.f32(float %2199, float %2201, float %2207)
  %2209 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2208, ptr %2209, align 4, !tbaa !11
  %2210 = getelementptr inbounds %struct.complex, ptr %74, i32 0, i32 0
  %2211 = load float, ptr %2210, align 4, !tbaa !11
  %2212 = getelementptr inbounds %struct.complex, ptr %78, i32 0, i32 1
  %2213 = load float, ptr %2212, align 4, !tbaa !14
  %2214 = getelementptr inbounds %struct.complex, ptr %74, i32 0, i32 1
  %2215 = load float, ptr %2214, align 4, !tbaa !14
  %2216 = getelementptr inbounds %struct.complex, ptr %78, i32 0, i32 0
  %2217 = load float, ptr %2216, align 4, !tbaa !11
  %2218 = fmul float %2215, %2217
  %2219 = call float @llvm.fmuladd.f32(float %2211, float %2213, float %2218)
  %2220 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2219, ptr %2220, align 4, !tbaa !14
  %2221 = getelementptr inbounds %struct.complex, ptr %79, i32 0, i32 0
  %2222 = load float, ptr %2221, align 4, !tbaa !11
  %2223 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %2224 = load float, ptr %2223, align 4, !tbaa !11
  %2225 = fsub float %2222, %2224
  %2226 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %2225, ptr %2226, align 4, !tbaa !11
  %2227 = getelementptr inbounds %struct.complex, ptr %79, i32 0, i32 1
  %2228 = load float, ptr %2227, align 4, !tbaa !14
  %2229 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %2230 = load float, ptr %2229, align 4, !tbaa !14
  %2231 = fsub float %2228, %2230
  %2232 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %2231, ptr %2232, align 4, !tbaa !14
  %2233 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2234 = load float, ptr %2233, align 4, !tbaa !11
  %2235 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %2234, ptr %2235, align 4, !tbaa !11
  %2236 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2237 = load float, ptr %2236, align 4, !tbaa !14
  %2238 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %2237, ptr %2238, align 4, !tbaa !14
  %2239 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 0
  %2240 = load float, ptr %2239, align 4, !tbaa !11
  %2241 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %2242 = load float, ptr %2241, align 4, !tbaa !11
  %2243 = fadd float %2240, %2242
  %2244 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2243, ptr %2244, align 4, !tbaa !11
  %2245 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 1
  %2246 = load float, ptr %2245, align 4, !tbaa !14
  %2247 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  %2248 = load float, ptr %2247, align 4, !tbaa !14
  %2249 = fadd float %2246, %2248
  %2250 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2249, ptr %2250, align 4, !tbaa !14
  %2251 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %2252 = load float, ptr %2251, align 4, !tbaa !11
  %2253 = fmul float %2252, 5.000000e-01
  %2254 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %2253, ptr %2254, align 4, !tbaa !11
  %2255 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %2256 = load float, ptr %2255, align 4, !tbaa !14
  %2257 = fmul float %2256, 5.000000e-01
  %2258 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %2257, ptr %2258, align 4, !tbaa !14
  %2259 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2260 = load float, ptr %2259, align 4, !tbaa !11
  %2261 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %2260, ptr %2261, align 4, !tbaa !11
  %2262 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2263 = load float, ptr %2262, align 4, !tbaa !14
  %2264 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %2263, ptr %2264, align 4, !tbaa !14
  call void @pow_ci(ptr noundef %65, ptr noundef %71, ptr noundef @c__2)
  %2265 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  %2266 = load float, ptr %2265, align 4, !tbaa !11
  %2267 = getelementptr inbounds %struct.complex, ptr %78, i32 0, i32 0
  %2268 = load float, ptr %2267, align 4, !tbaa !11
  %2269 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  %2270 = load float, ptr %2269, align 4, !tbaa !14
  %2271 = getelementptr inbounds %struct.complex, ptr %78, i32 0, i32 1
  %2272 = load float, ptr %2271, align 4, !tbaa !14
  %2273 = fmul float %2270, %2272
  %2274 = fneg float %2273
  %2275 = call float @llvm.fmuladd.f32(float %2266, float %2268, float %2274)
  %2276 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  store float %2275, ptr %2276, align 4, !tbaa !11
  %2277 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 0
  %2278 = load float, ptr %2277, align 4, !tbaa !11
  %2279 = getelementptr inbounds %struct.complex, ptr %78, i32 0, i32 1
  %2280 = load float, ptr %2279, align 4, !tbaa !14
  %2281 = getelementptr inbounds %struct.complex, ptr %77, i32 0, i32 1
  %2282 = load float, ptr %2281, align 4, !tbaa !14
  %2283 = getelementptr inbounds %struct.complex, ptr %78, i32 0, i32 0
  %2284 = load float, ptr %2283, align 4, !tbaa !11
  %2285 = fmul float %2282, %2284
  %2286 = call float @llvm.fmuladd.f32(float %2278, float %2280, float %2285)
  %2287 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  store float %2286, ptr %2287, align 4, !tbaa !14
  %2288 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2289 = load float, ptr %2288, align 4, !tbaa !11
  %2290 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %2291 = load float, ptr %2290, align 4, !tbaa !11
  %2292 = fadd float %2289, %2291
  %2293 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %2292, ptr %2293, align 4, !tbaa !11
  %2294 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2295 = load float, ptr %2294, align 4, !tbaa !14
  %2296 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %2297 = load float, ptr %2296, align 4, !tbaa !14
  %2298 = fadd float %2295, %2297
  %2299 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %2298, ptr %2299, align 4, !tbaa !14
  %2300 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 0
  %2301 = load float, ptr %2300, align 4, !tbaa !11
  %2302 = getelementptr inbounds %struct.complex, ptr %79, i32 0, i32 0
  %2303 = load float, ptr %2302, align 4, !tbaa !11
  %2304 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 1
  %2305 = load float, ptr %2304, align 4, !tbaa !14
  %2306 = getelementptr inbounds %struct.complex, ptr %79, i32 0, i32 1
  %2307 = load float, ptr %2306, align 4, !tbaa !14
  %2308 = fmul float %2305, %2307
  %2309 = fneg float %2308
  %2310 = call float @llvm.fmuladd.f32(float %2301, float %2303, float %2309)
  %2311 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %2310, ptr %2311, align 4, !tbaa !11
  %2312 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 0
  %2313 = load float, ptr %2312, align 4, !tbaa !11
  %2314 = getelementptr inbounds %struct.complex, ptr %79, i32 0, i32 1
  %2315 = load float, ptr %2314, align 4, !tbaa !14
  %2316 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 1
  %2317 = load float, ptr %2316, align 4, !tbaa !14
  %2318 = getelementptr inbounds %struct.complex, ptr %79, i32 0, i32 0
  %2319 = load float, ptr %2318, align 4, !tbaa !11
  %2320 = fmul float %2317, %2319
  %2321 = call float @llvm.fmuladd.f32(float %2313, float %2315, float %2320)
  %2322 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %2321, ptr %2322, align 4, !tbaa !14
  %2323 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %2324 = load float, ptr %2323, align 4, !tbaa !11
  %2325 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  %2326 = load float, ptr %2325, align 4, !tbaa !11
  %2327 = fsub float %2324, %2326
  %2328 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2327, ptr %2328, align 4, !tbaa !11
  %2329 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %2330 = load float, ptr %2329, align 4, !tbaa !14
  %2331 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  %2332 = load float, ptr %2331, align 4, !tbaa !14
  %2333 = fsub float %2330, %2332
  %2334 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2333, ptr %2334, align 4, !tbaa !14
  call void @c_sqrt(ptr noundef %62, ptr noundef %63)
  %2335 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2336 = load float, ptr %2335, align 4, !tbaa !11
  %2337 = getelementptr inbounds %struct.complex, ptr %110, i32 0, i32 0
  store float %2336, ptr %2337, align 4, !tbaa !11
  %2338 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2339 = load float, ptr %2338, align 4, !tbaa !14
  %2340 = getelementptr inbounds %struct.complex, ptr %110, i32 0, i32 1
  store float %2339, ptr %2340, align 4, !tbaa !14
  %2341 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %2342 = load float, ptr %2341, align 4, !tbaa !11
  %2343 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %2344 = load float, ptr %2343, align 4, !tbaa !11
  %2345 = fsub float %2342, %2344
  %2346 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %2345, ptr %2346, align 4, !tbaa !11
  %2347 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %2348 = load float, ptr %2347, align 4, !tbaa !14
  %2349 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  %2350 = load float, ptr %2349, align 4, !tbaa !14
  %2351 = fsub float %2348, %2350
  %2352 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %2351, ptr %2352, align 4, !tbaa !14
  %2353 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %2354 = load float, ptr %2353, align 4, !tbaa !11
  %2355 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %2356 = load float, ptr %2355, align 4, !tbaa !11
  %2357 = fsub float %2354, %2356
  %2358 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2357, ptr %2358, align 4, !tbaa !11
  %2359 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %2360 = load float, ptr %2359, align 4, !tbaa !14
  %2361 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  %2362 = load float, ptr %2361, align 4, !tbaa !14
  %2363 = fsub float %2360, %2362
  %2364 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2363, ptr %2364, align 4, !tbaa !14
  %2365 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2366 = load float, ptr %2365, align 4, !tbaa !11
  %2367 = getelementptr inbounds %struct.complex, ptr %110, i32 0, i32 0
  %2368 = load float, ptr %2367, align 4, !tbaa !11
  %2369 = fmul float %2366, %2368
  %2370 = fpext float %2369 to double
  %2371 = call double @r_imag(ptr noundef %63)
  %2372 = call double @r_imag(ptr noundef %110)
  %2373 = call double @llvm.fmuladd.f64(double %2371, double %2372, double %2370)
  %2374 = fptrunc double %2373 to float
  store float %2374, ptr %88, align 4, !tbaa !15
  %2375 = load float, ptr %88, align 4, !tbaa !15
  %2376 = fcmp ole float %2375, 0.000000e+00
  br i1 %2376, label %2377, label %2396

2377:                                             ; preds = %1948
  %2378 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %2379 = load float, ptr %2378, align 4, !tbaa !11
  %2380 = getelementptr inbounds %struct.complex, ptr %110, i32 0, i32 0
  %2381 = load float, ptr %2380, align 4, !tbaa !11
  %2382 = fadd float %2379, %2381
  %2383 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %2382, ptr %2383, align 4, !tbaa !11
  %2384 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %2385 = load float, ptr %2384, align 4, !tbaa !14
  %2386 = getelementptr inbounds %struct.complex, ptr %110, i32 0, i32 1
  %2387 = load float, ptr %2386, align 4, !tbaa !14
  %2388 = fadd float %2385, %2387
  %2389 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %2388, ptr %2389, align 4, !tbaa !14
  %2390 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2391 = load float, ptr %2390, align 4, !tbaa !11
  %2392 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 0
  store float %2391, ptr %2392, align 4, !tbaa !11
  %2393 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2394 = load float, ptr %2393, align 4, !tbaa !14
  %2395 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 1
  store float %2394, ptr %2395, align 4, !tbaa !14
  br label %2415

2396:                                             ; preds = %1948
  %2397 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %2398 = load float, ptr %2397, align 4, !tbaa !11
  %2399 = getelementptr inbounds %struct.complex, ptr %110, i32 0, i32 0
  %2400 = load float, ptr %2399, align 4, !tbaa !11
  %2401 = fsub float %2398, %2400
  %2402 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %2401, ptr %2402, align 4, !tbaa !11
  %2403 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %2404 = load float, ptr %2403, align 4, !tbaa !14
  %2405 = getelementptr inbounds %struct.complex, ptr %110, i32 0, i32 1
  %2406 = load float, ptr %2405, align 4, !tbaa !14
  %2407 = fsub float %2404, %2406
  %2408 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %2407, ptr %2408, align 4, !tbaa !14
  %2409 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2410 = load float, ptr %2409, align 4, !tbaa !11
  %2411 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 0
  store float %2410, ptr %2411, align 4, !tbaa !11
  %2412 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2413 = load float, ptr %2412, align 4, !tbaa !14
  %2414 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 1
  store float %2413, ptr %2414, align 4, !tbaa !14
  br label %2415

2415:                                             ; preds = %2396, %2377
  br label %2486

2416:                                             ; preds = %1942
  %2417 = load i64, ptr %92, align 8, !tbaa !9
  %2418 = sub nsw i64 %2417, 1
  %2419 = load i64, ptr %92, align 8, !tbaa !9
  %2420 = load i64, ptr %42, align 8, !tbaa !9
  %2421 = mul nsw i64 %2419, %2420
  %2422 = add nsw i64 %2418, %2421
  store i64 %2422, ptr %51, align 8, !tbaa !9
  %2423 = load float, ptr %102, align 4, !tbaa !15
  %2424 = load ptr, ptr %28, align 8, !tbaa !5
  %2425 = load i64, ptr %51, align 8, !tbaa !9
  %2426 = getelementptr inbounds %struct.complex, ptr %2424, i64 %2425
  %2427 = getelementptr inbounds %struct.complex, ptr %2426, i32 0, i32 0
  %2428 = load float, ptr %2427, align 4, !tbaa !11
  %2429 = fmul float %2423, %2428
  %2430 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %2429, ptr %2430, align 4, !tbaa !11
  %2431 = load float, ptr %102, align 4, !tbaa !15
  %2432 = load ptr, ptr %28, align 8, !tbaa !5
  %2433 = load i64, ptr %51, align 8, !tbaa !9
  %2434 = getelementptr inbounds %struct.complex, ptr %2432, i64 %2433
  %2435 = getelementptr inbounds %struct.complex, ptr %2434, i32 0, i32 1
  %2436 = load float, ptr %2435, align 4, !tbaa !14
  %2437 = fmul float %2431, %2436
  %2438 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float %2437, ptr %2438, align 4, !tbaa !14
  %2439 = load i64, ptr %92, align 8, !tbaa !9
  %2440 = sub nsw i64 %2439, 1
  %2441 = load i64, ptr %92, align 8, !tbaa !9
  %2442 = sub nsw i64 %2441, 1
  %2443 = load i64, ptr %46, align 8, !tbaa !9
  %2444 = mul nsw i64 %2442, %2443
  %2445 = add nsw i64 %2440, %2444
  store i64 %2445, ptr %52, align 8, !tbaa !9
  %2446 = load float, ptr %103, align 4, !tbaa !15
  %2447 = load ptr, ptr %30, align 8, !tbaa !5
  %2448 = load i64, ptr %52, align 8, !tbaa !9
  %2449 = getelementptr inbounds %struct.complex, ptr %2447, i64 %2448
  %2450 = getelementptr inbounds %struct.complex, ptr %2449, i32 0, i32 0
  %2451 = load float, ptr %2450, align 4, !tbaa !11
  %2452 = fmul float %2446, %2451
  %2453 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  store float %2452, ptr %2453, align 4, !tbaa !11
  %2454 = load float, ptr %103, align 4, !tbaa !15
  %2455 = load ptr, ptr %30, align 8, !tbaa !5
  %2456 = load i64, ptr %52, align 8, !tbaa !9
  %2457 = getelementptr inbounds %struct.complex, ptr %2455, i64 %2456
  %2458 = getelementptr inbounds %struct.complex, ptr %2457, i32 0, i32 1
  %2459 = load float, ptr %2458, align 4, !tbaa !14
  %2460 = fmul float %2454, %2459
  %2461 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  store float %2460, ptr %2461, align 4, !tbaa !14
  call void @c_div(ptr noundef %64, ptr noundef %65, ptr noundef %66)
  call void @r_cnjg(ptr noundef %63, ptr noundef %64)
  %2462 = getelementptr inbounds %struct.complex, ptr %106, i32 0, i32 0
  %2463 = load float, ptr %2462, align 4, !tbaa !11
  %2464 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %2465 = load float, ptr %2464, align 4, !tbaa !11
  %2466 = fadd float %2463, %2465
  %2467 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %2466, ptr %2467, align 4, !tbaa !11
  %2468 = getelementptr inbounds %struct.complex, ptr %106, i32 0, i32 1
  %2469 = load float, ptr %2468, align 4, !tbaa !14
  %2470 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %2471 = load float, ptr %2470, align 4, !tbaa !14
  %2472 = fadd float %2469, %2471
  %2473 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %2472, ptr %2473, align 4, !tbaa !14
  %2474 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2475 = load float, ptr %2474, align 4, !tbaa !11
  %2476 = getelementptr inbounds %struct.complex, ptr %106, i32 0, i32 0
  store float %2475, ptr %2476, align 4, !tbaa !11
  %2477 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2478 = load float, ptr %2477, align 4, !tbaa !14
  %2479 = getelementptr inbounds %struct.complex, ptr %106, i32 0, i32 1
  store float %2478, ptr %2479, align 4, !tbaa !14
  %2480 = getelementptr inbounds %struct.complex, ptr %106, i32 0, i32 0
  %2481 = load float, ptr %2480, align 4, !tbaa !11
  %2482 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 0
  store float %2481, ptr %2482, align 4, !tbaa !11
  %2483 = getelementptr inbounds %struct.complex, ptr %106, i32 0, i32 1
  %2484 = load float, ptr %2483, align 4, !tbaa !14
  %2485 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 1
  store float %2484, ptr %2485, align 4, !tbaa !14
  br label %2486

2486:                                             ; preds = %2416, %2415
  %2487 = load i64, ptr %114, align 8, !tbaa !9
  %2488 = add nsw i64 %2487, 1
  store i64 %2488, ptr %51, align 8, !tbaa !9
  %2489 = load i64, ptr %92, align 8, !tbaa !9
  %2490 = sub nsw i64 %2489, 1
  store i64 %2490, ptr %69, align 8, !tbaa !9
  br label %2491

2491:                                             ; preds = %2728, %2486
  %2492 = load i64, ptr %69, align 8, !tbaa !9
  %2493 = load i64, ptr %51, align 8, !tbaa !9
  %2494 = icmp sge i64 %2492, %2493
  br i1 %2494, label %2495, label %2731

2495:                                             ; preds = %2491
  %2496 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %2496, ptr %116, align 8, !tbaa !9
  %2497 = load i64, ptr %69, align 8, !tbaa !9
  %2498 = load i64, ptr %69, align 8, !tbaa !9
  %2499 = load i64, ptr %42, align 8, !tbaa !9
  %2500 = mul nsw i64 %2498, %2499
  %2501 = add nsw i64 %2497, %2500
  store i64 %2501, ptr %52, align 8, !tbaa !9
  %2502 = load float, ptr %102, align 4, !tbaa !15
  %2503 = load ptr, ptr %28, align 8, !tbaa !5
  %2504 = load i64, ptr %52, align 8, !tbaa !9
  %2505 = getelementptr inbounds %struct.complex, ptr %2503, i64 %2504
  %2506 = getelementptr inbounds %struct.complex, ptr %2505, i32 0, i32 0
  %2507 = load float, ptr %2506, align 4, !tbaa !11
  %2508 = fmul float %2502, %2507
  %2509 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2508, ptr %2509, align 4, !tbaa !11
  %2510 = load float, ptr %102, align 4, !tbaa !15
  %2511 = load ptr, ptr %28, align 8, !tbaa !5
  %2512 = load i64, ptr %52, align 8, !tbaa !9
  %2513 = getelementptr inbounds %struct.complex, ptr %2511, i64 %2512
  %2514 = getelementptr inbounds %struct.complex, ptr %2513, i32 0, i32 1
  %2515 = load float, ptr %2514, align 4, !tbaa !14
  %2516 = fmul float %2510, %2515
  %2517 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2516, ptr %2517, align 4, !tbaa !14
  %2518 = load i64, ptr %69, align 8, !tbaa !9
  %2519 = load i64, ptr %69, align 8, !tbaa !9
  %2520 = load i64, ptr %46, align 8, !tbaa !9
  %2521 = mul nsw i64 %2519, %2520
  %2522 = add nsw i64 %2518, %2521
  store i64 %2522, ptr %53, align 8, !tbaa !9
  %2523 = load float, ptr %103, align 4, !tbaa !15
  %2524 = load ptr, ptr %30, align 8, !tbaa !5
  %2525 = load i64, ptr %53, align 8, !tbaa !9
  %2526 = getelementptr inbounds %struct.complex, ptr %2524, i64 %2525
  %2527 = getelementptr inbounds %struct.complex, ptr %2526, i32 0, i32 0
  %2528 = load float, ptr %2527, align 4, !tbaa !11
  %2529 = fmul float %2523, %2528
  %2530 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %2529, ptr %2530, align 4, !tbaa !11
  %2531 = load float, ptr %103, align 4, !tbaa !15
  %2532 = load ptr, ptr %30, align 8, !tbaa !5
  %2533 = load i64, ptr %53, align 8, !tbaa !9
  %2534 = getelementptr inbounds %struct.complex, ptr %2532, i64 %2533
  %2535 = getelementptr inbounds %struct.complex, ptr %2534, i32 0, i32 1
  %2536 = load float, ptr %2535, align 4, !tbaa !14
  %2537 = fmul float %2531, %2536
  %2538 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float %2537, ptr %2538, align 4, !tbaa !14
  %2539 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 0
  %2540 = load float, ptr %2539, align 4, !tbaa !11
  %2541 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2542 = load float, ptr %2541, align 4, !tbaa !11
  %2543 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 1
  %2544 = load float, ptr %2543, align 4, !tbaa !14
  %2545 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2546 = load float, ptr %2545, align 4, !tbaa !14
  %2547 = fmul float %2544, %2546
  %2548 = fneg float %2547
  %2549 = call float @llvm.fmuladd.f32(float %2540, float %2542, float %2548)
  %2550 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %2549, ptr %2550, align 4, !tbaa !11
  %2551 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 0
  %2552 = load float, ptr %2551, align 4, !tbaa !11
  %2553 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2554 = load float, ptr %2553, align 4, !tbaa !14
  %2555 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 1
  %2556 = load float, ptr %2555, align 4, !tbaa !14
  %2557 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2558 = load float, ptr %2557, align 4, !tbaa !11
  %2559 = fmul float %2556, %2558
  %2560 = call float @llvm.fmuladd.f32(float %2552, float %2554, float %2559)
  %2561 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %2560, ptr %2561, align 4, !tbaa !14
  %2562 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %2563 = load float, ptr %2562, align 4, !tbaa !11
  %2564 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %2565 = load float, ptr %2564, align 4, !tbaa !11
  %2566 = fsub float %2563, %2565
  %2567 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %2566, ptr %2567, align 4, !tbaa !11
  %2568 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %2569 = load float, ptr %2568, align 4, !tbaa !14
  %2570 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %2571 = load float, ptr %2570, align 4, !tbaa !14
  %2572 = fsub float %2569, %2571
  %2573 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %2572, ptr %2573, align 4, !tbaa !14
  %2574 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2575 = load float, ptr %2574, align 4, !tbaa !11
  %2576 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %2575, ptr %2576, align 4, !tbaa !11
  %2577 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2578 = load float, ptr %2577, align 4, !tbaa !14
  %2579 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %2578, ptr %2579, align 4, !tbaa !14
  %2580 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  %2581 = load float, ptr %2580, align 4, !tbaa !11
  store float %2581, ptr %56, align 4, !tbaa !15
  %2582 = load float, ptr %56, align 4, !tbaa !15
  %2583 = fcmp oge float %2582, 0.000000e+00
  br i1 %2583, label %2584, label %2586

2584:                                             ; preds = %2495
  %2585 = load float, ptr %56, align 4, !tbaa !15
  br label %2589

2586:                                             ; preds = %2495
  %2587 = load float, ptr %56, align 4, !tbaa !15
  %2588 = fneg float %2587
  br label %2589

2589:                                             ; preds = %2586, %2584
  %2590 = phi float [ %2585, %2584 ], [ %2588, %2586 ]
  %2591 = fpext float %2590 to double
  %2592 = call double @r_imag(ptr noundef %90)
  %2593 = fptrunc double %2592 to float
  store float %2593, ptr %57, align 4, !tbaa !15
  %2594 = load float, ptr %57, align 4, !tbaa !15
  %2595 = fcmp oge float %2594, 0.000000e+00
  br i1 %2595, label %2596, label %2598

2596:                                             ; preds = %2589
  %2597 = load float, ptr %57, align 4, !tbaa !15
  br label %2601

2598:                                             ; preds = %2589
  %2599 = load float, ptr %57, align 4, !tbaa !15
  %2600 = fneg float %2599
  br label %2601

2601:                                             ; preds = %2598, %2596
  %2602 = phi float [ %2597, %2596 ], [ %2600, %2598 ]
  %2603 = fpext float %2602 to double
  %2604 = fadd double %2591, %2603
  %2605 = fptrunc double %2604 to float
  store float %2605, ptr %88, align 4, !tbaa !15
  %2606 = load i64, ptr %69, align 8, !tbaa !9
  %2607 = add nsw i64 %2606, 1
  %2608 = load i64, ptr %69, align 8, !tbaa !9
  %2609 = load i64, ptr %42, align 8, !tbaa !9
  %2610 = mul nsw i64 %2608, %2609
  %2611 = add nsw i64 %2607, %2610
  store i64 %2611, ptr %52, align 8, !tbaa !9
  %2612 = load float, ptr %102, align 4, !tbaa !15
  %2613 = fpext float %2612 to double
  %2614 = load ptr, ptr %28, align 8, !tbaa !5
  %2615 = load i64, ptr %52, align 8, !tbaa !9
  %2616 = getelementptr inbounds %struct.complex, ptr %2614, i64 %2615
  %2617 = getelementptr inbounds %struct.complex, ptr %2616, i32 0, i32 0
  %2618 = load float, ptr %2617, align 4, !tbaa !11
  store float %2618, ptr %56, align 4, !tbaa !15
  %2619 = load float, ptr %56, align 4, !tbaa !15
  %2620 = fcmp oge float %2619, 0.000000e+00
  br i1 %2620, label %2621, label %2623

2621:                                             ; preds = %2601
  %2622 = load float, ptr %56, align 4, !tbaa !15
  br label %2626

2623:                                             ; preds = %2601
  %2624 = load float, ptr %56, align 4, !tbaa !15
  %2625 = fneg float %2624
  br label %2626

2626:                                             ; preds = %2623, %2621
  %2627 = phi float [ %2622, %2621 ], [ %2625, %2623 ]
  %2628 = fpext float %2627 to double
  %2629 = load ptr, ptr %28, align 8, !tbaa !5
  %2630 = load i64, ptr %69, align 8, !tbaa !9
  %2631 = add nsw i64 %2630, 1
  %2632 = load i64, ptr %69, align 8, !tbaa !9
  %2633 = load i64, ptr %42, align 8, !tbaa !9
  %2634 = mul nsw i64 %2632, %2633
  %2635 = add nsw i64 %2631, %2634
  %2636 = getelementptr inbounds %struct.complex, ptr %2629, i64 %2635
  %2637 = call double @r_imag(ptr noundef %2636)
  %2638 = fptrunc double %2637 to float
  store float %2638, ptr %57, align 4, !tbaa !15
  %2639 = load float, ptr %57, align 4, !tbaa !15
  %2640 = fcmp oge float %2639, 0.000000e+00
  br i1 %2640, label %2641, label %2643

2641:                                             ; preds = %2626
  %2642 = load float, ptr %57, align 4, !tbaa !15
  br label %2646

2643:                                             ; preds = %2626
  %2644 = load float, ptr %57, align 4, !tbaa !15
  %2645 = fneg float %2644
  br label %2646

2646:                                             ; preds = %2643, %2641
  %2647 = phi float [ %2642, %2641 ], [ %2645, %2643 ]
  %2648 = fpext float %2647 to double
  %2649 = fadd double %2628, %2648
  %2650 = fmul double %2613, %2649
  %2651 = fptrunc double %2650 to float
  store float %2651, ptr %89, align 4, !tbaa !15
  %2652 = load float, ptr %88, align 4, !tbaa !15
  %2653 = load float, ptr %89, align 4, !tbaa !15
  %2654 = fcmp oge float %2652, %2653
  br i1 %2654, label %2655, label %2657

2655:                                             ; preds = %2646
  %2656 = load float, ptr %88, align 4, !tbaa !15
  br label %2659

2657:                                             ; preds = %2646
  %2658 = load float, ptr %89, align 4, !tbaa !15
  br label %2659

2659:                                             ; preds = %2657, %2655
  %2660 = phi float [ %2656, %2655 ], [ %2658, %2657 ]
  %2661 = fpext float %2660 to double
  %2662 = fptrunc double %2661 to float
  store float %2662, ptr %98, align 4, !tbaa !15
  %2663 = load float, ptr %98, align 4, !tbaa !15
  %2664 = fcmp olt float %2663, 1.000000e+00
  br i1 %2664, label %2665, label %2675

2665:                                             ; preds = %2659
  %2666 = load float, ptr %98, align 4, !tbaa !15
  %2667 = fcmp une float %2666, 0.000000e+00
  br i1 %2667, label %2668, label %2675

2668:                                             ; preds = %2665
  %2669 = load float, ptr %98, align 4, !tbaa !15
  %2670 = load float, ptr %88, align 4, !tbaa !15
  %2671 = fdiv float %2670, %2669
  store float %2671, ptr %88, align 4, !tbaa !15
  %2672 = load float, ptr %98, align 4, !tbaa !15
  %2673 = load float, ptr %89, align 4, !tbaa !15
  %2674 = fdiv float %2673, %2672
  store float %2674, ptr %89, align 4, !tbaa !15
  br label %2675

2675:                                             ; preds = %2668, %2665, %2659
  %2676 = load i64, ptr %69, align 8, !tbaa !9
  %2677 = load i64, ptr %69, align 8, !tbaa !9
  %2678 = sub nsw i64 %2677, 1
  %2679 = load i64, ptr %42, align 8, !tbaa !9
  %2680 = mul nsw i64 %2678, %2679
  %2681 = add nsw i64 %2676, %2680
  store i64 %2681, ptr %52, align 8, !tbaa !9
  %2682 = load ptr, ptr %28, align 8, !tbaa !5
  %2683 = load i64, ptr %52, align 8, !tbaa !9
  %2684 = getelementptr inbounds %struct.complex, ptr %2682, i64 %2683
  %2685 = getelementptr inbounds %struct.complex, ptr %2684, i32 0, i32 0
  %2686 = load float, ptr %2685, align 4, !tbaa !11
  store float %2686, ptr %56, align 4, !tbaa !15
  %2687 = load float, ptr %56, align 4, !tbaa !15
  %2688 = fcmp oge float %2687, 0.000000e+00
  br i1 %2688, label %2689, label %2691

2689:                                             ; preds = %2675
  %2690 = load float, ptr %56, align 4, !tbaa !15
  br label %2694

2691:                                             ; preds = %2675
  %2692 = load float, ptr %56, align 4, !tbaa !15
  %2693 = fneg float %2692
  br label %2694

2694:                                             ; preds = %2691, %2689
  %2695 = phi float [ %2690, %2689 ], [ %2693, %2691 ]
  %2696 = fpext float %2695 to double
  %2697 = load ptr, ptr %28, align 8, !tbaa !5
  %2698 = load i64, ptr %69, align 8, !tbaa !9
  %2699 = load i64, ptr %69, align 8, !tbaa !9
  %2700 = sub nsw i64 %2699, 1
  %2701 = load i64, ptr %42, align 8, !tbaa !9
  %2702 = mul nsw i64 %2700, %2701
  %2703 = add nsw i64 %2698, %2702
  %2704 = getelementptr inbounds %struct.complex, ptr %2697, i64 %2703
  %2705 = call double @r_imag(ptr noundef %2704)
  %2706 = fptrunc double %2705 to float
  store float %2706, ptr %57, align 4, !tbaa !15
  %2707 = load float, ptr %57, align 4, !tbaa !15
  %2708 = fcmp oge float %2707, 0.000000e+00
  br i1 %2708, label %2709, label %2711

2709:                                             ; preds = %2694
  %2710 = load float, ptr %57, align 4, !tbaa !15
  br label %2714

2711:                                             ; preds = %2694
  %2712 = load float, ptr %57, align 4, !tbaa !15
  %2713 = fneg float %2712
  br label %2714

2714:                                             ; preds = %2711, %2709
  %2715 = phi float [ %2710, %2709 ], [ %2713, %2711 ]
  %2716 = fpext float %2715 to double
  %2717 = fadd double %2696, %2716
  %2718 = load float, ptr %89, align 4, !tbaa !15
  %2719 = fpext float %2718 to double
  %2720 = fmul double %2717, %2719
  %2721 = load float, ptr %88, align 4, !tbaa !15
  %2722 = load float, ptr %86, align 4, !tbaa !15
  %2723 = fmul float %2721, %2722
  %2724 = fpext float %2723 to double
  %2725 = fcmp ole double %2720, %2724
  br i1 %2725, label %2726, label %2727

2726:                                             ; preds = %2714
  br label %2816

2727:                                             ; preds = %2714
  br label %2728

2728:                                             ; preds = %2727
  %2729 = load i64, ptr %69, align 8, !tbaa !9
  %2730 = add nsw i64 %2729, -1
  store i64 %2730, ptr %69, align 8, !tbaa !9
  br label %2491, !llvm.loop !21

2731:                                             ; preds = %2491
  %2732 = load i64, ptr %114, align 8, !tbaa !9
  store i64 %2732, ptr %116, align 8, !tbaa !9
  %2733 = load i64, ptr %114, align 8, !tbaa !9
  %2734 = load i64, ptr %114, align 8, !tbaa !9
  %2735 = load i64, ptr %42, align 8, !tbaa !9
  %2736 = mul nsw i64 %2734, %2735
  %2737 = add nsw i64 %2733, %2736
  store i64 %2737, ptr %51, align 8, !tbaa !9
  %2738 = load float, ptr %102, align 4, !tbaa !15
  %2739 = load ptr, ptr %28, align 8, !tbaa !5
  %2740 = load i64, ptr %51, align 8, !tbaa !9
  %2741 = getelementptr inbounds %struct.complex, ptr %2739, i64 %2740
  %2742 = getelementptr inbounds %struct.complex, ptr %2741, i32 0, i32 0
  %2743 = load float, ptr %2742, align 4, !tbaa !11
  %2744 = fmul float %2738, %2743
  %2745 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2744, ptr %2745, align 4, !tbaa !11
  %2746 = load float, ptr %102, align 4, !tbaa !15
  %2747 = load ptr, ptr %28, align 8, !tbaa !5
  %2748 = load i64, ptr %51, align 8, !tbaa !9
  %2749 = getelementptr inbounds %struct.complex, ptr %2747, i64 %2748
  %2750 = getelementptr inbounds %struct.complex, ptr %2749, i32 0, i32 1
  %2751 = load float, ptr %2750, align 4, !tbaa !14
  %2752 = fmul float %2746, %2751
  %2753 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2752, ptr %2753, align 4, !tbaa !14
  %2754 = load i64, ptr %114, align 8, !tbaa !9
  %2755 = load i64, ptr %114, align 8, !tbaa !9
  %2756 = load i64, ptr %46, align 8, !tbaa !9
  %2757 = mul nsw i64 %2755, %2756
  %2758 = add nsw i64 %2754, %2757
  store i64 %2758, ptr %52, align 8, !tbaa !9
  %2759 = load float, ptr %103, align 4, !tbaa !15
  %2760 = load ptr, ptr %30, align 8, !tbaa !5
  %2761 = load i64, ptr %52, align 8, !tbaa !9
  %2762 = getelementptr inbounds %struct.complex, ptr %2760, i64 %2761
  %2763 = getelementptr inbounds %struct.complex, ptr %2762, i32 0, i32 0
  %2764 = load float, ptr %2763, align 4, !tbaa !11
  %2765 = fmul float %2759, %2764
  %2766 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %2765, ptr %2766, align 4, !tbaa !11
  %2767 = load float, ptr %103, align 4, !tbaa !15
  %2768 = load ptr, ptr %30, align 8, !tbaa !5
  %2769 = load i64, ptr %52, align 8, !tbaa !9
  %2770 = getelementptr inbounds %struct.complex, ptr %2768, i64 %2769
  %2771 = getelementptr inbounds %struct.complex, ptr %2770, i32 0, i32 1
  %2772 = load float, ptr %2771, align 4, !tbaa !14
  %2773 = fmul float %2767, %2772
  %2774 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float %2773, ptr %2774, align 4, !tbaa !14
  %2775 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 0
  %2776 = load float, ptr %2775, align 4, !tbaa !11
  %2777 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2778 = load float, ptr %2777, align 4, !tbaa !11
  %2779 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 1
  %2780 = load float, ptr %2779, align 4, !tbaa !14
  %2781 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2782 = load float, ptr %2781, align 4, !tbaa !14
  %2783 = fmul float %2780, %2782
  %2784 = fneg float %2783
  %2785 = call float @llvm.fmuladd.f32(float %2776, float %2778, float %2784)
  %2786 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %2785, ptr %2786, align 4, !tbaa !11
  %2787 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 0
  %2788 = load float, ptr %2787, align 4, !tbaa !11
  %2789 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2790 = load float, ptr %2789, align 4, !tbaa !14
  %2791 = getelementptr inbounds %struct.complex, ptr %97, i32 0, i32 1
  %2792 = load float, ptr %2791, align 4, !tbaa !14
  %2793 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2794 = load float, ptr %2793, align 4, !tbaa !11
  %2795 = fmul float %2792, %2794
  %2796 = call float @llvm.fmuladd.f32(float %2788, float %2790, float %2795)
  %2797 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %2796, ptr %2797, align 4, !tbaa !14
  %2798 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %2799 = load float, ptr %2798, align 4, !tbaa !11
  %2800 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %2801 = load float, ptr %2800, align 4, !tbaa !11
  %2802 = fsub float %2799, %2801
  %2803 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %2802, ptr %2803, align 4, !tbaa !11
  %2804 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %2805 = load float, ptr %2804, align 4, !tbaa !14
  %2806 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %2807 = load float, ptr %2806, align 4, !tbaa !14
  %2808 = fsub float %2805, %2807
  %2809 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %2808, ptr %2809, align 4, !tbaa !14
  %2810 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2811 = load float, ptr %2810, align 4, !tbaa !11
  %2812 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %2811, ptr %2812, align 4, !tbaa !11
  %2813 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2814 = load float, ptr %2813, align 4, !tbaa !14
  %2815 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %2814, ptr %2815, align 4, !tbaa !14
  br label %2816

2816:                                             ; preds = %2731, %2726
  %2817 = load i64, ptr %116, align 8, !tbaa !9
  %2818 = add nsw i64 %2817, 1
  %2819 = load i64, ptr %116, align 8, !tbaa !9
  %2820 = load i64, ptr %42, align 8, !tbaa !9
  %2821 = mul nsw i64 %2819, %2820
  %2822 = add nsw i64 %2818, %2821
  store i64 %2822, ptr %51, align 8, !tbaa !9
  %2823 = load float, ptr %102, align 4, !tbaa !15
  %2824 = load ptr, ptr %28, align 8, !tbaa !5
  %2825 = load i64, ptr %51, align 8, !tbaa !9
  %2826 = getelementptr inbounds %struct.complex, ptr %2824, i64 %2825
  %2827 = getelementptr inbounds %struct.complex, ptr %2826, i32 0, i32 0
  %2828 = load float, ptr %2827, align 4, !tbaa !11
  %2829 = fmul float %2823, %2828
  %2830 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %2829, ptr %2830, align 4, !tbaa !11
  %2831 = load float, ptr %102, align 4, !tbaa !15
  %2832 = load ptr, ptr %28, align 8, !tbaa !5
  %2833 = load i64, ptr %51, align 8, !tbaa !9
  %2834 = getelementptr inbounds %struct.complex, ptr %2832, i64 %2833
  %2835 = getelementptr inbounds %struct.complex, ptr %2834, i32 0, i32 1
  %2836 = load float, ptr %2835, align 4, !tbaa !14
  %2837 = fmul float %2831, %2836
  %2838 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %2837, ptr %2838, align 4, !tbaa !14
  %2839 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2840 = load float, ptr %2839, align 4, !tbaa !11
  %2841 = getelementptr inbounds %struct.complex, ptr %99, i32 0, i32 0
  store float %2840, ptr %2841, align 4, !tbaa !11
  %2842 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2843 = load float, ptr %2842, align 4, !tbaa !14
  %2844 = getelementptr inbounds %struct.complex, ptr %99, i32 0, i32 1
  store float %2843, ptr %2844, align 4, !tbaa !14
  %2845 = call i32 @clartg_(ptr noundef %90, ptr noundef %99, ptr noundef %68, ptr noundef %70, ptr noundef %100)
  %2846 = load i64, ptr %92, align 8, !tbaa !9
  %2847 = sub nsw i64 %2846, 1
  store i64 %2847, ptr %51, align 8, !tbaa !9
  %2848 = load i64, ptr %116, align 8, !tbaa !9
  store i64 %2848, ptr %69, align 8, !tbaa !9
  br label %2849

2849:                                             ; preds = %4216, %2816
  %2850 = load i64, ptr %69, align 8, !tbaa !9
  %2851 = load i64, ptr %51, align 8, !tbaa !9
  %2852 = icmp sle i64 %2850, %2851
  br i1 %2852, label %2853, label %4219

2853:                                             ; preds = %2849
  %2854 = load i64, ptr %69, align 8, !tbaa !9
  %2855 = load i64, ptr %116, align 8, !tbaa !9
  %2856 = icmp sgt i64 %2854, %2855
  br i1 %2856, label %2857, label %2909

2857:                                             ; preds = %2853
  %2858 = load i64, ptr %69, align 8, !tbaa !9
  %2859 = load i64, ptr %69, align 8, !tbaa !9
  %2860 = sub nsw i64 %2859, 1
  %2861 = load i64, ptr %42, align 8, !tbaa !9
  %2862 = mul nsw i64 %2860, %2861
  %2863 = add nsw i64 %2858, %2862
  store i64 %2863, ptr %52, align 8, !tbaa !9
  %2864 = load ptr, ptr %28, align 8, !tbaa !5
  %2865 = load i64, ptr %52, align 8, !tbaa !9
  %2866 = getelementptr inbounds %struct.complex, ptr %2864, i64 %2865
  %2867 = getelementptr inbounds %struct.complex, ptr %2866, i32 0, i32 0
  %2868 = load float, ptr %2867, align 4, !tbaa !11
  %2869 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %2868, ptr %2869, align 4, !tbaa !11
  %2870 = load ptr, ptr %28, align 8, !tbaa !5
  %2871 = load i64, ptr %52, align 8, !tbaa !9
  %2872 = getelementptr inbounds %struct.complex, ptr %2870, i64 %2871
  %2873 = getelementptr inbounds %struct.complex, ptr %2872, i32 0, i32 1
  %2874 = load float, ptr %2873, align 4, !tbaa !14
  %2875 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %2874, ptr %2875, align 4, !tbaa !14
  %2876 = load ptr, ptr %28, align 8, !tbaa !5
  %2877 = load i64, ptr %69, align 8, !tbaa !9
  %2878 = add nsw i64 %2877, 1
  %2879 = load i64, ptr %69, align 8, !tbaa !9
  %2880 = sub nsw i64 %2879, 1
  %2881 = load i64, ptr %42, align 8, !tbaa !9
  %2882 = mul nsw i64 %2880, %2881
  %2883 = add nsw i64 %2878, %2882
  %2884 = getelementptr inbounds %struct.complex, ptr %2876, i64 %2883
  %2885 = load ptr, ptr %28, align 8, !tbaa !5
  %2886 = load i64, ptr %69, align 8, !tbaa !9
  %2887 = load i64, ptr %69, align 8, !tbaa !9
  %2888 = sub nsw i64 %2887, 1
  %2889 = load i64, ptr %42, align 8, !tbaa !9
  %2890 = mul nsw i64 %2888, %2889
  %2891 = add nsw i64 %2886, %2890
  %2892 = getelementptr inbounds %struct.complex, ptr %2885, i64 %2891
  %2893 = call i32 @clartg_(ptr noundef %90, ptr noundef %2884, ptr noundef %68, ptr noundef %70, ptr noundef %2892)
  %2894 = load i64, ptr %69, align 8, !tbaa !9
  %2895 = add nsw i64 %2894, 1
  %2896 = load i64, ptr %69, align 8, !tbaa !9
  %2897 = sub nsw i64 %2896, 1
  %2898 = load i64, ptr %42, align 8, !tbaa !9
  %2899 = mul nsw i64 %2897, %2898
  %2900 = add nsw i64 %2895, %2899
  store i64 %2900, ptr %52, align 8, !tbaa !9
  %2901 = load ptr, ptr %28, align 8, !tbaa !5
  %2902 = load i64, ptr %52, align 8, !tbaa !9
  %2903 = getelementptr inbounds %struct.complex, ptr %2901, i64 %2902
  %2904 = getelementptr inbounds %struct.complex, ptr %2903, i32 0, i32 0
  store float 0.000000e+00, ptr %2904, align 4, !tbaa !11
  %2905 = load ptr, ptr %28, align 8, !tbaa !5
  %2906 = load i64, ptr %52, align 8, !tbaa !9
  %2907 = getelementptr inbounds %struct.complex, ptr %2905, i64 %2906
  %2908 = getelementptr inbounds %struct.complex, ptr %2907, i32 0, i32 1
  store float 0.000000e+00, ptr %2908, align 4, !tbaa !14
  br label %2909

2909:                                             ; preds = %2857, %2853
  %2910 = load i64, ptr %109, align 8, !tbaa !9
  store i64 %2910, ptr %52, align 8, !tbaa !9
  %2911 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %2911, ptr %72, align 8, !tbaa !9
  br label %2912

2912:                                             ; preds = %3311, %2909
  %2913 = load i64, ptr %72, align 8, !tbaa !9
  %2914 = load i64, ptr %52, align 8, !tbaa !9
  %2915 = icmp sle i64 %2913, %2914
  br i1 %2915, label %2916, label %3314

2916:                                             ; preds = %2912
  %2917 = load i64, ptr %69, align 8, !tbaa !9
  %2918 = load i64, ptr %72, align 8, !tbaa !9
  %2919 = load i64, ptr %42, align 8, !tbaa !9
  %2920 = mul nsw i64 %2918, %2919
  %2921 = add nsw i64 %2917, %2920
  store i64 %2921, ptr %53, align 8, !tbaa !9
  %2922 = load float, ptr %68, align 4, !tbaa !15
  %2923 = load ptr, ptr %28, align 8, !tbaa !5
  %2924 = load i64, ptr %53, align 8, !tbaa !9
  %2925 = getelementptr inbounds %struct.complex, ptr %2923, i64 %2924
  %2926 = getelementptr inbounds %struct.complex, ptr %2925, i32 0, i32 0
  %2927 = load float, ptr %2926, align 4, !tbaa !11
  %2928 = fmul float %2922, %2927
  %2929 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %2928, ptr %2929, align 4, !tbaa !11
  %2930 = load float, ptr %68, align 4, !tbaa !15
  %2931 = load ptr, ptr %28, align 8, !tbaa !5
  %2932 = load i64, ptr %53, align 8, !tbaa !9
  %2933 = getelementptr inbounds %struct.complex, ptr %2931, i64 %2932
  %2934 = getelementptr inbounds %struct.complex, ptr %2933, i32 0, i32 1
  %2935 = load float, ptr %2934, align 4, !tbaa !14
  %2936 = fmul float %2930, %2935
  %2937 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %2936, ptr %2937, align 4, !tbaa !14
  %2938 = load i64, ptr %69, align 8, !tbaa !9
  %2939 = add nsw i64 %2938, 1
  %2940 = load i64, ptr %72, align 8, !tbaa !9
  %2941 = load i64, ptr %42, align 8, !tbaa !9
  %2942 = mul nsw i64 %2940, %2941
  %2943 = add nsw i64 %2939, %2942
  store i64 %2943, ptr %54, align 8, !tbaa !9
  %2944 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %2945 = load float, ptr %2944, align 4, !tbaa !11
  %2946 = load ptr, ptr %28, align 8, !tbaa !5
  %2947 = load i64, ptr %54, align 8, !tbaa !9
  %2948 = getelementptr inbounds %struct.complex, ptr %2946, i64 %2947
  %2949 = getelementptr inbounds %struct.complex, ptr %2948, i32 0, i32 0
  %2950 = load float, ptr %2949, align 4, !tbaa !11
  %2951 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %2952 = load float, ptr %2951, align 4, !tbaa !14
  %2953 = load ptr, ptr %28, align 8, !tbaa !5
  %2954 = load i64, ptr %54, align 8, !tbaa !9
  %2955 = getelementptr inbounds %struct.complex, ptr %2953, i64 %2954
  %2956 = getelementptr inbounds %struct.complex, ptr %2955, i32 0, i32 1
  %2957 = load float, ptr %2956, align 4, !tbaa !14
  %2958 = fmul float %2952, %2957
  %2959 = fneg float %2958
  %2960 = call float @llvm.fmuladd.f32(float %2945, float %2950, float %2959)
  %2961 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %2960, ptr %2961, align 4, !tbaa !11
  %2962 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %2963 = load float, ptr %2962, align 4, !tbaa !11
  %2964 = load ptr, ptr %28, align 8, !tbaa !5
  %2965 = load i64, ptr %54, align 8, !tbaa !9
  %2966 = getelementptr inbounds %struct.complex, ptr %2964, i64 %2965
  %2967 = getelementptr inbounds %struct.complex, ptr %2966, i32 0, i32 1
  %2968 = load float, ptr %2967, align 4, !tbaa !14
  %2969 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %2970 = load float, ptr %2969, align 4, !tbaa !14
  %2971 = load ptr, ptr %28, align 8, !tbaa !5
  %2972 = load i64, ptr %54, align 8, !tbaa !9
  %2973 = getelementptr inbounds %struct.complex, ptr %2971, i64 %2972
  %2974 = getelementptr inbounds %struct.complex, ptr %2973, i32 0, i32 0
  %2975 = load float, ptr %2974, align 4, !tbaa !11
  %2976 = fmul float %2970, %2975
  %2977 = call float @llvm.fmuladd.f32(float %2963, float %2968, float %2976)
  %2978 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %2977, ptr %2978, align 4, !tbaa !14
  %2979 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %2980 = load float, ptr %2979, align 4, !tbaa !11
  %2981 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %2982 = load float, ptr %2981, align 4, !tbaa !11
  %2983 = fadd float %2980, %2982
  %2984 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %2983, ptr %2984, align 4, !tbaa !11
  %2985 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %2986 = load float, ptr %2985, align 4, !tbaa !14
  %2987 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %2988 = load float, ptr %2987, align 4, !tbaa !14
  %2989 = fadd float %2986, %2988
  %2990 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %2989, ptr %2990, align 4, !tbaa !14
  %2991 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %2992 = load float, ptr %2991, align 4, !tbaa !11
  %2993 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %2992, ptr %2993, align 4, !tbaa !11
  %2994 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %2995 = load float, ptr %2994, align 4, !tbaa !14
  %2996 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %2995, ptr %2996, align 4, !tbaa !14
  %2997 = load i64, ptr %69, align 8, !tbaa !9
  %2998 = add nsw i64 %2997, 1
  %2999 = load i64, ptr %72, align 8, !tbaa !9
  %3000 = load i64, ptr %42, align 8, !tbaa !9
  %3001 = mul nsw i64 %2999, %3000
  %3002 = add nsw i64 %2998, %3001
  store i64 %3002, ptr %53, align 8, !tbaa !9
  call void @r_cnjg(ptr noundef %65, ptr noundef %70)
  %3003 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %3004 = load float, ptr %3003, align 4, !tbaa !11
  %3005 = fneg float %3004
  %3006 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %3005, ptr %3006, align 4, !tbaa !11
  %3007 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %3008 = load float, ptr %3007, align 4, !tbaa !14
  %3009 = fneg float %3008
  %3010 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %3009, ptr %3010, align 4, !tbaa !14
  %3011 = load i64, ptr %69, align 8, !tbaa !9
  %3012 = load i64, ptr %72, align 8, !tbaa !9
  %3013 = load i64, ptr %42, align 8, !tbaa !9
  %3014 = mul nsw i64 %3012, %3013
  %3015 = add nsw i64 %3011, %3014
  store i64 %3015, ptr %54, align 8, !tbaa !9
  %3016 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3017 = load float, ptr %3016, align 4, !tbaa !11
  %3018 = load ptr, ptr %28, align 8, !tbaa !5
  %3019 = load i64, ptr %54, align 8, !tbaa !9
  %3020 = getelementptr inbounds %struct.complex, ptr %3018, i64 %3019
  %3021 = getelementptr inbounds %struct.complex, ptr %3020, i32 0, i32 0
  %3022 = load float, ptr %3021, align 4, !tbaa !11
  %3023 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3024 = load float, ptr %3023, align 4, !tbaa !14
  %3025 = load ptr, ptr %28, align 8, !tbaa !5
  %3026 = load i64, ptr %54, align 8, !tbaa !9
  %3027 = getelementptr inbounds %struct.complex, ptr %3025, i64 %3026
  %3028 = getelementptr inbounds %struct.complex, ptr %3027, i32 0, i32 1
  %3029 = load float, ptr %3028, align 4, !tbaa !14
  %3030 = fmul float %3024, %3029
  %3031 = fneg float %3030
  %3032 = call float @llvm.fmuladd.f32(float %3017, float %3022, float %3031)
  %3033 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %3032, ptr %3033, align 4, !tbaa !11
  %3034 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3035 = load float, ptr %3034, align 4, !tbaa !11
  %3036 = load ptr, ptr %28, align 8, !tbaa !5
  %3037 = load i64, ptr %54, align 8, !tbaa !9
  %3038 = getelementptr inbounds %struct.complex, ptr %3036, i64 %3037
  %3039 = getelementptr inbounds %struct.complex, ptr %3038, i32 0, i32 1
  %3040 = load float, ptr %3039, align 4, !tbaa !14
  %3041 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3042 = load float, ptr %3041, align 4, !tbaa !14
  %3043 = load ptr, ptr %28, align 8, !tbaa !5
  %3044 = load i64, ptr %54, align 8, !tbaa !9
  %3045 = getelementptr inbounds %struct.complex, ptr %3043, i64 %3044
  %3046 = getelementptr inbounds %struct.complex, ptr %3045, i32 0, i32 0
  %3047 = load float, ptr %3046, align 4, !tbaa !11
  %3048 = fmul float %3042, %3047
  %3049 = call float @llvm.fmuladd.f32(float %3035, float %3040, float %3048)
  %3050 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %3049, ptr %3050, align 4, !tbaa !14
  %3051 = load i64, ptr %69, align 8, !tbaa !9
  %3052 = add nsw i64 %3051, 1
  %3053 = load i64, ptr %72, align 8, !tbaa !9
  %3054 = load i64, ptr %42, align 8, !tbaa !9
  %3055 = mul nsw i64 %3053, %3054
  %3056 = add nsw i64 %3052, %3055
  store i64 %3056, ptr %55, align 8, !tbaa !9
  %3057 = load float, ptr %68, align 4, !tbaa !15
  %3058 = load ptr, ptr %28, align 8, !tbaa !5
  %3059 = load i64, ptr %55, align 8, !tbaa !9
  %3060 = getelementptr inbounds %struct.complex, ptr %3058, i64 %3059
  %3061 = getelementptr inbounds %struct.complex, ptr %3060, i32 0, i32 0
  %3062 = load float, ptr %3061, align 4, !tbaa !11
  %3063 = fmul float %3057, %3062
  %3064 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  store float %3063, ptr %3064, align 4, !tbaa !11
  %3065 = load float, ptr %68, align 4, !tbaa !15
  %3066 = load ptr, ptr %28, align 8, !tbaa !5
  %3067 = load i64, ptr %55, align 8, !tbaa !9
  %3068 = getelementptr inbounds %struct.complex, ptr %3066, i64 %3067
  %3069 = getelementptr inbounds %struct.complex, ptr %3068, i32 0, i32 1
  %3070 = load float, ptr %3069, align 4, !tbaa !14
  %3071 = fmul float %3065, %3070
  %3072 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  store float %3071, ptr %3072, align 4, !tbaa !14
  %3073 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %3074 = load float, ptr %3073, align 4, !tbaa !11
  %3075 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %3076 = load float, ptr %3075, align 4, !tbaa !11
  %3077 = fadd float %3074, %3076
  %3078 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %3077, ptr %3078, align 4, !tbaa !11
  %3079 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %3080 = load float, ptr %3079, align 4, !tbaa !14
  %3081 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %3082 = load float, ptr %3081, align 4, !tbaa !14
  %3083 = fadd float %3080, %3082
  %3084 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %3083, ptr %3084, align 4, !tbaa !14
  %3085 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %3086 = load float, ptr %3085, align 4, !tbaa !11
  %3087 = load ptr, ptr %28, align 8, !tbaa !5
  %3088 = load i64, ptr %53, align 8, !tbaa !9
  %3089 = getelementptr inbounds %struct.complex, ptr %3087, i64 %3088
  %3090 = getelementptr inbounds %struct.complex, ptr %3089, i32 0, i32 0
  store float %3086, ptr %3090, align 4, !tbaa !11
  %3091 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %3092 = load float, ptr %3091, align 4, !tbaa !14
  %3093 = load ptr, ptr %28, align 8, !tbaa !5
  %3094 = load i64, ptr %53, align 8, !tbaa !9
  %3095 = getelementptr inbounds %struct.complex, ptr %3093, i64 %3094
  %3096 = getelementptr inbounds %struct.complex, ptr %3095, i32 0, i32 1
  store float %3092, ptr %3096, align 4, !tbaa !14
  %3097 = load i64, ptr %69, align 8, !tbaa !9
  %3098 = load i64, ptr %72, align 8, !tbaa !9
  %3099 = load i64, ptr %42, align 8, !tbaa !9
  %3100 = mul nsw i64 %3098, %3099
  %3101 = add nsw i64 %3097, %3100
  store i64 %3101, ptr %53, align 8, !tbaa !9
  %3102 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  %3103 = load float, ptr %3102, align 4, !tbaa !11
  %3104 = load ptr, ptr %28, align 8, !tbaa !5
  %3105 = load i64, ptr %53, align 8, !tbaa !9
  %3106 = getelementptr inbounds %struct.complex, ptr %3104, i64 %3105
  %3107 = getelementptr inbounds %struct.complex, ptr %3106, i32 0, i32 0
  store float %3103, ptr %3107, align 4, !tbaa !11
  %3108 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  %3109 = load float, ptr %3108, align 4, !tbaa !14
  %3110 = load ptr, ptr %28, align 8, !tbaa !5
  %3111 = load i64, ptr %53, align 8, !tbaa !9
  %3112 = getelementptr inbounds %struct.complex, ptr %3110, i64 %3111
  %3113 = getelementptr inbounds %struct.complex, ptr %3112, i32 0, i32 1
  store float %3109, ptr %3113, align 4, !tbaa !14
  %3114 = load i64, ptr %69, align 8, !tbaa !9
  %3115 = load i64, ptr %72, align 8, !tbaa !9
  %3116 = load i64, ptr %46, align 8, !tbaa !9
  %3117 = mul nsw i64 %3115, %3116
  %3118 = add nsw i64 %3114, %3117
  store i64 %3118, ptr %53, align 8, !tbaa !9
  %3119 = load float, ptr %68, align 4, !tbaa !15
  %3120 = load ptr, ptr %30, align 8, !tbaa !5
  %3121 = load i64, ptr %53, align 8, !tbaa !9
  %3122 = getelementptr inbounds %struct.complex, ptr %3120, i64 %3121
  %3123 = getelementptr inbounds %struct.complex, ptr %3122, i32 0, i32 0
  %3124 = load float, ptr %3123, align 4, !tbaa !11
  %3125 = fmul float %3119, %3124
  %3126 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %3125, ptr %3126, align 4, !tbaa !11
  %3127 = load float, ptr %68, align 4, !tbaa !15
  %3128 = load ptr, ptr %30, align 8, !tbaa !5
  %3129 = load i64, ptr %53, align 8, !tbaa !9
  %3130 = getelementptr inbounds %struct.complex, ptr %3128, i64 %3129
  %3131 = getelementptr inbounds %struct.complex, ptr %3130, i32 0, i32 1
  %3132 = load float, ptr %3131, align 4, !tbaa !14
  %3133 = fmul float %3127, %3132
  %3134 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %3133, ptr %3134, align 4, !tbaa !14
  %3135 = load i64, ptr %69, align 8, !tbaa !9
  %3136 = add nsw i64 %3135, 1
  %3137 = load i64, ptr %72, align 8, !tbaa !9
  %3138 = load i64, ptr %46, align 8, !tbaa !9
  %3139 = mul nsw i64 %3137, %3138
  %3140 = add nsw i64 %3136, %3139
  store i64 %3140, ptr %54, align 8, !tbaa !9
  %3141 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %3142 = load float, ptr %3141, align 4, !tbaa !11
  %3143 = load ptr, ptr %30, align 8, !tbaa !5
  %3144 = load i64, ptr %54, align 8, !tbaa !9
  %3145 = getelementptr inbounds %struct.complex, ptr %3143, i64 %3144
  %3146 = getelementptr inbounds %struct.complex, ptr %3145, i32 0, i32 0
  %3147 = load float, ptr %3146, align 4, !tbaa !11
  %3148 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %3149 = load float, ptr %3148, align 4, !tbaa !14
  %3150 = load ptr, ptr %30, align 8, !tbaa !5
  %3151 = load i64, ptr %54, align 8, !tbaa !9
  %3152 = getelementptr inbounds %struct.complex, ptr %3150, i64 %3151
  %3153 = getelementptr inbounds %struct.complex, ptr %3152, i32 0, i32 1
  %3154 = load float, ptr %3153, align 4, !tbaa !14
  %3155 = fmul float %3149, %3154
  %3156 = fneg float %3155
  %3157 = call float @llvm.fmuladd.f32(float %3142, float %3147, float %3156)
  %3158 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %3157, ptr %3158, align 4, !tbaa !11
  %3159 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %3160 = load float, ptr %3159, align 4, !tbaa !11
  %3161 = load ptr, ptr %30, align 8, !tbaa !5
  %3162 = load i64, ptr %54, align 8, !tbaa !9
  %3163 = getelementptr inbounds %struct.complex, ptr %3161, i64 %3162
  %3164 = getelementptr inbounds %struct.complex, ptr %3163, i32 0, i32 1
  %3165 = load float, ptr %3164, align 4, !tbaa !14
  %3166 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %3167 = load float, ptr %3166, align 4, !tbaa !14
  %3168 = load ptr, ptr %30, align 8, !tbaa !5
  %3169 = load i64, ptr %54, align 8, !tbaa !9
  %3170 = getelementptr inbounds %struct.complex, ptr %3168, i64 %3169
  %3171 = getelementptr inbounds %struct.complex, ptr %3170, i32 0, i32 0
  %3172 = load float, ptr %3171, align 4, !tbaa !11
  %3173 = fmul float %3167, %3172
  %3174 = call float @llvm.fmuladd.f32(float %3160, float %3165, float %3173)
  %3175 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %3174, ptr %3175, align 4, !tbaa !14
  %3176 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %3177 = load float, ptr %3176, align 4, !tbaa !11
  %3178 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3179 = load float, ptr %3178, align 4, !tbaa !11
  %3180 = fadd float %3177, %3179
  %3181 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %3180, ptr %3181, align 4, !tbaa !11
  %3182 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %3183 = load float, ptr %3182, align 4, !tbaa !14
  %3184 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3185 = load float, ptr %3184, align 4, !tbaa !14
  %3186 = fadd float %3183, %3185
  %3187 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %3186, ptr %3187, align 4, !tbaa !14
  %3188 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %3189 = load float, ptr %3188, align 4, !tbaa !11
  %3190 = getelementptr inbounds %struct.complex, ptr %99, i32 0, i32 0
  store float %3189, ptr %3190, align 4, !tbaa !11
  %3191 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %3192 = load float, ptr %3191, align 4, !tbaa !14
  %3193 = getelementptr inbounds %struct.complex, ptr %99, i32 0, i32 1
  store float %3192, ptr %3193, align 4, !tbaa !14
  %3194 = load i64, ptr %69, align 8, !tbaa !9
  %3195 = add nsw i64 %3194, 1
  %3196 = load i64, ptr %72, align 8, !tbaa !9
  %3197 = load i64, ptr %46, align 8, !tbaa !9
  %3198 = mul nsw i64 %3196, %3197
  %3199 = add nsw i64 %3195, %3198
  store i64 %3199, ptr %53, align 8, !tbaa !9
  call void @r_cnjg(ptr noundef %65, ptr noundef %70)
  %3200 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %3201 = load float, ptr %3200, align 4, !tbaa !11
  %3202 = fneg float %3201
  %3203 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %3202, ptr %3203, align 4, !tbaa !11
  %3204 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %3205 = load float, ptr %3204, align 4, !tbaa !14
  %3206 = fneg float %3205
  %3207 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %3206, ptr %3207, align 4, !tbaa !14
  %3208 = load i64, ptr %69, align 8, !tbaa !9
  %3209 = load i64, ptr %72, align 8, !tbaa !9
  %3210 = load i64, ptr %46, align 8, !tbaa !9
  %3211 = mul nsw i64 %3209, %3210
  %3212 = add nsw i64 %3208, %3211
  store i64 %3212, ptr %54, align 8, !tbaa !9
  %3213 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3214 = load float, ptr %3213, align 4, !tbaa !11
  %3215 = load ptr, ptr %30, align 8, !tbaa !5
  %3216 = load i64, ptr %54, align 8, !tbaa !9
  %3217 = getelementptr inbounds %struct.complex, ptr %3215, i64 %3216
  %3218 = getelementptr inbounds %struct.complex, ptr %3217, i32 0, i32 0
  %3219 = load float, ptr %3218, align 4, !tbaa !11
  %3220 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3221 = load float, ptr %3220, align 4, !tbaa !14
  %3222 = load ptr, ptr %30, align 8, !tbaa !5
  %3223 = load i64, ptr %54, align 8, !tbaa !9
  %3224 = getelementptr inbounds %struct.complex, ptr %3222, i64 %3223
  %3225 = getelementptr inbounds %struct.complex, ptr %3224, i32 0, i32 1
  %3226 = load float, ptr %3225, align 4, !tbaa !14
  %3227 = fmul float %3221, %3226
  %3228 = fneg float %3227
  %3229 = call float @llvm.fmuladd.f32(float %3214, float %3219, float %3228)
  %3230 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %3229, ptr %3230, align 4, !tbaa !11
  %3231 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3232 = load float, ptr %3231, align 4, !tbaa !11
  %3233 = load ptr, ptr %30, align 8, !tbaa !5
  %3234 = load i64, ptr %54, align 8, !tbaa !9
  %3235 = getelementptr inbounds %struct.complex, ptr %3233, i64 %3234
  %3236 = getelementptr inbounds %struct.complex, ptr %3235, i32 0, i32 1
  %3237 = load float, ptr %3236, align 4, !tbaa !14
  %3238 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3239 = load float, ptr %3238, align 4, !tbaa !14
  %3240 = load ptr, ptr %30, align 8, !tbaa !5
  %3241 = load i64, ptr %54, align 8, !tbaa !9
  %3242 = getelementptr inbounds %struct.complex, ptr %3240, i64 %3241
  %3243 = getelementptr inbounds %struct.complex, ptr %3242, i32 0, i32 0
  %3244 = load float, ptr %3243, align 4, !tbaa !11
  %3245 = fmul float %3239, %3244
  %3246 = call float @llvm.fmuladd.f32(float %3232, float %3237, float %3245)
  %3247 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %3246, ptr %3247, align 4, !tbaa !14
  %3248 = load i64, ptr %69, align 8, !tbaa !9
  %3249 = add nsw i64 %3248, 1
  %3250 = load i64, ptr %72, align 8, !tbaa !9
  %3251 = load i64, ptr %46, align 8, !tbaa !9
  %3252 = mul nsw i64 %3250, %3251
  %3253 = add nsw i64 %3249, %3252
  store i64 %3253, ptr %55, align 8, !tbaa !9
  %3254 = load float, ptr %68, align 4, !tbaa !15
  %3255 = load ptr, ptr %30, align 8, !tbaa !5
  %3256 = load i64, ptr %55, align 8, !tbaa !9
  %3257 = getelementptr inbounds %struct.complex, ptr %3255, i64 %3256
  %3258 = getelementptr inbounds %struct.complex, ptr %3257, i32 0, i32 0
  %3259 = load float, ptr %3258, align 4, !tbaa !11
  %3260 = fmul float %3254, %3259
  %3261 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  store float %3260, ptr %3261, align 4, !tbaa !11
  %3262 = load float, ptr %68, align 4, !tbaa !15
  %3263 = load ptr, ptr %30, align 8, !tbaa !5
  %3264 = load i64, ptr %55, align 8, !tbaa !9
  %3265 = getelementptr inbounds %struct.complex, ptr %3263, i64 %3264
  %3266 = getelementptr inbounds %struct.complex, ptr %3265, i32 0, i32 1
  %3267 = load float, ptr %3266, align 4, !tbaa !14
  %3268 = fmul float %3262, %3267
  %3269 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  store float %3268, ptr %3269, align 4, !tbaa !14
  %3270 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %3271 = load float, ptr %3270, align 4, !tbaa !11
  %3272 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %3273 = load float, ptr %3272, align 4, !tbaa !11
  %3274 = fadd float %3271, %3273
  %3275 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %3274, ptr %3275, align 4, !tbaa !11
  %3276 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %3277 = load float, ptr %3276, align 4, !tbaa !14
  %3278 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %3279 = load float, ptr %3278, align 4, !tbaa !14
  %3280 = fadd float %3277, %3279
  %3281 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %3280, ptr %3281, align 4, !tbaa !14
  %3282 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %3283 = load float, ptr %3282, align 4, !tbaa !11
  %3284 = load ptr, ptr %30, align 8, !tbaa !5
  %3285 = load i64, ptr %53, align 8, !tbaa !9
  %3286 = getelementptr inbounds %struct.complex, ptr %3284, i64 %3285
  %3287 = getelementptr inbounds %struct.complex, ptr %3286, i32 0, i32 0
  store float %3283, ptr %3287, align 4, !tbaa !11
  %3288 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %3289 = load float, ptr %3288, align 4, !tbaa !14
  %3290 = load ptr, ptr %30, align 8, !tbaa !5
  %3291 = load i64, ptr %53, align 8, !tbaa !9
  %3292 = getelementptr inbounds %struct.complex, ptr %3290, i64 %3291
  %3293 = getelementptr inbounds %struct.complex, ptr %3292, i32 0, i32 1
  store float %3289, ptr %3293, align 4, !tbaa !14
  %3294 = load i64, ptr %69, align 8, !tbaa !9
  %3295 = load i64, ptr %72, align 8, !tbaa !9
  %3296 = load i64, ptr %46, align 8, !tbaa !9
  %3297 = mul nsw i64 %3295, %3296
  %3298 = add nsw i64 %3294, %3297
  store i64 %3298, ptr %53, align 8, !tbaa !9
  %3299 = getelementptr inbounds %struct.complex, ptr %99, i32 0, i32 0
  %3300 = load float, ptr %3299, align 4, !tbaa !11
  %3301 = load ptr, ptr %30, align 8, !tbaa !5
  %3302 = load i64, ptr %53, align 8, !tbaa !9
  %3303 = getelementptr inbounds %struct.complex, ptr %3301, i64 %3302
  %3304 = getelementptr inbounds %struct.complex, ptr %3303, i32 0, i32 0
  store float %3300, ptr %3304, align 4, !tbaa !11
  %3305 = getelementptr inbounds %struct.complex, ptr %99, i32 0, i32 1
  %3306 = load float, ptr %3305, align 4, !tbaa !14
  %3307 = load ptr, ptr %30, align 8, !tbaa !5
  %3308 = load i64, ptr %53, align 8, !tbaa !9
  %3309 = getelementptr inbounds %struct.complex, ptr %3307, i64 %3308
  %3310 = getelementptr inbounds %struct.complex, ptr %3309, i32 0, i32 1
  store float %3306, ptr %3310, align 4, !tbaa !14
  br label %3311

3311:                                             ; preds = %2916
  %3312 = load i64, ptr %72, align 8, !tbaa !9
  %3313 = add nsw i64 %3312, 1
  store i64 %3313, ptr %72, align 8, !tbaa !9
  br label %2912, !llvm.loop !22

3314:                                             ; preds = %2912
  %3315 = load i64, ptr %81, align 8, !tbaa !9
  %3316 = icmp ne i64 %3315, 0
  br i1 %3316, label %3317, label %3526

3317:                                             ; preds = %3314
  %3318 = load ptr, ptr %25, align 8, !tbaa !5
  %3319 = load i64, ptr %3318, align 8, !tbaa !9
  store i64 %3319, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %3320

3320:                                             ; preds = %3522, %3317
  %3321 = load i64, ptr %75, align 8, !tbaa !9
  %3322 = load i64, ptr %52, align 8, !tbaa !9
  %3323 = icmp sle i64 %3321, %3322
  br i1 %3323, label %3324, label %3525

3324:                                             ; preds = %3320
  %3325 = load i64, ptr %75, align 8, !tbaa !9
  %3326 = load i64, ptr %69, align 8, !tbaa !9
  %3327 = load i64, ptr %44, align 8, !tbaa !9
  %3328 = mul nsw i64 %3326, %3327
  %3329 = add nsw i64 %3325, %3328
  store i64 %3329, ptr %53, align 8, !tbaa !9
  %3330 = load float, ptr %68, align 4, !tbaa !15
  %3331 = load ptr, ptr %34, align 8, !tbaa !5
  %3332 = load i64, ptr %53, align 8, !tbaa !9
  %3333 = getelementptr inbounds %struct.complex, ptr %3331, i64 %3332
  %3334 = getelementptr inbounds %struct.complex, ptr %3333, i32 0, i32 0
  %3335 = load float, ptr %3334, align 4, !tbaa !11
  %3336 = fmul float %3330, %3335
  %3337 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %3336, ptr %3337, align 4, !tbaa !11
  %3338 = load float, ptr %68, align 4, !tbaa !15
  %3339 = load ptr, ptr %34, align 8, !tbaa !5
  %3340 = load i64, ptr %53, align 8, !tbaa !9
  %3341 = getelementptr inbounds %struct.complex, ptr %3339, i64 %3340
  %3342 = getelementptr inbounds %struct.complex, ptr %3341, i32 0, i32 1
  %3343 = load float, ptr %3342, align 4, !tbaa !14
  %3344 = fmul float %3338, %3343
  %3345 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %3344, ptr %3345, align 4, !tbaa !14
  call void @r_cnjg(ptr noundef %65, ptr noundef %70)
  %3346 = load i64, ptr %75, align 8, !tbaa !9
  %3347 = load i64, ptr %69, align 8, !tbaa !9
  %3348 = add nsw i64 %3347, 1
  %3349 = load i64, ptr %44, align 8, !tbaa !9
  %3350 = mul nsw i64 %3348, %3349
  %3351 = add nsw i64 %3346, %3350
  store i64 %3351, ptr %54, align 8, !tbaa !9
  %3352 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %3353 = load float, ptr %3352, align 4, !tbaa !11
  %3354 = load ptr, ptr %34, align 8, !tbaa !5
  %3355 = load i64, ptr %54, align 8, !tbaa !9
  %3356 = getelementptr inbounds %struct.complex, ptr %3354, i64 %3355
  %3357 = getelementptr inbounds %struct.complex, ptr %3356, i32 0, i32 0
  %3358 = load float, ptr %3357, align 4, !tbaa !11
  %3359 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %3360 = load float, ptr %3359, align 4, !tbaa !14
  %3361 = load ptr, ptr %34, align 8, !tbaa !5
  %3362 = load i64, ptr %54, align 8, !tbaa !9
  %3363 = getelementptr inbounds %struct.complex, ptr %3361, i64 %3362
  %3364 = getelementptr inbounds %struct.complex, ptr %3363, i32 0, i32 1
  %3365 = load float, ptr %3364, align 4, !tbaa !14
  %3366 = fmul float %3360, %3365
  %3367 = fneg float %3366
  %3368 = call float @llvm.fmuladd.f32(float %3353, float %3358, float %3367)
  %3369 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %3368, ptr %3369, align 4, !tbaa !11
  %3370 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %3371 = load float, ptr %3370, align 4, !tbaa !11
  %3372 = load ptr, ptr %34, align 8, !tbaa !5
  %3373 = load i64, ptr %54, align 8, !tbaa !9
  %3374 = getelementptr inbounds %struct.complex, ptr %3372, i64 %3373
  %3375 = getelementptr inbounds %struct.complex, ptr %3374, i32 0, i32 1
  %3376 = load float, ptr %3375, align 4, !tbaa !14
  %3377 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %3378 = load float, ptr %3377, align 4, !tbaa !14
  %3379 = load ptr, ptr %34, align 8, !tbaa !5
  %3380 = load i64, ptr %54, align 8, !tbaa !9
  %3381 = getelementptr inbounds %struct.complex, ptr %3379, i64 %3380
  %3382 = getelementptr inbounds %struct.complex, ptr %3381, i32 0, i32 0
  %3383 = load float, ptr %3382, align 4, !tbaa !11
  %3384 = fmul float %3378, %3383
  %3385 = call float @llvm.fmuladd.f32(float %3371, float %3376, float %3384)
  %3386 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %3385, ptr %3386, align 4, !tbaa !14
  %3387 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %3388 = load float, ptr %3387, align 4, !tbaa !11
  %3389 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3390 = load float, ptr %3389, align 4, !tbaa !11
  %3391 = fadd float %3388, %3390
  %3392 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %3391, ptr %3392, align 4, !tbaa !11
  %3393 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %3394 = load float, ptr %3393, align 4, !tbaa !14
  %3395 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3396 = load float, ptr %3395, align 4, !tbaa !14
  %3397 = fadd float %3394, %3396
  %3398 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %3397, ptr %3398, align 4, !tbaa !14
  %3399 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %3400 = load float, ptr %3399, align 4, !tbaa !11
  %3401 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %3400, ptr %3401, align 4, !tbaa !11
  %3402 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %3403 = load float, ptr %3402, align 4, !tbaa !14
  %3404 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %3403, ptr %3404, align 4, !tbaa !14
  %3405 = load i64, ptr %75, align 8, !tbaa !9
  %3406 = load i64, ptr %69, align 8, !tbaa !9
  %3407 = add nsw i64 %3406, 1
  %3408 = load i64, ptr %44, align 8, !tbaa !9
  %3409 = mul nsw i64 %3407, %3408
  %3410 = add nsw i64 %3405, %3409
  store i64 %3410, ptr %53, align 8, !tbaa !9
  %3411 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %3412 = load float, ptr %3411, align 4, !tbaa !11
  %3413 = fneg float %3412
  %3414 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %3413, ptr %3414, align 4, !tbaa !11
  %3415 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %3416 = load float, ptr %3415, align 4, !tbaa !14
  %3417 = fneg float %3416
  %3418 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %3417, ptr %3418, align 4, !tbaa !14
  %3419 = load i64, ptr %75, align 8, !tbaa !9
  %3420 = load i64, ptr %69, align 8, !tbaa !9
  %3421 = load i64, ptr %44, align 8, !tbaa !9
  %3422 = mul nsw i64 %3420, %3421
  %3423 = add nsw i64 %3419, %3422
  store i64 %3423, ptr %54, align 8, !tbaa !9
  %3424 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3425 = load float, ptr %3424, align 4, !tbaa !11
  %3426 = load ptr, ptr %34, align 8, !tbaa !5
  %3427 = load i64, ptr %54, align 8, !tbaa !9
  %3428 = getelementptr inbounds %struct.complex, ptr %3426, i64 %3427
  %3429 = getelementptr inbounds %struct.complex, ptr %3428, i32 0, i32 0
  %3430 = load float, ptr %3429, align 4, !tbaa !11
  %3431 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3432 = load float, ptr %3431, align 4, !tbaa !14
  %3433 = load ptr, ptr %34, align 8, !tbaa !5
  %3434 = load i64, ptr %54, align 8, !tbaa !9
  %3435 = getelementptr inbounds %struct.complex, ptr %3433, i64 %3434
  %3436 = getelementptr inbounds %struct.complex, ptr %3435, i32 0, i32 1
  %3437 = load float, ptr %3436, align 4, !tbaa !14
  %3438 = fmul float %3432, %3437
  %3439 = fneg float %3438
  %3440 = call float @llvm.fmuladd.f32(float %3425, float %3430, float %3439)
  %3441 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %3440, ptr %3441, align 4, !tbaa !11
  %3442 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3443 = load float, ptr %3442, align 4, !tbaa !11
  %3444 = load ptr, ptr %34, align 8, !tbaa !5
  %3445 = load i64, ptr %54, align 8, !tbaa !9
  %3446 = getelementptr inbounds %struct.complex, ptr %3444, i64 %3445
  %3447 = getelementptr inbounds %struct.complex, ptr %3446, i32 0, i32 1
  %3448 = load float, ptr %3447, align 4, !tbaa !14
  %3449 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3450 = load float, ptr %3449, align 4, !tbaa !14
  %3451 = load ptr, ptr %34, align 8, !tbaa !5
  %3452 = load i64, ptr %54, align 8, !tbaa !9
  %3453 = getelementptr inbounds %struct.complex, ptr %3451, i64 %3452
  %3454 = getelementptr inbounds %struct.complex, ptr %3453, i32 0, i32 0
  %3455 = load float, ptr %3454, align 4, !tbaa !11
  %3456 = fmul float %3450, %3455
  %3457 = call float @llvm.fmuladd.f32(float %3443, float %3448, float %3456)
  %3458 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %3457, ptr %3458, align 4, !tbaa !14
  %3459 = load i64, ptr %75, align 8, !tbaa !9
  %3460 = load i64, ptr %69, align 8, !tbaa !9
  %3461 = add nsw i64 %3460, 1
  %3462 = load i64, ptr %44, align 8, !tbaa !9
  %3463 = mul nsw i64 %3461, %3462
  %3464 = add nsw i64 %3459, %3463
  store i64 %3464, ptr %55, align 8, !tbaa !9
  %3465 = load float, ptr %68, align 4, !tbaa !15
  %3466 = load ptr, ptr %34, align 8, !tbaa !5
  %3467 = load i64, ptr %55, align 8, !tbaa !9
  %3468 = getelementptr inbounds %struct.complex, ptr %3466, i64 %3467
  %3469 = getelementptr inbounds %struct.complex, ptr %3468, i32 0, i32 0
  %3470 = load float, ptr %3469, align 4, !tbaa !11
  %3471 = fmul float %3465, %3470
  %3472 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  store float %3471, ptr %3472, align 4, !tbaa !11
  %3473 = load float, ptr %68, align 4, !tbaa !15
  %3474 = load ptr, ptr %34, align 8, !tbaa !5
  %3475 = load i64, ptr %55, align 8, !tbaa !9
  %3476 = getelementptr inbounds %struct.complex, ptr %3474, i64 %3475
  %3477 = getelementptr inbounds %struct.complex, ptr %3476, i32 0, i32 1
  %3478 = load float, ptr %3477, align 4, !tbaa !14
  %3479 = fmul float %3473, %3478
  %3480 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  store float %3479, ptr %3480, align 4, !tbaa !14
  %3481 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %3482 = load float, ptr %3481, align 4, !tbaa !11
  %3483 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %3484 = load float, ptr %3483, align 4, !tbaa !11
  %3485 = fadd float %3482, %3484
  %3486 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %3485, ptr %3486, align 4, !tbaa !11
  %3487 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %3488 = load float, ptr %3487, align 4, !tbaa !14
  %3489 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %3490 = load float, ptr %3489, align 4, !tbaa !14
  %3491 = fadd float %3488, %3490
  %3492 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %3491, ptr %3492, align 4, !tbaa !14
  %3493 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %3494 = load float, ptr %3493, align 4, !tbaa !11
  %3495 = load ptr, ptr %34, align 8, !tbaa !5
  %3496 = load i64, ptr %53, align 8, !tbaa !9
  %3497 = getelementptr inbounds %struct.complex, ptr %3495, i64 %3496
  %3498 = getelementptr inbounds %struct.complex, ptr %3497, i32 0, i32 0
  store float %3494, ptr %3498, align 4, !tbaa !11
  %3499 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %3500 = load float, ptr %3499, align 4, !tbaa !14
  %3501 = load ptr, ptr %34, align 8, !tbaa !5
  %3502 = load i64, ptr %53, align 8, !tbaa !9
  %3503 = getelementptr inbounds %struct.complex, ptr %3501, i64 %3502
  %3504 = getelementptr inbounds %struct.complex, ptr %3503, i32 0, i32 1
  store float %3500, ptr %3504, align 4, !tbaa !14
  %3505 = load i64, ptr %75, align 8, !tbaa !9
  %3506 = load i64, ptr %69, align 8, !tbaa !9
  %3507 = load i64, ptr %44, align 8, !tbaa !9
  %3508 = mul nsw i64 %3506, %3507
  %3509 = add nsw i64 %3505, %3508
  store i64 %3509, ptr %53, align 8, !tbaa !9
  %3510 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  %3511 = load float, ptr %3510, align 4, !tbaa !11
  %3512 = load ptr, ptr %34, align 8, !tbaa !5
  %3513 = load i64, ptr %53, align 8, !tbaa !9
  %3514 = getelementptr inbounds %struct.complex, ptr %3512, i64 %3513
  %3515 = getelementptr inbounds %struct.complex, ptr %3514, i32 0, i32 0
  store float %3511, ptr %3515, align 4, !tbaa !11
  %3516 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  %3517 = load float, ptr %3516, align 4, !tbaa !14
  %3518 = load ptr, ptr %34, align 8, !tbaa !5
  %3519 = load i64, ptr %53, align 8, !tbaa !9
  %3520 = getelementptr inbounds %struct.complex, ptr %3518, i64 %3519
  %3521 = getelementptr inbounds %struct.complex, ptr %3520, i32 0, i32 1
  store float %3517, ptr %3521, align 4, !tbaa !14
  br label %3522

3522:                                             ; preds = %3324
  %3523 = load i64, ptr %75, align 8, !tbaa !9
  %3524 = add nsw i64 %3523, 1
  store i64 %3524, ptr %75, align 8, !tbaa !9
  br label %3320, !llvm.loop !23

3525:                                             ; preds = %3320
  br label %3526

3526:                                             ; preds = %3525, %3314
  %3527 = load i64, ptr %69, align 8, !tbaa !9
  %3528 = add nsw i64 %3527, 1
  %3529 = load i64, ptr %69, align 8, !tbaa !9
  %3530 = add nsw i64 %3529, 1
  %3531 = load i64, ptr %46, align 8, !tbaa !9
  %3532 = mul nsw i64 %3530, %3531
  %3533 = add nsw i64 %3528, %3532
  store i64 %3533, ptr %52, align 8, !tbaa !9
  %3534 = load ptr, ptr %30, align 8, !tbaa !5
  %3535 = load i64, ptr %52, align 8, !tbaa !9
  %3536 = getelementptr inbounds %struct.complex, ptr %3534, i64 %3535
  %3537 = getelementptr inbounds %struct.complex, ptr %3536, i32 0, i32 0
  %3538 = load float, ptr %3537, align 4, !tbaa !11
  %3539 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %3538, ptr %3539, align 4, !tbaa !11
  %3540 = load ptr, ptr %30, align 8, !tbaa !5
  %3541 = load i64, ptr %52, align 8, !tbaa !9
  %3542 = getelementptr inbounds %struct.complex, ptr %3540, i64 %3541
  %3543 = getelementptr inbounds %struct.complex, ptr %3542, i32 0, i32 1
  %3544 = load float, ptr %3543, align 4, !tbaa !14
  %3545 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %3544, ptr %3545, align 4, !tbaa !14
  %3546 = load ptr, ptr %30, align 8, !tbaa !5
  %3547 = load i64, ptr %69, align 8, !tbaa !9
  %3548 = add nsw i64 %3547, 1
  %3549 = load i64, ptr %69, align 8, !tbaa !9
  %3550 = load i64, ptr %46, align 8, !tbaa !9
  %3551 = mul nsw i64 %3549, %3550
  %3552 = add nsw i64 %3548, %3551
  %3553 = getelementptr inbounds %struct.complex, ptr %3546, i64 %3552
  %3554 = load ptr, ptr %30, align 8, !tbaa !5
  %3555 = load i64, ptr %69, align 8, !tbaa !9
  %3556 = add nsw i64 %3555, 1
  %3557 = load i64, ptr %69, align 8, !tbaa !9
  %3558 = add nsw i64 %3557, 1
  %3559 = load i64, ptr %46, align 8, !tbaa !9
  %3560 = mul nsw i64 %3558, %3559
  %3561 = add nsw i64 %3556, %3560
  %3562 = getelementptr inbounds %struct.complex, ptr %3554, i64 %3561
  %3563 = call i32 @clartg_(ptr noundef %90, ptr noundef %3553, ptr noundef %68, ptr noundef %70, ptr noundef %3562)
  %3564 = load i64, ptr %69, align 8, !tbaa !9
  %3565 = add nsw i64 %3564, 1
  %3566 = load i64, ptr %69, align 8, !tbaa !9
  %3567 = load i64, ptr %46, align 8, !tbaa !9
  %3568 = mul nsw i64 %3566, %3567
  %3569 = add nsw i64 %3565, %3568
  store i64 %3569, ptr %52, align 8, !tbaa !9
  %3570 = load ptr, ptr %30, align 8, !tbaa !5
  %3571 = load i64, ptr %52, align 8, !tbaa !9
  %3572 = getelementptr inbounds %struct.complex, ptr %3570, i64 %3571
  %3573 = getelementptr inbounds %struct.complex, ptr %3572, i32 0, i32 0
  store float 0.000000e+00, ptr %3573, align 4, !tbaa !11
  %3574 = load ptr, ptr %30, align 8, !tbaa !5
  %3575 = load i64, ptr %52, align 8, !tbaa !9
  %3576 = getelementptr inbounds %struct.complex, ptr %3574, i64 %3575
  %3577 = getelementptr inbounds %struct.complex, ptr %3576, i32 0, i32 1
  store float 0.000000e+00, ptr %3577, align 4, !tbaa !14
  %3578 = load i64, ptr %69, align 8, !tbaa !9
  %3579 = add nsw i64 %3578, 2
  store i64 %3579, ptr %53, align 8, !tbaa !9
  %3580 = load i64, ptr %53, align 8, !tbaa !9
  %3581 = load i64, ptr %92, align 8, !tbaa !9
  %3582 = icmp sle i64 %3580, %3581
  br i1 %3582, label %3583, label %3585

3583:                                             ; preds = %3526
  %3584 = load i64, ptr %53, align 8, !tbaa !9
  br label %3587

3585:                                             ; preds = %3526
  %3586 = load i64, ptr %92, align 8, !tbaa !9
  br label %3587

3587:                                             ; preds = %3585, %3583
  %3588 = phi i64 [ %3584, %3583 ], [ %3586, %3585 ]
  store i64 %3588, ptr %52, align 8, !tbaa !9
  %3589 = load i64, ptr %115, align 8, !tbaa !9
  store i64 %3589, ptr %75, align 8, !tbaa !9
  br label %3590

3590:                                             ; preds = %3792, %3587
  %3591 = load i64, ptr %75, align 8, !tbaa !9
  %3592 = load i64, ptr %52, align 8, !tbaa !9
  %3593 = icmp sle i64 %3591, %3592
  br i1 %3593, label %3594, label %3795

3594:                                             ; preds = %3590
  %3595 = load i64, ptr %75, align 8, !tbaa !9
  %3596 = load i64, ptr %69, align 8, !tbaa !9
  %3597 = add nsw i64 %3596, 1
  %3598 = load i64, ptr %42, align 8, !tbaa !9
  %3599 = mul nsw i64 %3597, %3598
  %3600 = add nsw i64 %3595, %3599
  store i64 %3600, ptr %53, align 8, !tbaa !9
  %3601 = load float, ptr %68, align 4, !tbaa !15
  %3602 = load ptr, ptr %28, align 8, !tbaa !5
  %3603 = load i64, ptr %53, align 8, !tbaa !9
  %3604 = getelementptr inbounds %struct.complex, ptr %3602, i64 %3603
  %3605 = getelementptr inbounds %struct.complex, ptr %3604, i32 0, i32 0
  %3606 = load float, ptr %3605, align 4, !tbaa !11
  %3607 = fmul float %3601, %3606
  %3608 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %3607, ptr %3608, align 4, !tbaa !11
  %3609 = load float, ptr %68, align 4, !tbaa !15
  %3610 = load ptr, ptr %28, align 8, !tbaa !5
  %3611 = load i64, ptr %53, align 8, !tbaa !9
  %3612 = getelementptr inbounds %struct.complex, ptr %3610, i64 %3611
  %3613 = getelementptr inbounds %struct.complex, ptr %3612, i32 0, i32 1
  %3614 = load float, ptr %3613, align 4, !tbaa !14
  %3615 = fmul float %3609, %3614
  %3616 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %3615, ptr %3616, align 4, !tbaa !14
  %3617 = load i64, ptr %75, align 8, !tbaa !9
  %3618 = load i64, ptr %69, align 8, !tbaa !9
  %3619 = load i64, ptr %42, align 8, !tbaa !9
  %3620 = mul nsw i64 %3618, %3619
  %3621 = add nsw i64 %3617, %3620
  store i64 %3621, ptr %54, align 8, !tbaa !9
  %3622 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %3623 = load float, ptr %3622, align 4, !tbaa !11
  %3624 = load ptr, ptr %28, align 8, !tbaa !5
  %3625 = load i64, ptr %54, align 8, !tbaa !9
  %3626 = getelementptr inbounds %struct.complex, ptr %3624, i64 %3625
  %3627 = getelementptr inbounds %struct.complex, ptr %3626, i32 0, i32 0
  %3628 = load float, ptr %3627, align 4, !tbaa !11
  %3629 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %3630 = load float, ptr %3629, align 4, !tbaa !14
  %3631 = load ptr, ptr %28, align 8, !tbaa !5
  %3632 = load i64, ptr %54, align 8, !tbaa !9
  %3633 = getelementptr inbounds %struct.complex, ptr %3631, i64 %3632
  %3634 = getelementptr inbounds %struct.complex, ptr %3633, i32 0, i32 1
  %3635 = load float, ptr %3634, align 4, !tbaa !14
  %3636 = fmul float %3630, %3635
  %3637 = fneg float %3636
  %3638 = call float @llvm.fmuladd.f32(float %3623, float %3628, float %3637)
  %3639 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %3638, ptr %3639, align 4, !tbaa !11
  %3640 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %3641 = load float, ptr %3640, align 4, !tbaa !11
  %3642 = load ptr, ptr %28, align 8, !tbaa !5
  %3643 = load i64, ptr %54, align 8, !tbaa !9
  %3644 = getelementptr inbounds %struct.complex, ptr %3642, i64 %3643
  %3645 = getelementptr inbounds %struct.complex, ptr %3644, i32 0, i32 1
  %3646 = load float, ptr %3645, align 4, !tbaa !14
  %3647 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %3648 = load float, ptr %3647, align 4, !tbaa !14
  %3649 = load ptr, ptr %28, align 8, !tbaa !5
  %3650 = load i64, ptr %54, align 8, !tbaa !9
  %3651 = getelementptr inbounds %struct.complex, ptr %3649, i64 %3650
  %3652 = getelementptr inbounds %struct.complex, ptr %3651, i32 0, i32 0
  %3653 = load float, ptr %3652, align 4, !tbaa !11
  %3654 = fmul float %3648, %3653
  %3655 = call float @llvm.fmuladd.f32(float %3641, float %3646, float %3654)
  %3656 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %3655, ptr %3656, align 4, !tbaa !14
  %3657 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %3658 = load float, ptr %3657, align 4, !tbaa !11
  %3659 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3660 = load float, ptr %3659, align 4, !tbaa !11
  %3661 = fadd float %3658, %3660
  %3662 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %3661, ptr %3662, align 4, !tbaa !11
  %3663 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %3664 = load float, ptr %3663, align 4, !tbaa !14
  %3665 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3666 = load float, ptr %3665, align 4, !tbaa !14
  %3667 = fadd float %3664, %3666
  %3668 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %3667, ptr %3668, align 4, !tbaa !14
  %3669 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %3670 = load float, ptr %3669, align 4, !tbaa !11
  %3671 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %3670, ptr %3671, align 4, !tbaa !11
  %3672 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %3673 = load float, ptr %3672, align 4, !tbaa !14
  %3674 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %3673, ptr %3674, align 4, !tbaa !14
  %3675 = load i64, ptr %75, align 8, !tbaa !9
  %3676 = load i64, ptr %69, align 8, !tbaa !9
  %3677 = load i64, ptr %42, align 8, !tbaa !9
  %3678 = mul nsw i64 %3676, %3677
  %3679 = add nsw i64 %3675, %3678
  store i64 %3679, ptr %53, align 8, !tbaa !9
  call void @r_cnjg(ptr noundef %65, ptr noundef %70)
  %3680 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %3681 = load float, ptr %3680, align 4, !tbaa !11
  %3682 = fneg float %3681
  %3683 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %3682, ptr %3683, align 4, !tbaa !11
  %3684 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %3685 = load float, ptr %3684, align 4, !tbaa !14
  %3686 = fneg float %3685
  %3687 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %3686, ptr %3687, align 4, !tbaa !14
  %3688 = load i64, ptr %75, align 8, !tbaa !9
  %3689 = load i64, ptr %69, align 8, !tbaa !9
  %3690 = add nsw i64 %3689, 1
  %3691 = load i64, ptr %42, align 8, !tbaa !9
  %3692 = mul nsw i64 %3690, %3691
  %3693 = add nsw i64 %3688, %3692
  store i64 %3693, ptr %54, align 8, !tbaa !9
  %3694 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3695 = load float, ptr %3694, align 4, !tbaa !11
  %3696 = load ptr, ptr %28, align 8, !tbaa !5
  %3697 = load i64, ptr %54, align 8, !tbaa !9
  %3698 = getelementptr inbounds %struct.complex, ptr %3696, i64 %3697
  %3699 = getelementptr inbounds %struct.complex, ptr %3698, i32 0, i32 0
  %3700 = load float, ptr %3699, align 4, !tbaa !11
  %3701 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3702 = load float, ptr %3701, align 4, !tbaa !14
  %3703 = load ptr, ptr %28, align 8, !tbaa !5
  %3704 = load i64, ptr %54, align 8, !tbaa !9
  %3705 = getelementptr inbounds %struct.complex, ptr %3703, i64 %3704
  %3706 = getelementptr inbounds %struct.complex, ptr %3705, i32 0, i32 1
  %3707 = load float, ptr %3706, align 4, !tbaa !14
  %3708 = fmul float %3702, %3707
  %3709 = fneg float %3708
  %3710 = call float @llvm.fmuladd.f32(float %3695, float %3700, float %3709)
  %3711 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %3710, ptr %3711, align 4, !tbaa !11
  %3712 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3713 = load float, ptr %3712, align 4, !tbaa !11
  %3714 = load ptr, ptr %28, align 8, !tbaa !5
  %3715 = load i64, ptr %54, align 8, !tbaa !9
  %3716 = getelementptr inbounds %struct.complex, ptr %3714, i64 %3715
  %3717 = getelementptr inbounds %struct.complex, ptr %3716, i32 0, i32 1
  %3718 = load float, ptr %3717, align 4, !tbaa !14
  %3719 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3720 = load float, ptr %3719, align 4, !tbaa !14
  %3721 = load ptr, ptr %28, align 8, !tbaa !5
  %3722 = load i64, ptr %54, align 8, !tbaa !9
  %3723 = getelementptr inbounds %struct.complex, ptr %3721, i64 %3722
  %3724 = getelementptr inbounds %struct.complex, ptr %3723, i32 0, i32 0
  %3725 = load float, ptr %3724, align 4, !tbaa !11
  %3726 = fmul float %3720, %3725
  %3727 = call float @llvm.fmuladd.f32(float %3713, float %3718, float %3726)
  %3728 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %3727, ptr %3728, align 4, !tbaa !14
  %3729 = load i64, ptr %75, align 8, !tbaa !9
  %3730 = load i64, ptr %69, align 8, !tbaa !9
  %3731 = load i64, ptr %42, align 8, !tbaa !9
  %3732 = mul nsw i64 %3730, %3731
  %3733 = add nsw i64 %3729, %3732
  store i64 %3733, ptr %55, align 8, !tbaa !9
  %3734 = load float, ptr %68, align 4, !tbaa !15
  %3735 = load ptr, ptr %28, align 8, !tbaa !5
  %3736 = load i64, ptr %55, align 8, !tbaa !9
  %3737 = getelementptr inbounds %struct.complex, ptr %3735, i64 %3736
  %3738 = getelementptr inbounds %struct.complex, ptr %3737, i32 0, i32 0
  %3739 = load float, ptr %3738, align 4, !tbaa !11
  %3740 = fmul float %3734, %3739
  %3741 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  store float %3740, ptr %3741, align 4, !tbaa !11
  %3742 = load float, ptr %68, align 4, !tbaa !15
  %3743 = load ptr, ptr %28, align 8, !tbaa !5
  %3744 = load i64, ptr %55, align 8, !tbaa !9
  %3745 = getelementptr inbounds %struct.complex, ptr %3743, i64 %3744
  %3746 = getelementptr inbounds %struct.complex, ptr %3745, i32 0, i32 1
  %3747 = load float, ptr %3746, align 4, !tbaa !14
  %3748 = fmul float %3742, %3747
  %3749 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  store float %3748, ptr %3749, align 4, !tbaa !14
  %3750 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %3751 = load float, ptr %3750, align 4, !tbaa !11
  %3752 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %3753 = load float, ptr %3752, align 4, !tbaa !11
  %3754 = fadd float %3751, %3753
  %3755 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %3754, ptr %3755, align 4, !tbaa !11
  %3756 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %3757 = load float, ptr %3756, align 4, !tbaa !14
  %3758 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %3759 = load float, ptr %3758, align 4, !tbaa !14
  %3760 = fadd float %3757, %3759
  %3761 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %3760, ptr %3761, align 4, !tbaa !14
  %3762 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %3763 = load float, ptr %3762, align 4, !tbaa !11
  %3764 = load ptr, ptr %28, align 8, !tbaa !5
  %3765 = load i64, ptr %53, align 8, !tbaa !9
  %3766 = getelementptr inbounds %struct.complex, ptr %3764, i64 %3765
  %3767 = getelementptr inbounds %struct.complex, ptr %3766, i32 0, i32 0
  store float %3763, ptr %3767, align 4, !tbaa !11
  %3768 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %3769 = load float, ptr %3768, align 4, !tbaa !14
  %3770 = load ptr, ptr %28, align 8, !tbaa !5
  %3771 = load i64, ptr %53, align 8, !tbaa !9
  %3772 = getelementptr inbounds %struct.complex, ptr %3770, i64 %3771
  %3773 = getelementptr inbounds %struct.complex, ptr %3772, i32 0, i32 1
  store float %3769, ptr %3773, align 4, !tbaa !14
  %3774 = load i64, ptr %75, align 8, !tbaa !9
  %3775 = load i64, ptr %69, align 8, !tbaa !9
  %3776 = add nsw i64 %3775, 1
  %3777 = load i64, ptr %42, align 8, !tbaa !9
  %3778 = mul nsw i64 %3776, %3777
  %3779 = add nsw i64 %3774, %3778
  store i64 %3779, ptr %53, align 8, !tbaa !9
  %3780 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  %3781 = load float, ptr %3780, align 4, !tbaa !11
  %3782 = load ptr, ptr %28, align 8, !tbaa !5
  %3783 = load i64, ptr %53, align 8, !tbaa !9
  %3784 = getelementptr inbounds %struct.complex, ptr %3782, i64 %3783
  %3785 = getelementptr inbounds %struct.complex, ptr %3784, i32 0, i32 0
  store float %3781, ptr %3785, align 4, !tbaa !11
  %3786 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  %3787 = load float, ptr %3786, align 4, !tbaa !14
  %3788 = load ptr, ptr %28, align 8, !tbaa !5
  %3789 = load i64, ptr %53, align 8, !tbaa !9
  %3790 = getelementptr inbounds %struct.complex, ptr %3788, i64 %3789
  %3791 = getelementptr inbounds %struct.complex, ptr %3790, i32 0, i32 1
  store float %3787, ptr %3791, align 4, !tbaa !14
  br label %3792

3792:                                             ; preds = %3594
  %3793 = load i64, ptr %75, align 8, !tbaa !9
  %3794 = add nsw i64 %3793, 1
  store i64 %3794, ptr %75, align 8, !tbaa !9
  br label %3590, !llvm.loop !24

3795:                                             ; preds = %3590
  %3796 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %3796, ptr %52, align 8, !tbaa !9
  %3797 = load i64, ptr %115, align 8, !tbaa !9
  store i64 %3797, ptr %75, align 8, !tbaa !9
  br label %3798

3798:                                             ; preds = %4000, %3795
  %3799 = load i64, ptr %75, align 8, !tbaa !9
  %3800 = load i64, ptr %52, align 8, !tbaa !9
  %3801 = icmp sle i64 %3799, %3800
  br i1 %3801, label %3802, label %4003

3802:                                             ; preds = %3798
  %3803 = load i64, ptr %75, align 8, !tbaa !9
  %3804 = load i64, ptr %69, align 8, !tbaa !9
  %3805 = add nsw i64 %3804, 1
  %3806 = load i64, ptr %46, align 8, !tbaa !9
  %3807 = mul nsw i64 %3805, %3806
  %3808 = add nsw i64 %3803, %3807
  store i64 %3808, ptr %53, align 8, !tbaa !9
  %3809 = load float, ptr %68, align 4, !tbaa !15
  %3810 = load ptr, ptr %30, align 8, !tbaa !5
  %3811 = load i64, ptr %53, align 8, !tbaa !9
  %3812 = getelementptr inbounds %struct.complex, ptr %3810, i64 %3811
  %3813 = getelementptr inbounds %struct.complex, ptr %3812, i32 0, i32 0
  %3814 = load float, ptr %3813, align 4, !tbaa !11
  %3815 = fmul float %3809, %3814
  %3816 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %3815, ptr %3816, align 4, !tbaa !11
  %3817 = load float, ptr %68, align 4, !tbaa !15
  %3818 = load ptr, ptr %30, align 8, !tbaa !5
  %3819 = load i64, ptr %53, align 8, !tbaa !9
  %3820 = getelementptr inbounds %struct.complex, ptr %3818, i64 %3819
  %3821 = getelementptr inbounds %struct.complex, ptr %3820, i32 0, i32 1
  %3822 = load float, ptr %3821, align 4, !tbaa !14
  %3823 = fmul float %3817, %3822
  %3824 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %3823, ptr %3824, align 4, !tbaa !14
  %3825 = load i64, ptr %75, align 8, !tbaa !9
  %3826 = load i64, ptr %69, align 8, !tbaa !9
  %3827 = load i64, ptr %46, align 8, !tbaa !9
  %3828 = mul nsw i64 %3826, %3827
  %3829 = add nsw i64 %3825, %3828
  store i64 %3829, ptr %54, align 8, !tbaa !9
  %3830 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %3831 = load float, ptr %3830, align 4, !tbaa !11
  %3832 = load ptr, ptr %30, align 8, !tbaa !5
  %3833 = load i64, ptr %54, align 8, !tbaa !9
  %3834 = getelementptr inbounds %struct.complex, ptr %3832, i64 %3833
  %3835 = getelementptr inbounds %struct.complex, ptr %3834, i32 0, i32 0
  %3836 = load float, ptr %3835, align 4, !tbaa !11
  %3837 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %3838 = load float, ptr %3837, align 4, !tbaa !14
  %3839 = load ptr, ptr %30, align 8, !tbaa !5
  %3840 = load i64, ptr %54, align 8, !tbaa !9
  %3841 = getelementptr inbounds %struct.complex, ptr %3839, i64 %3840
  %3842 = getelementptr inbounds %struct.complex, ptr %3841, i32 0, i32 1
  %3843 = load float, ptr %3842, align 4, !tbaa !14
  %3844 = fmul float %3838, %3843
  %3845 = fneg float %3844
  %3846 = call float @llvm.fmuladd.f32(float %3831, float %3836, float %3845)
  %3847 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %3846, ptr %3847, align 4, !tbaa !11
  %3848 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %3849 = load float, ptr %3848, align 4, !tbaa !11
  %3850 = load ptr, ptr %30, align 8, !tbaa !5
  %3851 = load i64, ptr %54, align 8, !tbaa !9
  %3852 = getelementptr inbounds %struct.complex, ptr %3850, i64 %3851
  %3853 = getelementptr inbounds %struct.complex, ptr %3852, i32 0, i32 1
  %3854 = load float, ptr %3853, align 4, !tbaa !14
  %3855 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %3856 = load float, ptr %3855, align 4, !tbaa !14
  %3857 = load ptr, ptr %30, align 8, !tbaa !5
  %3858 = load i64, ptr %54, align 8, !tbaa !9
  %3859 = getelementptr inbounds %struct.complex, ptr %3857, i64 %3858
  %3860 = getelementptr inbounds %struct.complex, ptr %3859, i32 0, i32 0
  %3861 = load float, ptr %3860, align 4, !tbaa !11
  %3862 = fmul float %3856, %3861
  %3863 = call float @llvm.fmuladd.f32(float %3849, float %3854, float %3862)
  %3864 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %3863, ptr %3864, align 4, !tbaa !14
  %3865 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %3866 = load float, ptr %3865, align 4, !tbaa !11
  %3867 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3868 = load float, ptr %3867, align 4, !tbaa !11
  %3869 = fadd float %3866, %3868
  %3870 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %3869, ptr %3870, align 4, !tbaa !11
  %3871 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %3872 = load float, ptr %3871, align 4, !tbaa !14
  %3873 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3874 = load float, ptr %3873, align 4, !tbaa !14
  %3875 = fadd float %3872, %3874
  %3876 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %3875, ptr %3876, align 4, !tbaa !14
  %3877 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %3878 = load float, ptr %3877, align 4, !tbaa !11
  %3879 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %3878, ptr %3879, align 4, !tbaa !11
  %3880 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %3881 = load float, ptr %3880, align 4, !tbaa !14
  %3882 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %3881, ptr %3882, align 4, !tbaa !14
  %3883 = load i64, ptr %75, align 8, !tbaa !9
  %3884 = load i64, ptr %69, align 8, !tbaa !9
  %3885 = load i64, ptr %46, align 8, !tbaa !9
  %3886 = mul nsw i64 %3884, %3885
  %3887 = add nsw i64 %3883, %3886
  store i64 %3887, ptr %53, align 8, !tbaa !9
  call void @r_cnjg(ptr noundef %65, ptr noundef %70)
  %3888 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %3889 = load float, ptr %3888, align 4, !tbaa !11
  %3890 = fneg float %3889
  %3891 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %3890, ptr %3891, align 4, !tbaa !11
  %3892 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %3893 = load float, ptr %3892, align 4, !tbaa !14
  %3894 = fneg float %3893
  %3895 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %3894, ptr %3895, align 4, !tbaa !14
  %3896 = load i64, ptr %75, align 8, !tbaa !9
  %3897 = load i64, ptr %69, align 8, !tbaa !9
  %3898 = add nsw i64 %3897, 1
  %3899 = load i64, ptr %46, align 8, !tbaa !9
  %3900 = mul nsw i64 %3898, %3899
  %3901 = add nsw i64 %3896, %3900
  store i64 %3901, ptr %54, align 8, !tbaa !9
  %3902 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3903 = load float, ptr %3902, align 4, !tbaa !11
  %3904 = load ptr, ptr %30, align 8, !tbaa !5
  %3905 = load i64, ptr %54, align 8, !tbaa !9
  %3906 = getelementptr inbounds %struct.complex, ptr %3904, i64 %3905
  %3907 = getelementptr inbounds %struct.complex, ptr %3906, i32 0, i32 0
  %3908 = load float, ptr %3907, align 4, !tbaa !11
  %3909 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3910 = load float, ptr %3909, align 4, !tbaa !14
  %3911 = load ptr, ptr %30, align 8, !tbaa !5
  %3912 = load i64, ptr %54, align 8, !tbaa !9
  %3913 = getelementptr inbounds %struct.complex, ptr %3911, i64 %3912
  %3914 = getelementptr inbounds %struct.complex, ptr %3913, i32 0, i32 1
  %3915 = load float, ptr %3914, align 4, !tbaa !14
  %3916 = fmul float %3910, %3915
  %3917 = fneg float %3916
  %3918 = call float @llvm.fmuladd.f32(float %3903, float %3908, float %3917)
  %3919 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %3918, ptr %3919, align 4, !tbaa !11
  %3920 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %3921 = load float, ptr %3920, align 4, !tbaa !11
  %3922 = load ptr, ptr %30, align 8, !tbaa !5
  %3923 = load i64, ptr %54, align 8, !tbaa !9
  %3924 = getelementptr inbounds %struct.complex, ptr %3922, i64 %3923
  %3925 = getelementptr inbounds %struct.complex, ptr %3924, i32 0, i32 1
  %3926 = load float, ptr %3925, align 4, !tbaa !14
  %3927 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %3928 = load float, ptr %3927, align 4, !tbaa !14
  %3929 = load ptr, ptr %30, align 8, !tbaa !5
  %3930 = load i64, ptr %54, align 8, !tbaa !9
  %3931 = getelementptr inbounds %struct.complex, ptr %3929, i64 %3930
  %3932 = getelementptr inbounds %struct.complex, ptr %3931, i32 0, i32 0
  %3933 = load float, ptr %3932, align 4, !tbaa !11
  %3934 = fmul float %3928, %3933
  %3935 = call float @llvm.fmuladd.f32(float %3921, float %3926, float %3934)
  %3936 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %3935, ptr %3936, align 4, !tbaa !14
  %3937 = load i64, ptr %75, align 8, !tbaa !9
  %3938 = load i64, ptr %69, align 8, !tbaa !9
  %3939 = load i64, ptr %46, align 8, !tbaa !9
  %3940 = mul nsw i64 %3938, %3939
  %3941 = add nsw i64 %3937, %3940
  store i64 %3941, ptr %55, align 8, !tbaa !9
  %3942 = load float, ptr %68, align 4, !tbaa !15
  %3943 = load ptr, ptr %30, align 8, !tbaa !5
  %3944 = load i64, ptr %55, align 8, !tbaa !9
  %3945 = getelementptr inbounds %struct.complex, ptr %3943, i64 %3944
  %3946 = getelementptr inbounds %struct.complex, ptr %3945, i32 0, i32 0
  %3947 = load float, ptr %3946, align 4, !tbaa !11
  %3948 = fmul float %3942, %3947
  %3949 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  store float %3948, ptr %3949, align 4, !tbaa !11
  %3950 = load float, ptr %68, align 4, !tbaa !15
  %3951 = load ptr, ptr %30, align 8, !tbaa !5
  %3952 = load i64, ptr %55, align 8, !tbaa !9
  %3953 = getelementptr inbounds %struct.complex, ptr %3951, i64 %3952
  %3954 = getelementptr inbounds %struct.complex, ptr %3953, i32 0, i32 1
  %3955 = load float, ptr %3954, align 4, !tbaa !14
  %3956 = fmul float %3950, %3955
  %3957 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  store float %3956, ptr %3957, align 4, !tbaa !14
  %3958 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %3959 = load float, ptr %3958, align 4, !tbaa !11
  %3960 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %3961 = load float, ptr %3960, align 4, !tbaa !11
  %3962 = fadd float %3959, %3961
  %3963 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %3962, ptr %3963, align 4, !tbaa !11
  %3964 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %3965 = load float, ptr %3964, align 4, !tbaa !14
  %3966 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %3967 = load float, ptr %3966, align 4, !tbaa !14
  %3968 = fadd float %3965, %3967
  %3969 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %3968, ptr %3969, align 4, !tbaa !14
  %3970 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %3971 = load float, ptr %3970, align 4, !tbaa !11
  %3972 = load ptr, ptr %30, align 8, !tbaa !5
  %3973 = load i64, ptr %53, align 8, !tbaa !9
  %3974 = getelementptr inbounds %struct.complex, ptr %3972, i64 %3973
  %3975 = getelementptr inbounds %struct.complex, ptr %3974, i32 0, i32 0
  store float %3971, ptr %3975, align 4, !tbaa !11
  %3976 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %3977 = load float, ptr %3976, align 4, !tbaa !14
  %3978 = load ptr, ptr %30, align 8, !tbaa !5
  %3979 = load i64, ptr %53, align 8, !tbaa !9
  %3980 = getelementptr inbounds %struct.complex, ptr %3978, i64 %3979
  %3981 = getelementptr inbounds %struct.complex, ptr %3980, i32 0, i32 1
  store float %3977, ptr %3981, align 4, !tbaa !14
  %3982 = load i64, ptr %75, align 8, !tbaa !9
  %3983 = load i64, ptr %69, align 8, !tbaa !9
  %3984 = add nsw i64 %3983, 1
  %3985 = load i64, ptr %46, align 8, !tbaa !9
  %3986 = mul nsw i64 %3984, %3985
  %3987 = add nsw i64 %3982, %3986
  store i64 %3987, ptr %53, align 8, !tbaa !9
  %3988 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  %3989 = load float, ptr %3988, align 4, !tbaa !11
  %3990 = load ptr, ptr %30, align 8, !tbaa !5
  %3991 = load i64, ptr %53, align 8, !tbaa !9
  %3992 = getelementptr inbounds %struct.complex, ptr %3990, i64 %3991
  %3993 = getelementptr inbounds %struct.complex, ptr %3992, i32 0, i32 0
  store float %3989, ptr %3993, align 4, !tbaa !11
  %3994 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  %3995 = load float, ptr %3994, align 4, !tbaa !14
  %3996 = load ptr, ptr %30, align 8, !tbaa !5
  %3997 = load i64, ptr %53, align 8, !tbaa !9
  %3998 = getelementptr inbounds %struct.complex, ptr %3996, i64 %3997
  %3999 = getelementptr inbounds %struct.complex, ptr %3998, i32 0, i32 1
  store float %3995, ptr %3999, align 4, !tbaa !14
  br label %4000

4000:                                             ; preds = %3802
  %4001 = load i64, ptr %75, align 8, !tbaa !9
  %4002 = add nsw i64 %4001, 1
  store i64 %4002, ptr %75, align 8, !tbaa !9
  br label %3798, !llvm.loop !25

4003:                                             ; preds = %3798
  %4004 = load i64, ptr %82, align 8, !tbaa !9
  %4005 = icmp ne i64 %4004, 0
  br i1 %4005, label %4006, label %4215

4006:                                             ; preds = %4003
  %4007 = load ptr, ptr %25, align 8, !tbaa !5
  %4008 = load i64, ptr %4007, align 8, !tbaa !9
  store i64 %4008, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %4009

4009:                                             ; preds = %4211, %4006
  %4010 = load i64, ptr %75, align 8, !tbaa !9
  %4011 = load i64, ptr %52, align 8, !tbaa !9
  %4012 = icmp sle i64 %4010, %4011
  br i1 %4012, label %4013, label %4214

4013:                                             ; preds = %4009
  %4014 = load i64, ptr %75, align 8, !tbaa !9
  %4015 = load i64, ptr %69, align 8, !tbaa !9
  %4016 = add nsw i64 %4015, 1
  %4017 = load i64, ptr %48, align 8, !tbaa !9
  %4018 = mul nsw i64 %4016, %4017
  %4019 = add nsw i64 %4014, %4018
  store i64 %4019, ptr %53, align 8, !tbaa !9
  %4020 = load float, ptr %68, align 4, !tbaa !15
  %4021 = load ptr, ptr %36, align 8, !tbaa !5
  %4022 = load i64, ptr %53, align 8, !tbaa !9
  %4023 = getelementptr inbounds %struct.complex, ptr %4021, i64 %4022
  %4024 = getelementptr inbounds %struct.complex, ptr %4023, i32 0, i32 0
  %4025 = load float, ptr %4024, align 4, !tbaa !11
  %4026 = fmul float %4020, %4025
  %4027 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %4026, ptr %4027, align 4, !tbaa !11
  %4028 = load float, ptr %68, align 4, !tbaa !15
  %4029 = load ptr, ptr %36, align 8, !tbaa !5
  %4030 = load i64, ptr %53, align 8, !tbaa !9
  %4031 = getelementptr inbounds %struct.complex, ptr %4029, i64 %4030
  %4032 = getelementptr inbounds %struct.complex, ptr %4031, i32 0, i32 1
  %4033 = load float, ptr %4032, align 4, !tbaa !14
  %4034 = fmul float %4028, %4033
  %4035 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %4034, ptr %4035, align 4, !tbaa !14
  %4036 = load i64, ptr %75, align 8, !tbaa !9
  %4037 = load i64, ptr %69, align 8, !tbaa !9
  %4038 = load i64, ptr %48, align 8, !tbaa !9
  %4039 = mul nsw i64 %4037, %4038
  %4040 = add nsw i64 %4036, %4039
  store i64 %4040, ptr %54, align 8, !tbaa !9
  %4041 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %4042 = load float, ptr %4041, align 4, !tbaa !11
  %4043 = load ptr, ptr %36, align 8, !tbaa !5
  %4044 = load i64, ptr %54, align 8, !tbaa !9
  %4045 = getelementptr inbounds %struct.complex, ptr %4043, i64 %4044
  %4046 = getelementptr inbounds %struct.complex, ptr %4045, i32 0, i32 0
  %4047 = load float, ptr %4046, align 4, !tbaa !11
  %4048 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %4049 = load float, ptr %4048, align 4, !tbaa !14
  %4050 = load ptr, ptr %36, align 8, !tbaa !5
  %4051 = load i64, ptr %54, align 8, !tbaa !9
  %4052 = getelementptr inbounds %struct.complex, ptr %4050, i64 %4051
  %4053 = getelementptr inbounds %struct.complex, ptr %4052, i32 0, i32 1
  %4054 = load float, ptr %4053, align 4, !tbaa !14
  %4055 = fmul float %4049, %4054
  %4056 = fneg float %4055
  %4057 = call float @llvm.fmuladd.f32(float %4042, float %4047, float %4056)
  %4058 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %4057, ptr %4058, align 4, !tbaa !11
  %4059 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 0
  %4060 = load float, ptr %4059, align 4, !tbaa !11
  %4061 = load ptr, ptr %36, align 8, !tbaa !5
  %4062 = load i64, ptr %54, align 8, !tbaa !9
  %4063 = getelementptr inbounds %struct.complex, ptr %4061, i64 %4062
  %4064 = getelementptr inbounds %struct.complex, ptr %4063, i32 0, i32 1
  %4065 = load float, ptr %4064, align 4, !tbaa !14
  %4066 = getelementptr inbounds %struct.complex, ptr %70, i32 0, i32 1
  %4067 = load float, ptr %4066, align 4, !tbaa !14
  %4068 = load ptr, ptr %36, align 8, !tbaa !5
  %4069 = load i64, ptr %54, align 8, !tbaa !9
  %4070 = getelementptr inbounds %struct.complex, ptr %4068, i64 %4069
  %4071 = getelementptr inbounds %struct.complex, ptr %4070, i32 0, i32 0
  %4072 = load float, ptr %4071, align 4, !tbaa !11
  %4073 = fmul float %4067, %4072
  %4074 = call float @llvm.fmuladd.f32(float %4060, float %4065, float %4073)
  %4075 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %4074, ptr %4075, align 4, !tbaa !14
  %4076 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %4077 = load float, ptr %4076, align 4, !tbaa !11
  %4078 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %4079 = load float, ptr %4078, align 4, !tbaa !11
  %4080 = fadd float %4077, %4079
  %4081 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %4080, ptr %4081, align 4, !tbaa !11
  %4082 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %4083 = load float, ptr %4082, align 4, !tbaa !14
  %4084 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %4085 = load float, ptr %4084, align 4, !tbaa !14
  %4086 = fadd float %4083, %4085
  %4087 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %4086, ptr %4087, align 4, !tbaa !14
  %4088 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %4089 = load float, ptr %4088, align 4, !tbaa !11
  %4090 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  store float %4089, ptr %4090, align 4, !tbaa !11
  %4091 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %4092 = load float, ptr %4091, align 4, !tbaa !14
  %4093 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  store float %4092, ptr %4093, align 4, !tbaa !14
  %4094 = load i64, ptr %75, align 8, !tbaa !9
  %4095 = load i64, ptr %69, align 8, !tbaa !9
  %4096 = load i64, ptr %48, align 8, !tbaa !9
  %4097 = mul nsw i64 %4095, %4096
  %4098 = add nsw i64 %4094, %4097
  store i64 %4098, ptr %53, align 8, !tbaa !9
  call void @r_cnjg(ptr noundef %65, ptr noundef %70)
  %4099 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %4100 = load float, ptr %4099, align 4, !tbaa !11
  %4101 = fneg float %4100
  %4102 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  store float %4101, ptr %4102, align 4, !tbaa !11
  %4103 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %4104 = load float, ptr %4103, align 4, !tbaa !14
  %4105 = fneg float %4104
  %4106 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  store float %4105, ptr %4106, align 4, !tbaa !14
  %4107 = load i64, ptr %75, align 8, !tbaa !9
  %4108 = load i64, ptr %69, align 8, !tbaa !9
  %4109 = add nsw i64 %4108, 1
  %4110 = load i64, ptr %48, align 8, !tbaa !9
  %4111 = mul nsw i64 %4109, %4110
  %4112 = add nsw i64 %4107, %4111
  store i64 %4112, ptr %54, align 8, !tbaa !9
  %4113 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %4114 = load float, ptr %4113, align 4, !tbaa !11
  %4115 = load ptr, ptr %36, align 8, !tbaa !5
  %4116 = load i64, ptr %54, align 8, !tbaa !9
  %4117 = getelementptr inbounds %struct.complex, ptr %4115, i64 %4116
  %4118 = getelementptr inbounds %struct.complex, ptr %4117, i32 0, i32 0
  %4119 = load float, ptr %4118, align 4, !tbaa !11
  %4120 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %4121 = load float, ptr %4120, align 4, !tbaa !14
  %4122 = load ptr, ptr %36, align 8, !tbaa !5
  %4123 = load i64, ptr %54, align 8, !tbaa !9
  %4124 = getelementptr inbounds %struct.complex, ptr %4122, i64 %4123
  %4125 = getelementptr inbounds %struct.complex, ptr %4124, i32 0, i32 1
  %4126 = load float, ptr %4125, align 4, !tbaa !14
  %4127 = fmul float %4121, %4126
  %4128 = fneg float %4127
  %4129 = call float @llvm.fmuladd.f32(float %4114, float %4119, float %4128)
  %4130 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %4129, ptr %4130, align 4, !tbaa !11
  %4131 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 0
  %4132 = load float, ptr %4131, align 4, !tbaa !11
  %4133 = load ptr, ptr %36, align 8, !tbaa !5
  %4134 = load i64, ptr %54, align 8, !tbaa !9
  %4135 = getelementptr inbounds %struct.complex, ptr %4133, i64 %4134
  %4136 = getelementptr inbounds %struct.complex, ptr %4135, i32 0, i32 1
  %4137 = load float, ptr %4136, align 4, !tbaa !14
  %4138 = getelementptr inbounds %struct.complex, ptr %64, i32 0, i32 1
  %4139 = load float, ptr %4138, align 4, !tbaa !14
  %4140 = load ptr, ptr %36, align 8, !tbaa !5
  %4141 = load i64, ptr %54, align 8, !tbaa !9
  %4142 = getelementptr inbounds %struct.complex, ptr %4140, i64 %4141
  %4143 = getelementptr inbounds %struct.complex, ptr %4142, i32 0, i32 0
  %4144 = load float, ptr %4143, align 4, !tbaa !11
  %4145 = fmul float %4139, %4144
  %4146 = call float @llvm.fmuladd.f32(float %4132, float %4137, float %4145)
  %4147 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %4146, ptr %4147, align 4, !tbaa !14
  %4148 = load i64, ptr %75, align 8, !tbaa !9
  %4149 = load i64, ptr %69, align 8, !tbaa !9
  %4150 = load i64, ptr %48, align 8, !tbaa !9
  %4151 = mul nsw i64 %4149, %4150
  %4152 = add nsw i64 %4148, %4151
  store i64 %4152, ptr %55, align 8, !tbaa !9
  %4153 = load float, ptr %68, align 4, !tbaa !15
  %4154 = load ptr, ptr %36, align 8, !tbaa !5
  %4155 = load i64, ptr %55, align 8, !tbaa !9
  %4156 = getelementptr inbounds %struct.complex, ptr %4154, i64 %4155
  %4157 = getelementptr inbounds %struct.complex, ptr %4156, i32 0, i32 0
  %4158 = load float, ptr %4157, align 4, !tbaa !11
  %4159 = fmul float %4153, %4158
  %4160 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  store float %4159, ptr %4160, align 4, !tbaa !11
  %4161 = load float, ptr %68, align 4, !tbaa !15
  %4162 = load ptr, ptr %36, align 8, !tbaa !5
  %4163 = load i64, ptr %55, align 8, !tbaa !9
  %4164 = getelementptr inbounds %struct.complex, ptr %4162, i64 %4163
  %4165 = getelementptr inbounds %struct.complex, ptr %4164, i32 0, i32 1
  %4166 = load float, ptr %4165, align 4, !tbaa !14
  %4167 = fmul float %4161, %4166
  %4168 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  store float %4167, ptr %4168, align 4, !tbaa !14
  %4169 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  %4170 = load float, ptr %4169, align 4, !tbaa !11
  %4171 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %4172 = load float, ptr %4171, align 4, !tbaa !11
  %4173 = fadd float %4170, %4172
  %4174 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %4173, ptr %4174, align 4, !tbaa !11
  %4175 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  %4176 = load float, ptr %4175, align 4, !tbaa !14
  %4177 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %4178 = load float, ptr %4177, align 4, !tbaa !14
  %4179 = fadd float %4176, %4178
  %4180 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %4179, ptr %4180, align 4, !tbaa !14
  %4181 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %4182 = load float, ptr %4181, align 4, !tbaa !11
  %4183 = load ptr, ptr %36, align 8, !tbaa !5
  %4184 = load i64, ptr %53, align 8, !tbaa !9
  %4185 = getelementptr inbounds %struct.complex, ptr %4183, i64 %4184
  %4186 = getelementptr inbounds %struct.complex, ptr %4185, i32 0, i32 0
  store float %4182, ptr %4186, align 4, !tbaa !11
  %4187 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %4188 = load float, ptr %4187, align 4, !tbaa !14
  %4189 = load ptr, ptr %36, align 8, !tbaa !5
  %4190 = load i64, ptr %53, align 8, !tbaa !9
  %4191 = getelementptr inbounds %struct.complex, ptr %4189, i64 %4190
  %4192 = getelementptr inbounds %struct.complex, ptr %4191, i32 0, i32 1
  store float %4188, ptr %4192, align 4, !tbaa !14
  %4193 = load i64, ptr %75, align 8, !tbaa !9
  %4194 = load i64, ptr %69, align 8, !tbaa !9
  %4195 = add nsw i64 %4194, 1
  %4196 = load i64, ptr %48, align 8, !tbaa !9
  %4197 = mul nsw i64 %4195, %4196
  %4198 = add nsw i64 %4193, %4197
  store i64 %4198, ptr %53, align 8, !tbaa !9
  %4199 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 0
  %4200 = load float, ptr %4199, align 4, !tbaa !11
  %4201 = load ptr, ptr %36, align 8, !tbaa !5
  %4202 = load i64, ptr %53, align 8, !tbaa !9
  %4203 = getelementptr inbounds %struct.complex, ptr %4201, i64 %4202
  %4204 = getelementptr inbounds %struct.complex, ptr %4203, i32 0, i32 0
  store float %4200, ptr %4204, align 4, !tbaa !11
  %4205 = getelementptr inbounds %struct.complex, ptr %90, i32 0, i32 1
  %4206 = load float, ptr %4205, align 4, !tbaa !14
  %4207 = load ptr, ptr %36, align 8, !tbaa !5
  %4208 = load i64, ptr %53, align 8, !tbaa !9
  %4209 = getelementptr inbounds %struct.complex, ptr %4207, i64 %4208
  %4210 = getelementptr inbounds %struct.complex, ptr %4209, i32 0, i32 1
  store float %4206, ptr %4210, align 4, !tbaa !14
  br label %4211

4211:                                             ; preds = %4013
  %4212 = load i64, ptr %75, align 8, !tbaa !9
  %4213 = add nsw i64 %4212, 1
  store i64 %4213, ptr %75, align 8, !tbaa !9
  br label %4009, !llvm.loop !26

4214:                                             ; preds = %4009
  br label %4215

4215:                                             ; preds = %4214, %4003
  br label %4216

4216:                                             ; preds = %4215
  %4217 = load i64, ptr %69, align 8, !tbaa !9
  %4218 = add nsw i64 %4217, 1
  store i64 %4218, ptr %69, align 8, !tbaa !9
  br label %2849, !llvm.loop !27

4219:                                             ; preds = %2849
  br label %4220

4220:                                             ; preds = %4219, %1934
  br label %4221

4221:                                             ; preds = %4220
  %4222 = load i64, ptr %93, align 8, !tbaa !9
  %4223 = add nsw i64 %4222, 1
  store i64 %4223, ptr %93, align 8, !tbaa !9
  br label %738, !llvm.loop !28

4224:                                             ; preds = %738
  br label %4225

4225:                                             ; preds = %4224, %746
  %4226 = load i64, ptr %92, align 8, !tbaa !9
  %4227 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 %4226, ptr %4227, align 8, !tbaa !9
  br label %4449

4228:                                             ; preds = %1919, %713
  %4229 = load ptr, ptr %26, align 8, !tbaa !5
  %4230 = load i64, ptr %4229, align 8, !tbaa !9
  %4231 = sub nsw i64 %4230, 1
  store i64 %4231, ptr %50, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %4232

4232:                                             ; preds = %4444, %4228
  %4233 = load i64, ptr %69, align 8, !tbaa !9
  %4234 = load i64, ptr %50, align 8, !tbaa !9
  %4235 = icmp sle i64 %4233, %4234
  br i1 %4235, label %4236, label %4447

4236:                                             ; preds = %4232
  %4237 = load ptr, ptr %30, align 8, !tbaa !5
  %4238 = load i64, ptr %69, align 8, !tbaa !9
  %4239 = load i64, ptr %69, align 8, !tbaa !9
  %4240 = load i64, ptr %46, align 8, !tbaa !9
  %4241 = mul nsw i64 %4239, %4240
  %4242 = add nsw i64 %4238, %4241
  %4243 = getelementptr inbounds %struct.complex, ptr %4237, i64 %4242
  %4244 = call double @c_abs(ptr noundef %4243)
  %4245 = fptrunc double %4244 to float
  store float %4245, ptr %85, align 4, !tbaa !15
  %4246 = load float, ptr %85, align 4, !tbaa !15
  %4247 = load float, ptr %105, align 4, !tbaa !15
  %4248 = fcmp ogt float %4246, %4247
  br i1 %4248, label %4249, label %4381

4249:                                             ; preds = %4236
  %4250 = load i64, ptr %69, align 8, !tbaa !9
  %4251 = load i64, ptr %69, align 8, !tbaa !9
  %4252 = load i64, ptr %46, align 8, !tbaa !9
  %4253 = mul nsw i64 %4251, %4252
  %4254 = add nsw i64 %4250, %4253
  store i64 %4254, ptr %51, align 8, !tbaa !9
  %4255 = load ptr, ptr %30, align 8, !tbaa !5
  %4256 = load i64, ptr %51, align 8, !tbaa !9
  %4257 = getelementptr inbounds %struct.complex, ptr %4255, i64 %4256
  %4258 = getelementptr inbounds %struct.complex, ptr %4257, i32 0, i32 0
  %4259 = load float, ptr %4258, align 4, !tbaa !11
  %4260 = load float, ptr %85, align 4, !tbaa !15
  %4261 = fdiv float %4259, %4260
  %4262 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 0
  store float %4261, ptr %4262, align 4, !tbaa !11
  %4263 = load ptr, ptr %30, align 8, !tbaa !5
  %4264 = load i64, ptr %51, align 8, !tbaa !9
  %4265 = getelementptr inbounds %struct.complex, ptr %4263, i64 %4264
  %4266 = getelementptr inbounds %struct.complex, ptr %4265, i32 0, i32 1
  %4267 = load float, ptr %4266, align 4, !tbaa !14
  %4268 = load float, ptr %85, align 4, !tbaa !15
  %4269 = fdiv float %4267, %4268
  %4270 = getelementptr inbounds %struct.complex, ptr %63, i32 0, i32 1
  store float %4269, ptr %4270, align 4, !tbaa !14
  call void @r_cnjg(ptr noundef %62, ptr noundef %63)
  %4271 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %4272 = load float, ptr %4271, align 4, !tbaa !11
  %4273 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 0
  store float %4272, ptr %4273, align 4, !tbaa !11
  %4274 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %4275 = load float, ptr %4274, align 4, !tbaa !14
  %4276 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 1
  store float %4275, ptr %4276, align 4, !tbaa !14
  %4277 = load i64, ptr %69, align 8, !tbaa !9
  %4278 = load i64, ptr %69, align 8, !tbaa !9
  %4279 = load i64, ptr %46, align 8, !tbaa !9
  %4280 = mul nsw i64 %4278, %4279
  %4281 = add nsw i64 %4277, %4280
  store i64 %4281, ptr %51, align 8, !tbaa !9
  %4282 = load float, ptr %85, align 4, !tbaa !15
  %4283 = load ptr, ptr %30, align 8, !tbaa !5
  %4284 = load i64, ptr %51, align 8, !tbaa !9
  %4285 = getelementptr inbounds %struct.complex, ptr %4283, i64 %4284
  %4286 = getelementptr inbounds %struct.complex, ptr %4285, i32 0, i32 0
  store float %4282, ptr %4286, align 4, !tbaa !11
  %4287 = load ptr, ptr %30, align 8, !tbaa !5
  %4288 = load i64, ptr %51, align 8, !tbaa !9
  %4289 = getelementptr inbounds %struct.complex, ptr %4287, i64 %4288
  %4290 = getelementptr inbounds %struct.complex, ptr %4289, i32 0, i32 1
  store float 0.000000e+00, ptr %4290, align 4, !tbaa !14
  %4291 = load i64, ptr %107, align 8, !tbaa !9
  %4292 = icmp ne i64 %4291, 0
  br i1 %4292, label %4293, label %4310

4293:                                             ; preds = %4249
  %4294 = load i64, ptr %69, align 8, !tbaa !9
  %4295 = sub nsw i64 %4294, 1
  store i64 %4295, ptr %51, align 8, !tbaa !9
  %4296 = load ptr, ptr %30, align 8, !tbaa !5
  %4297 = load i64, ptr %69, align 8, !tbaa !9
  %4298 = load i64, ptr %46, align 8, !tbaa !9
  %4299 = mul nsw i64 %4297, %4298
  %4300 = add nsw i64 %4299, 1
  %4301 = getelementptr inbounds %struct.complex, ptr %4296, i64 %4300
  %4302 = call i32 @f2c_cscal(ptr noundef %51, ptr noundef %104, ptr noundef %4301, ptr noundef @c__1)
  %4303 = load ptr, ptr %28, align 8, !tbaa !5
  %4304 = load i64, ptr %69, align 8, !tbaa !9
  %4305 = load i64, ptr %42, align 8, !tbaa !9
  %4306 = mul nsw i64 %4304, %4305
  %4307 = add nsw i64 %4306, 1
  %4308 = getelementptr inbounds %struct.complex, ptr %4303, i64 %4307
  %4309 = call i32 @f2c_cscal(ptr noundef %69, ptr noundef %104, ptr noundef %4308, ptr noundef @c__1)
  br label %4368

4310:                                             ; preds = %4249
  %4311 = load i64, ptr %69, align 8, !tbaa !9
  %4312 = load i64, ptr %69, align 8, !tbaa !9
  %4313 = load i64, ptr %42, align 8, !tbaa !9
  %4314 = mul nsw i64 %4312, %4313
  %4315 = add nsw i64 %4311, %4314
  store i64 %4315, ptr %51, align 8, !tbaa !9
  %4316 = load i64, ptr %69, align 8, !tbaa !9
  %4317 = load i64, ptr %69, align 8, !tbaa !9
  %4318 = load i64, ptr %42, align 8, !tbaa !9
  %4319 = mul nsw i64 %4317, %4318
  %4320 = add nsw i64 %4316, %4319
  store i64 %4320, ptr %52, align 8, !tbaa !9
  %4321 = load ptr, ptr %28, align 8, !tbaa !5
  %4322 = load i64, ptr %52, align 8, !tbaa !9
  %4323 = getelementptr inbounds %struct.complex, ptr %4321, i64 %4322
  %4324 = getelementptr inbounds %struct.complex, ptr %4323, i32 0, i32 0
  %4325 = load float, ptr %4324, align 4, !tbaa !11
  %4326 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 0
  %4327 = load float, ptr %4326, align 4, !tbaa !11
  %4328 = load ptr, ptr %28, align 8, !tbaa !5
  %4329 = load i64, ptr %52, align 8, !tbaa !9
  %4330 = getelementptr inbounds %struct.complex, ptr %4328, i64 %4329
  %4331 = getelementptr inbounds %struct.complex, ptr %4330, i32 0, i32 1
  %4332 = load float, ptr %4331, align 4, !tbaa !14
  %4333 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 1
  %4334 = load float, ptr %4333, align 4, !tbaa !14
  %4335 = fmul float %4332, %4334
  %4336 = fneg float %4335
  %4337 = call float @llvm.fmuladd.f32(float %4325, float %4327, float %4336)
  %4338 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %4337, ptr %4338, align 4, !tbaa !11
  %4339 = load ptr, ptr %28, align 8, !tbaa !5
  %4340 = load i64, ptr %52, align 8, !tbaa !9
  %4341 = getelementptr inbounds %struct.complex, ptr %4339, i64 %4340
  %4342 = getelementptr inbounds %struct.complex, ptr %4341, i32 0, i32 0
  %4343 = load float, ptr %4342, align 4, !tbaa !11
  %4344 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 1
  %4345 = load float, ptr %4344, align 4, !tbaa !14
  %4346 = load ptr, ptr %28, align 8, !tbaa !5
  %4347 = load i64, ptr %52, align 8, !tbaa !9
  %4348 = getelementptr inbounds %struct.complex, ptr %4346, i64 %4347
  %4349 = getelementptr inbounds %struct.complex, ptr %4348, i32 0, i32 1
  %4350 = load float, ptr %4349, align 4, !tbaa !14
  %4351 = getelementptr inbounds %struct.complex, ptr %104, i32 0, i32 0
  %4352 = load float, ptr %4351, align 4, !tbaa !11
  %4353 = fmul float %4350, %4352
  %4354 = call float @llvm.fmuladd.f32(float %4343, float %4345, float %4353)
  %4355 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float %4354, ptr %4355, align 4, !tbaa !14
  %4356 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %4357 = load float, ptr %4356, align 4, !tbaa !11
  %4358 = load ptr, ptr %28, align 8, !tbaa !5
  %4359 = load i64, ptr %51, align 8, !tbaa !9
  %4360 = getelementptr inbounds %struct.complex, ptr %4358, i64 %4359
  %4361 = getelementptr inbounds %struct.complex, ptr %4360, i32 0, i32 0
  store float %4357, ptr %4361, align 4, !tbaa !11
  %4362 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %4363 = load float, ptr %4362, align 4, !tbaa !14
  %4364 = load ptr, ptr %28, align 8, !tbaa !5
  %4365 = load i64, ptr %51, align 8, !tbaa !9
  %4366 = getelementptr inbounds %struct.complex, ptr %4364, i64 %4365
  %4367 = getelementptr inbounds %struct.complex, ptr %4366, i32 0, i32 1
  store float %4363, ptr %4367, align 4, !tbaa !14
  br label %4368

4368:                                             ; preds = %4310, %4293
  %4369 = load i64, ptr %82, align 8, !tbaa !9
  %4370 = icmp ne i64 %4369, 0
  br i1 %4370, label %4371, label %4380

4371:                                             ; preds = %4368
  %4372 = load ptr, ptr %25, align 8, !tbaa !5
  %4373 = load ptr, ptr %36, align 8, !tbaa !5
  %4374 = load i64, ptr %69, align 8, !tbaa !9
  %4375 = load i64, ptr %48, align 8, !tbaa !9
  %4376 = mul nsw i64 %4374, %4375
  %4377 = add nsw i64 %4376, 1
  %4378 = getelementptr inbounds %struct.complex, ptr %4373, i64 %4377
  %4379 = call i32 @f2c_cscal(ptr noundef %4372, ptr noundef %104, ptr noundef %4378, ptr noundef @c__1)
  br label %4380

4380:                                             ; preds = %4371, %4368
  br label %4395

4381:                                             ; preds = %4236
  %4382 = load i64, ptr %69, align 8, !tbaa !9
  %4383 = load i64, ptr %69, align 8, !tbaa !9
  %4384 = load i64, ptr %46, align 8, !tbaa !9
  %4385 = mul nsw i64 %4383, %4384
  %4386 = add nsw i64 %4382, %4385
  store i64 %4386, ptr %51, align 8, !tbaa !9
  %4387 = load ptr, ptr %30, align 8, !tbaa !5
  %4388 = load i64, ptr %51, align 8, !tbaa !9
  %4389 = getelementptr inbounds %struct.complex, ptr %4387, i64 %4388
  %4390 = getelementptr inbounds %struct.complex, ptr %4389, i32 0, i32 0
  store float 0.000000e+00, ptr %4390, align 4, !tbaa !11
  %4391 = load ptr, ptr %30, align 8, !tbaa !5
  %4392 = load i64, ptr %51, align 8, !tbaa !9
  %4393 = getelementptr inbounds %struct.complex, ptr %4391, i64 %4392
  %4394 = getelementptr inbounds %struct.complex, ptr %4393, i32 0, i32 1
  store float 0.000000e+00, ptr %4394, align 4, !tbaa !14
  br label %4395

4395:                                             ; preds = %4381, %4380
  %4396 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %4396, ptr %51, align 8, !tbaa !9
  %4397 = load i64, ptr %69, align 8, !tbaa !9
  %4398 = load i64, ptr %69, align 8, !tbaa !9
  %4399 = load i64, ptr %42, align 8, !tbaa !9
  %4400 = mul nsw i64 %4398, %4399
  %4401 = add nsw i64 %4397, %4400
  store i64 %4401, ptr %52, align 8, !tbaa !9
  %4402 = load ptr, ptr %28, align 8, !tbaa !5
  %4403 = load i64, ptr %52, align 8, !tbaa !9
  %4404 = getelementptr inbounds %struct.complex, ptr %4402, i64 %4403
  %4405 = getelementptr inbounds %struct.complex, ptr %4404, i32 0, i32 0
  %4406 = load float, ptr %4405, align 4, !tbaa !11
  %4407 = load ptr, ptr %32, align 8, !tbaa !5
  %4408 = load i64, ptr %51, align 8, !tbaa !9
  %4409 = getelementptr inbounds %struct.complex, ptr %4407, i64 %4408
  %4410 = getelementptr inbounds %struct.complex, ptr %4409, i32 0, i32 0
  store float %4406, ptr %4410, align 4, !tbaa !11
  %4411 = load ptr, ptr %28, align 8, !tbaa !5
  %4412 = load i64, ptr %52, align 8, !tbaa !9
  %4413 = getelementptr inbounds %struct.complex, ptr %4411, i64 %4412
  %4414 = getelementptr inbounds %struct.complex, ptr %4413, i32 0, i32 1
  %4415 = load float, ptr %4414, align 4, !tbaa !14
  %4416 = load ptr, ptr %32, align 8, !tbaa !5
  %4417 = load i64, ptr %51, align 8, !tbaa !9
  %4418 = getelementptr inbounds %struct.complex, ptr %4416, i64 %4417
  %4419 = getelementptr inbounds %struct.complex, ptr %4418, i32 0, i32 1
  store float %4415, ptr %4419, align 4, !tbaa !14
  %4420 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %4420, ptr %51, align 8, !tbaa !9
  %4421 = load i64, ptr %69, align 8, !tbaa !9
  %4422 = load i64, ptr %69, align 8, !tbaa !9
  %4423 = load i64, ptr %46, align 8, !tbaa !9
  %4424 = mul nsw i64 %4422, %4423
  %4425 = add nsw i64 %4421, %4424
  store i64 %4425, ptr %52, align 8, !tbaa !9
  %4426 = load ptr, ptr %30, align 8, !tbaa !5
  %4427 = load i64, ptr %52, align 8, !tbaa !9
  %4428 = getelementptr inbounds %struct.complex, ptr %4426, i64 %4427
  %4429 = getelementptr inbounds %struct.complex, ptr %4428, i32 0, i32 0
  %4430 = load float, ptr %4429, align 4, !tbaa !11
  %4431 = load ptr, ptr %33, align 8, !tbaa !5
  %4432 = load i64, ptr %51, align 8, !tbaa !9
  %4433 = getelementptr inbounds %struct.complex, ptr %4431, i64 %4432
  %4434 = getelementptr inbounds %struct.complex, ptr %4433, i32 0, i32 0
  store float %4430, ptr %4434, align 4, !tbaa !11
  %4435 = load ptr, ptr %30, align 8, !tbaa !5
  %4436 = load i64, ptr %52, align 8, !tbaa !9
  %4437 = getelementptr inbounds %struct.complex, ptr %4435, i64 %4436
  %4438 = getelementptr inbounds %struct.complex, ptr %4437, i32 0, i32 1
  %4439 = load float, ptr %4438, align 4, !tbaa !14
  %4440 = load ptr, ptr %33, align 8, !tbaa !5
  %4441 = load i64, ptr %51, align 8, !tbaa !9
  %4442 = getelementptr inbounds %struct.complex, ptr %4440, i64 %4441
  %4443 = getelementptr inbounds %struct.complex, ptr %4442, i32 0, i32 1
  store float %4439, ptr %4443, align 4, !tbaa !14
  br label %4444

4444:                                             ; preds = %4395
  %4445 = load i64, ptr %69, align 8, !tbaa !9
  %4446 = add nsw i64 %4445, 1
  store i64 %4446, ptr %69, align 8, !tbaa !9
  br label %4232, !llvm.loop !29

4447:                                             ; preds = %4232
  %4448 = load ptr, ptr %41, align 8, !tbaa !5
  store i64 0, ptr %4448, align 8, !tbaa !9
  br label %4449

4449:                                             ; preds = %4447, %4225, %1587
  %4450 = load ptr, ptr %25, align 8, !tbaa !5
  %4451 = load i64, ptr %4450, align 8, !tbaa !9
  %4452 = sitofp i64 %4451 to float
  %4453 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  store float %4452, ptr %4453, align 4, !tbaa !11
  %4454 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  store float 0.000000e+00, ptr %4454, align 4, !tbaa !14
  %4455 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 0
  %4456 = load float, ptr %4455, align 4, !tbaa !11
  %4457 = load ptr, ptr %38, align 8, !tbaa !5
  %4458 = getelementptr inbounds %struct.complex, ptr %4457, i64 1
  %4459 = getelementptr inbounds %struct.complex, ptr %4458, i32 0, i32 0
  store float %4456, ptr %4459, align 4, !tbaa !11
  %4460 = getelementptr inbounds %struct.complex, ptr %62, i32 0, i32 1
  %4461 = load float, ptr %4460, align 4, !tbaa !14
  %4462 = load ptr, ptr %38, align 8, !tbaa !5
  %4463 = getelementptr inbounds %struct.complex, ptr %4462, i64 1
  %4464 = getelementptr inbounds %struct.complex, ptr %4463, i32 0, i32 1
  store float %4461, ptr %4464, align 4, !tbaa !14
  store i32 0, ptr %21, align 4
  store i32 1, ptr %118, align 4
  br label %4465

4465:                                             ; preds = %4449, %363, %357, %349
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  %4466 = load i32, ptr %21, align 4
  ret i32 %4466
}

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

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

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

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

declare double @slamch_(ptr noundef) #2

declare double @clanhs_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare double @c_abs(ptr noundef) #2

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

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

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

declare double @r_imag(ptr noundef) #2

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

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

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

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !13, i64 0}
!12 = !{!"", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!12, !13, i64 4}
!15 = !{!13, !13, i64 0}
!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}
!25 = distinct !{!25, !17}
!26 = distinct !{!26, !17}
!27 = distinct !{!27, !17}
!28 = distinct !{!28, !17}
!29 = distinct !{!29, !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 }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @chgeqz_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr nocapture noundef writeonly %10, ptr nocapture noundef writeonly %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr nocapture noundef writeonly %16, ptr nocapture noundef readonly %17, ptr noundef %18, ptr nocapture noundef writeonly %19) local_unnamed_addr #0 {
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca %struct.complex, align 8
  %25 = alloca %struct.complex, align 8
  %26 = alloca %struct.complex, align 8
  %27 = alloca %struct.complex, align 8
  %28 = alloca %struct.complex, align 8
  %29 = alloca float, align 4
  %30 = alloca i64, align 8
  %31 = alloca %struct.complex, align 8
  %32 = alloca %struct.complex, align 8
  %33 = alloca i64, align 8
  %34 = alloca %struct.complex, align 8
  %35 = alloca %struct.complex, align 8
  %36 = alloca %struct.complex, align 4
  %37 = alloca %struct.complex, align 8
  %38 = alloca %struct.complex, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #5
  %39 = load i64, ptr %7, align 8, !tbaa !5
  %40 = xor i64 %39, -1
  %41 = getelementptr inbounds %struct.complex, ptr %6, i64 %40
  %42 = load i64, ptr %9, align 8, !tbaa !5
  %43 = xor i64 %42, -1
  %44 = getelementptr inbounds %struct.complex, ptr %8, i64 %43
  %45 = getelementptr inbounds i8, ptr %10, i64 -8
  %46 = getelementptr inbounds i8, ptr %11, i64 -8
  %47 = load i64, ptr %13, align 8, !tbaa !5
  %48 = xor i64 %47, -1
  %49 = getelementptr inbounds %struct.complex, ptr %12, i64 %48
  %50 = load i64, ptr %15, align 8, !tbaa !5
  %51 = xor i64 %50, -1
  %52 = getelementptr inbounds %struct.complex, ptr %14, i64 %51
  %53 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %.not.not = icmp eq i64 %53, 0
  br i1 %.not.not, label %54, label %56

54:                                               ; preds = %20
  %55 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not1238 = icmp eq i64 %55, 0
  br label %56

56:                                               ; preds = %54, %20
  %57 = phi i1 [ false, %20 ], [ %.not1238, %54 ]
  %58 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #5
  %.not1239.not = icmp eq i64 %58, 0
  br i1 %.not1239.not, label %59, label %63

59:                                               ; preds = %56
  %60 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #5
  %.not1240 = icmp eq i64 %60, 0
  br i1 %.not1240, label %61, label %63

61:                                               ; preds = %59
  %62 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #5
  %.not1241 = icmp eq i64 %62, 0
  %not..not1241 = xor i1 %.not1241, true
  br label %63

63:                                               ; preds = %61, %59, %56
  %64 = phi i1 [ false, %56 ], [ false, %59 ], [ %.not1241, %61 ]
  %65 = phi i1 [ false, %56 ], [ false, %59 ], [ %not..not1241, %61 ]
  %66 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.2) #5
  %.not1242.not = icmp eq i64 %66, 0
  br i1 %.not1242.not, label %67, label %71

67:                                               ; preds = %63
  %68 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.3) #5
  %.not1243 = icmp eq i64 %68, 0
  br i1 %.not1243, label %69, label %71

69:                                               ; preds = %67
  %70 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.4) #5
  %.not1244 = icmp eq i64 %70, 0
  %not..not1244 = xor i1 %.not1244, true
  br label %71

71:                                               ; preds = %69, %67, %63
  %72 = phi i1 [ false, %63 ], [ false, %67 ], [ %.not1244, %69 ]
  %73 = phi i1 [ false, %63 ], [ false, %67 ], [ %not..not1244, %69 ]
  store i64 0, ptr %19, align 8, !tbaa !5
  %74 = load i64, ptr %3, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.smax.i64(i64 %74, i64 1)
  %75 = uitofp nneg i64 %spec.select to float
  store float %75, ptr %16, align 4, !tbaa !9
  %76 = getelementptr inbounds i8, ptr %16, i64 4
  store float 0.000000e+00, ptr %76, align 4, !tbaa !12
  %77 = load i64, ptr %17, align 8, !tbaa !5
  %78 = icmp eq i64 %77, -1
  %brmerge = select i1 %57, i1 true, i1 %64
  %brmerge1488 = select i1 %brmerge, i1 true, i1 %72
  %.mux = select i1 %64, i64 -2, i64 -3
  %.mux.mux = select i1 %57, i64 -1, i64 %.mux
  %.mux1487 = select i1 %64, i64 2, i64 3
  %.mux1487.mux = select i1 %57, i64 1, i64 %.mux1487
  br i1 %brmerge1488, label %.thread, label %79

79:                                               ; preds = %71
  %80 = icmp slt i64 %74, 0
  br i1 %80, label %.thread, label %81

81:                                               ; preds = %79
  %82 = load i64, ptr %4, align 8, !tbaa !5
  %83 = icmp slt i64 %82, 1
  br i1 %83, label %.thread, label %84

84:                                               ; preds = %81
  %85 = load i64, ptr %5, align 8, !tbaa !5
  %86 = icmp sgt i64 %85, %74
  %87 = add nsw i64 %82, -1
  %88 = icmp slt i64 %85, %87
  %or.cond1292 = select i1 %86, i1 true, i1 %88
  br i1 %or.cond1292, label %.thread, label %89

89:                                               ; preds = %84
  %90 = load i64, ptr %7, align 8, !tbaa !5
  %91 = icmp slt i64 %90, %74
  br i1 %91, label %.thread, label %92

92:                                               ; preds = %89
  %93 = load i64, ptr %9, align 8, !tbaa !5
  %94 = icmp slt i64 %93, %74
  br i1 %94, label %.thread, label %95

95:                                               ; preds = %92
  %96 = load i64, ptr %13, align 8, !tbaa !5
  %97 = icmp slt i64 %96, 1
  %98 = icmp ult i64 %96, %74
  %or.cond1293 = and i1 %.not1239.not, %98
  %or.cond1306 = select i1 %97, i1 true, i1 %or.cond1293
  br i1 %or.cond1306, label %.thread, label %99

99:                                               ; preds = %95
  %100 = load i64, ptr %15, align 8, !tbaa !5
  %101 = icmp slt i64 %100, 1
  %102 = icmp ult i64 %100, %74
  %or.cond1305 = select i1 %.not1242.not, i1 %102, i1 false
  %or.cond1307 = select i1 %101, i1 true, i1 %or.cond1305
  br i1 %or.cond1307, label %.thread, label %103

103:                                              ; preds = %99
  %104 = icmp sge i64 %77, %spec.select
  %or.cond = or i1 %104, %78
  br i1 %or.cond, label %106, label %.thread

.thread:                                          ; preds = %71, %103, %99, %95, %92, %89, %84, %81, %79
  %.sink = phi i64 [ %.mux.mux, %71 ], [ -4, %79 ], [ -5, %81 ], [ -6, %84 ], [ -8, %89 ], [ -10, %92 ], [ -14, %95 ], [ -16, %99 ], [ -18, %103 ]
  %.neg = phi i64 [ %.mux1487.mux, %71 ], [ 4, %79 ], [ 5, %81 ], [ 6, %84 ], [ 8, %89 ], [ 10, %92 ], [ 14, %95 ], [ 16, %99 ], [ 18, %103 ]
  store i64 %.sink, ptr %19, align 8, !tbaa !5
  store i64 %.neg, ptr %21, align 8, !tbaa !5
  %105 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %21) #5
  br label %1179

106:                                              ; preds = %103
  br i1 %78, label %1179, label %107

107:                                              ; preds = %106
  %108 = icmp eq i64 %74, 0
  br i1 %108, label %109, label %110

109:                                              ; preds = %107
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %16, align 4, !tbaa !13
  br label %1179

110:                                              ; preds = %107
  br i1 %65, label %111, label %113

111:                                              ; preds = %110
  %112 = tail call i32 @claset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %12, ptr noundef nonnull %13) #5
  br label %113

113:                                              ; preds = %111, %110
  br i1 %73, label %114, label %116

114:                                              ; preds = %113
  %115 = tail call i32 @claset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %14, ptr noundef nonnull %15) #5
  br label %116

116:                                              ; preds = %114, %113
  %117 = load i64, ptr %5, align 8, !tbaa !5
  %118 = add nsw i64 %117, 1
  %119 = load i64, ptr %4, align 8, !tbaa !5
  %120 = sub i64 %118, %119
  store i64 %120, ptr %33, align 8, !tbaa !5
  %121 = tail call double @slamch_(ptr noundef nonnull @.str.1) #5
  %122 = fptrunc double %121 to float
  %123 = tail call double @slamch_(ptr noundef nonnull @.str) #5
  %124 = tail call double @slamch_(ptr noundef nonnull @.str.7) #5
  %125 = fmul double %123, %124
  %126 = fptrunc double %125 to float
  %127 = load i64, ptr %4, align 8, !tbaa !5
  %128 = add i64 %39, 1
  %129 = mul i64 %127, %128
  %130 = getelementptr inbounds %struct.complex, ptr %41, i64 %129
  %131 = call double @clanhs_(ptr noundef nonnull @.str.8, ptr noundef nonnull %33, ptr noundef %130, ptr noundef nonnull %7, ptr noundef %18) #5
  %132 = fptrunc double %131 to float
  %133 = load i64, ptr %4, align 8, !tbaa !5
  %134 = add i64 %42, 1
  %135 = mul i64 %133, %134
  %136 = getelementptr inbounds %struct.complex, ptr %44, i64 %135
  %137 = call double @clanhs_(ptr noundef nonnull @.str.8, ptr noundef nonnull %33, ptr noundef %136, ptr noundef nonnull %9, ptr noundef %18) #5
  %138 = fptrunc double %137 to float
  %139 = fmul float %126, %132
  %140 = fcmp ole float %139, %122
  %141 = select i1 %140, float %122, float %139
  %142 = fpext float %141 to double
  %143 = fmul float %126, %138
  %144 = fcmp ole float %143, %122
  %145 = select i1 %144, float %122, float %143
  %146 = fpext float %145 to double
  %147 = fcmp oge float %122, %132
  %148 = select i1 %147, float %122, float %132
  %149 = fdiv float 1.000000e+00, %148
  %150 = fcmp oge float %122, %138
  %151 = select i1 %150, float %122, float %138
  %152 = fdiv float 1.000000e+00, %151
  %153 = load i64, ptr %3, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %44, i64 8
  %invariant.gep1319 = getelementptr i8, ptr %41, i64 8
  %invariant.gep1321 = getelementptr i8, ptr %52, i64 8
  %storemerge.in1323 = load i64, ptr %5, align 8, !tbaa !5
  %storemerge1324 = add nsw i64 %storemerge.in1323, 1
  store i64 %storemerge1324, ptr %30, align 8, !tbaa !5
  %.not1248.not1325 = icmp slt i64 %storemerge.in1323, %153
  br i1 %.not1248.not1325, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %116, %199
  %storemerge1326 = phi i64 [ %storemerge, %199 ], [ %storemerge1324, %116 ]
  %154 = mul i64 %storemerge1326, %134
  %155 = getelementptr inbounds %struct.complex, ptr %44, i64 %154
  %156 = call double @c_abs(ptr noundef %155) #5
  %157 = fptrunc double %156 to float
  %158 = fcmp ogt float %157, %122
  %159 = load i64, ptr %30, align 8, !tbaa !5
  %160 = mul i64 %159, %134
  br i1 %158, label %161, label %197

161:                                              ; preds = %.lr.ph
  store i64 %160, ptr %22, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.complex, ptr %44, i64 %160
  %163 = load <2 x float>, ptr %162, align 4, !tbaa !13
  %164 = insertelement <2 x float> poison, float %157, i64 0
  %165 = shufflevector <2 x float> %164, <2 x float> poison, <2 x i32> zeroinitializer
  %166 = fdiv <2 x float> %163, %165
  store <2 x float> %166, ptr %25, align 8, !tbaa !13
  call void @r_cnjg(ptr noundef nonnull %24, ptr noundef nonnull %25) #5
  %167 = load <2 x float>, ptr %24, align 8, !tbaa !13
  store <2 x float> %167, ptr %37, align 8, !tbaa !13
  %168 = load i64, ptr %30, align 8, !tbaa !5
  %169 = mul i64 %168, %134
  %170 = getelementptr inbounds %struct.complex, ptr %44, i64 %169
  store float %157, ptr %170, align 4, !tbaa !9
  %171 = getelementptr inbounds %struct.complex, ptr %44, i64 %169, i32 1
  store float 0.000000e+00, ptr %171, align 4, !tbaa !12
  br i1 %.not.not, label %172, label %179

172:                                              ; preds = %161
  %173 = add nsw i64 %168, -1
  store i64 %173, ptr %22, align 8, !tbaa !5
  %174 = mul nsw i64 %168, %42
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %174
  %175 = call i32 @f2c_cscal(ptr noundef nonnull %22, ptr noundef nonnull %37, ptr noundef %gep, ptr noundef nonnull @c__1) #5
  %176 = load i64, ptr %30, align 8, !tbaa !5
  %177 = mul nsw i64 %176, %39
  %gep1320 = getelementptr %struct.complex, ptr %invariant.gep1319, i64 %177
  %178 = call i32 @f2c_cscal(ptr noundef nonnull %30, ptr noundef nonnull %37, ptr noundef %gep1320, ptr noundef nonnull @c__1) #5
  %.pre1446.pre = load i64, ptr %30, align 8, !tbaa !5
  br label %193

179:                                              ; preds = %161
  %180 = mul i64 %168, %128
  store i64 %180, ptr %22, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.complex, ptr %41, i64 %180
  %182 = load float, ptr %181, align 4, !tbaa !9
  %183 = getelementptr inbounds i8, ptr %181, i64 4
  %184 = load float, ptr %183, align 4, !tbaa !12
  %185 = fneg float %184
  %186 = insertelement <2 x float> poison, float %184, i64 0
  %187 = insertelement <2 x float> %186, float %185, i64 1
  %188 = fmul <2 x float> %167, %187
  %189 = shufflevector <2 x float> %188, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %190 = insertelement <2 x float> poison, float %182, i64 0
  %191 = shufflevector <2 x float> %190, <2 x float> poison, <2 x i32> zeroinitializer
  %192 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %191, <2 x float> %167, <2 x float> %189)
  store <2 x float> %192, ptr %24, align 8, !tbaa !13
  store <2 x float> %192, ptr %181, align 4, !tbaa !13
  br label %193

193:                                              ; preds = %179, %172
  %.pre1446 = phi i64 [ %168, %179 ], [ %.pre1446.pre, %172 ]
  br i1 %.not1242.not, label %194, label %199

194:                                              ; preds = %193
  %195 = mul nsw i64 %.pre1446, %50
  %gep1322 = getelementptr %struct.complex, ptr %invariant.gep1321, i64 %195
  %196 = call i32 @f2c_cscal(ptr noundef nonnull %3, ptr noundef nonnull %37, ptr noundef %gep1322, ptr noundef nonnull @c__1) #5
  %.pre = load i64, ptr %30, align 8, !tbaa !5
  br label %199

197:                                              ; preds = %.lr.ph
  %198 = getelementptr inbounds %struct.complex, ptr %44, i64 %160
  store <2 x float> zeroinitializer, ptr %198, align 4, !tbaa !13
  br label %199

199:                                              ; preds = %193, %194, %197
  %storemerge.in = phi i64 [ %.pre1446, %193 ], [ %.pre, %194 ], [ %159, %197 ]
  %200 = mul i64 %storemerge.in, %128
  %201 = getelementptr inbounds %struct.complex, ptr %41, i64 %200
  %202 = getelementptr inbounds %struct.complex, ptr %45, i64 %storemerge.in
  %203 = load <2 x float>, ptr %201, align 4, !tbaa !13
  store <2 x float> %203, ptr %202, align 4, !tbaa !13
  store i64 %storemerge.in, ptr %22, align 8, !tbaa !5
  %204 = mul i64 %storemerge.in, %134
  %205 = getelementptr inbounds %struct.complex, ptr %44, i64 %204
  %206 = getelementptr inbounds %struct.complex, ptr %46, i64 %storemerge.in
  %207 = load <2 x float>, ptr %205, align 4, !tbaa !13
  store <2 x float> %207, ptr %206, align 4, !tbaa !13
  %storemerge = add nsw i64 %storemerge.in, 1
  store i64 %storemerge, ptr %30, align 8, !tbaa !5
  %.not1248.not = icmp slt i64 %storemerge.in, %153
  br i1 %.not1248.not, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !14

._crit_edge.loopexit:                             ; preds = %199
  %.pre1447 = load i64, ptr %5, align 8, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %116
  %208 = phi i64 [ %.pre1447, %._crit_edge.loopexit ], [ %storemerge.in1323, %116 ]
  %209 = load i64, ptr %4, align 8, !tbaa !5
  %210 = icmp slt i64 %208, %209
  br i1 %210, label %.loopexit1313, label %211

211:                                              ; preds = %._crit_edge
  br i1 %.not.not, label %212, label %214

212:                                              ; preds = %211
  %213 = load i64, ptr %3, align 8, !tbaa !5
  br label %214

214:                                              ; preds = %211, %212
  %.01192 = phi i64 [ %213, %212 ], [ %208, %211 ]
  %.01187 = phi i64 [ 1, %212 ], [ %209, %211 ]
  %215 = sub nsw i64 %208, %209
  %216 = mul i64 %215, 30
  %217 = add i64 %216, 30
  store i64 %217, ptr %21, align 8, !tbaa !5
  %.not12501403 = icmp slt i64 %217, 1
  br i1 %.not12501403, label %._crit_edge1419, label %.lr.ph1418

.lr.ph1418:                                       ; preds = %214
  %218 = fpext float %149 to double
  %219 = fmul float %149, %141
  %220 = fpext float %219 to double
  %invariant.gep1333 = getelementptr i8, ptr %49, i64 8
  %221 = getelementptr inbounds i8, ptr %24, i64 4
  %222 = getelementptr inbounds i8, ptr %27, i64 4
  %223 = getelementptr inbounds i8, ptr %31, i64 4
  %224 = insertelement <2 x float> poison, float %149, i64 0
  %225 = shufflevector <2 x float> %224, <2 x float> poison, <2 x i32> zeroinitializer
  %226 = insertelement <2 x float> poison, float %152, i64 0
  %227 = shufflevector <2 x float> %226, <2 x float> poison, <2 x i32> zeroinitializer
  br label %228

228:                                              ; preds = %.lr.ph1418, %.loopexit1309
  %.11415 = phi i64 [ %.01187, %.lr.ph1418 ], [ %.3, %.loopexit1309 ]
  %.111931412 = phi i64 [ %.01192, %.lr.ph1418 ], [ %.21194, %.loopexit1309 ]
  %.011991409 = phi i64 [ 1, %.lr.ph1418 ], [ %1116, %.loopexit1309 ]
  %.012001406 = phi i64 [ %208, %.lr.ph1418 ], [ %.11201, %.loopexit1309 ]
  %.012021405 = phi i64 [ 0, %.lr.ph1418 ], [ %.11203, %.loopexit1309 ]
  %229 = phi <2 x float> [ zeroinitializer, %.lr.ph1418 ], [ %1115, %.loopexit1309 ]
  %230 = load i64, ptr %4, align 8, !tbaa !5
  %231 = icmp eq i64 %.012001406, %230
  br i1 %231, label %523, label %232

232:                                              ; preds = %228
  %233 = add nsw i64 %.012001406, -1
  %234 = mul nsw i64 %233, %39
  %235 = add nsw i64 %234, %.012001406
  store i64 %235, ptr %22, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.complex, ptr %41, i64 %235
  %237 = load float, ptr %236, align 4, !tbaa !9
  %238 = call double @r_imag(ptr noundef nonnull %236) #5
  %239 = fptrunc double %238 to float
  %240 = insertelement <2 x float> poison, float %237, i64 0
  %241 = insertelement <2 x float> %240, float %239, i64 1
  %242 = fcmp oge <2 x float> %241, zeroinitializer
  %243 = fneg <2 x float> %241
  %244 = select <2 x i1> %242, <2 x float> %241, <2 x float> %243
  %245 = fpext <2 x float> %244 to <2 x double>
  %shift = shufflevector <2 x double> %245, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %246 = fadd <2 x double> %shift, %245
  %247 = extractelement <2 x double> %246, i64 0
  %248 = fcmp ugt double %247, %142
  br i1 %248, label %250, label %249

249:                                              ; preds = %232
  store i64 %235, ptr %22, align 8, !tbaa !5
  store <2 x float> zeroinitializer, ptr %236, align 4, !tbaa !13
  br label %523

250:                                              ; preds = %232
  %251 = mul nsw i64 %.012001406, %42
  %252 = getelementptr %struct.complex, ptr %44, i64 %251
  %253 = getelementptr %struct.complex, ptr %252, i64 %.012001406
  %254 = call double @c_abs(ptr noundef %253) #5
  %255 = fcmp ugt double %254, %146
  br i1 %255, label %257, label %256

256:                                              ; preds = %250
  store <2 x float> zeroinitializer, ptr %253, align 4, !tbaa !13
  br label %.loopexit1311

257:                                              ; preds = %250
  %258 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %258, ptr %22, align 8, !tbaa !5
  store i64 %233, ptr %30, align 8, !tbaa !5
  %.not12521327.not = icmp sgt i64 %.012001406, %258
  br i1 %.not12521327.not, label %.lr.ph1330, label %._crit_edge1331

.lr.ph1330:                                       ; preds = %257, %498
  %storemerge12511328 = phi i64 [ %499, %498 ], [ %233, %257 ]
  %259 = load i64, ptr %4, align 8, !tbaa !5
  %260 = icmp eq i64 %storemerge12511328, %259
  br i1 %260, label %.loopexit1471, label %261

261:                                              ; preds = %.lr.ph1330
  %262 = add nsw i64 %storemerge12511328, -1
  %263 = mul nsw i64 %262, %39
  %264 = getelementptr %struct.complex, ptr %41, i64 %storemerge12511328
  %265 = getelementptr %struct.complex, ptr %264, i64 %263
  %266 = load float, ptr %265, align 4, !tbaa !9
  %267 = call double @r_imag(ptr noundef nonnull %265) #5
  %268 = fptrunc double %267 to float
  %269 = insertelement <2 x float> poison, float %266, i64 0
  %270 = insertelement <2 x float> %269, float %268, i64 1
  %271 = fcmp oge <2 x float> %270, zeroinitializer
  %272 = fneg <2 x float> %270
  %273 = select <2 x i1> %271, <2 x float> %270, <2 x float> %272
  %274 = fpext <2 x float> %273 to <2 x double>
  %shift1508 = shufflevector <2 x double> %274, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %275 = fadd <2 x double> %shift1508, %274
  %276 = extractelement <2 x double> %275, i64 0
  %277 = fcmp ugt double %276, %142
  %.pre1448 = load i64, ptr %30, align 8, !tbaa !5
  br i1 %277, label %.thread1464, label %278

278:                                              ; preds = %261
  %279 = add nsw i64 %.pre1448, -1
  %280 = mul nsw i64 %279, %39
  %281 = getelementptr %struct.complex, ptr %41, i64 %.pre1448
  %282 = getelementptr %struct.complex, ptr %281, i64 %280
  store <2 x float> zeroinitializer, ptr %282, align 4, !tbaa !13
  br label %.loopexit1471

.loopexit1471:                                    ; preds = %.lr.ph1330, %278
  %283 = phi i64 [ %.pre1448, %278 ], [ %storemerge12511328, %.lr.ph1330 ]
  %284 = mul i64 %283, %134
  %285 = getelementptr inbounds %struct.complex, ptr %44, i64 %284
  %286 = call double @c_abs(ptr noundef %285) #5
  %287 = fcmp olt double %286, %146
  %288 = load i64, ptr %30, align 8, !tbaa !5
  br i1 %287, label %.thread1469, label %578

.thread1469:                                      ; preds = %.loopexit1471
  %289 = mul i64 %288, %134
  %290 = getelementptr inbounds %struct.complex, ptr %44, i64 %289
  store <2 x float> zeroinitializer, ptr %290, align 4, !tbaa !13
  br label %.thread1301

.thread1464:                                      ; preds = %261
  %291 = mul i64 %.pre1448, %134
  %292 = getelementptr inbounds %struct.complex, ptr %44, i64 %291
  %293 = call double @c_abs(ptr noundef %292) #5
  %294 = fcmp olt double %293, %146
  %295 = load i64, ptr %30, align 8, !tbaa !5
  br i1 %294, label %296, label %498

296:                                              ; preds = %.thread1464
  %297 = mul i64 %295, %134
  %298 = getelementptr inbounds %struct.complex, ptr %44, i64 %297
  store <2 x float> zeroinitializer, ptr %298, align 4, !tbaa !13
  %299 = add nsw i64 %295, -1
  %300 = mul nsw i64 %299, %39
  %301 = add nsw i64 %295, 1
  %302 = mul nsw i64 %295, %39
  %303 = add nsw i64 %301, %302
  store i64 %303, ptr %23, align 8, !tbaa !5
  %304 = mul i64 %295, %128
  %305 = getelementptr %struct.complex, ptr %41, i64 %295
  %306 = getelementptr %struct.complex, ptr %305, i64 %300
  %307 = load float, ptr %306, align 4, !tbaa !9
  %308 = call double @r_imag(ptr noundef nonnull %306) #5
  %309 = load i64, ptr %23, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.complex, ptr %41, i64 %309
  %311 = load float, ptr %310, align 4, !tbaa !9
  %312 = load i64, ptr %30, align 8, !tbaa !5
  %313 = mul nsw i64 %312, %39
  %gep1396 = getelementptr %struct.complex, ptr %invariant.gep1319, i64 %312
  %314 = getelementptr %struct.complex, ptr %gep1396, i64 %313
  %315 = call double @r_imag(ptr noundef %314) #5
  %316 = insertelement <2 x float> poison, float %307, i64 0
  %317 = insertelement <2 x float> %316, float %311, i64 1
  %318 = fcmp oge <2 x float> %317, zeroinitializer
  %319 = fneg <2 x float> %317
  %320 = select <2 x i1> %318, <2 x float> %317, <2 x float> %319
  %321 = fpext <2 x float> %320 to <2 x double>
  %322 = insertelement <2 x double> poison, double %308, i64 0
  %323 = insertelement <2 x double> %322, double %315, i64 1
  %324 = fptrunc <2 x double> %323 to <2 x float>
  %325 = fcmp oge <2 x float> %324, zeroinitializer
  %326 = fneg <2 x float> %324
  %327 = select <2 x i1> %325, <2 x float> %324, <2 x float> %326
  %328 = fpext <2 x float> %327 to <2 x double>
  %329 = fadd <2 x double> %321, %328
  %330 = extractelement <2 x double> %329, i64 1
  %331 = fmul double %330, %218
  %332 = extractelement <2 x double> %329, i64 0
  %333 = fmul double %332, %331
  %334 = getelementptr inbounds %struct.complex, ptr %41, i64 %304
  %335 = load float, ptr %334, align 4, !tbaa !9
  %336 = load i64, ptr %30, align 8, !tbaa !5
  %337 = mul i64 %336, %128
  %338 = getelementptr inbounds %struct.complex, ptr %41, i64 %337
  %339 = call double @r_imag(ptr noundef %338) #5
  %340 = fptrunc double %339 to float
  %341 = insertelement <2 x float> poison, float %335, i64 0
  %342 = insertelement <2 x float> %341, float %340, i64 1
  %343 = fcmp oge <2 x float> %342, zeroinitializer
  %344 = fneg <2 x float> %342
  %345 = select <2 x i1> %343, <2 x float> %342, <2 x float> %344
  %346 = fpext <2 x float> %345 to <2 x double>
  %shift1509 = shufflevector <2 x double> %346, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %347 = fadd <2 x double> %shift1509, %346
  %348 = extractelement <2 x double> %347, i64 0
  %349 = fmul double %348, %220
  %350 = fcmp ugt double %333, %349
  %.pre1449 = load i64, ptr %30, align 8, !tbaa !5
  br i1 %350, label %439, label %.thread1301

.thread1301:                                      ; preds = %.thread1469, %296
  %351 = phi i64 [ %.pre1449, %296 ], [ %288, %.thread1469 ]
  %.not1259.peel = phi i1 [ false, %296 ], [ true, %.thread1469 ]
  %.not1257.not1349 = icmp slt i64 %351, %.012001406
  br i1 %.not1257.not1349, label %.lr.ph1352.preheader, label %.loopexit1311

.lr.ph1352.preheader:                             ; preds = %.thread1301
  %352 = mul nsw i64 %351, %39
  %353 = add nsw i64 %352, %351
  store i64 %353, ptr %23, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.complex, ptr %41, i64 %353
  %355 = load <2 x float>, ptr %354, align 4, !tbaa !13
  store <2 x float> %355, ptr %34, align 8, !tbaa !13
  %356 = add nsw i64 %351, 1
  %357 = getelementptr %struct.complex, ptr %41, i64 %356
  %358 = getelementptr %struct.complex, ptr %357, i64 %352
  %359 = call i32 @clartg_(ptr noundef nonnull %34, ptr noundef %358, ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef nonnull %354) #5
  store <2 x float> zeroinitializer, ptr %358, align 4, !tbaa !13
  %360 = sub nsw i64 %.111931412, %351
  store i64 %360, ptr %23, align 8, !tbaa !5
  %361 = mul nsw i64 %356, %39
  %362 = getelementptr %struct.complex, ptr %41, i64 %351
  %363 = getelementptr %struct.complex, ptr %362, i64 %361
  %364 = getelementptr %struct.complex, ptr %41, i64 %356
  %365 = getelementptr %struct.complex, ptr %364, i64 %361
  %366 = call i32 @crot_(ptr noundef nonnull %23, ptr noundef %363, ptr noundef nonnull %7, ptr noundef %365, ptr noundef nonnull %7, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  store i64 %360, ptr %23, align 8, !tbaa !5
  %367 = mul nsw i64 %356, %42
  %368 = getelementptr %struct.complex, ptr %44, i64 %351
  %369 = getelementptr %struct.complex, ptr %368, i64 %367
  %370 = add nsw i64 %367, %356
  %371 = getelementptr inbounds %struct.complex, ptr %44, i64 %370
  %372 = call i32 @crot_(ptr noundef nonnull %23, ptr noundef %369, ptr noundef nonnull %9, ptr noundef %371, ptr noundef nonnull %9, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  br i1 %.not1239.not, label %373, label %377

373:                                              ; preds = %.lr.ph1352.preheader
  call void @r_cnjg(ptr noundef nonnull %24, ptr noundef nonnull %31) #5
  %374 = mul nsw i64 %351, %47
  %gep1346.peel = getelementptr %struct.complex, ptr %invariant.gep1333, i64 %374
  %375 = mul nsw i64 %356, %47
  %gep1348.peel = getelementptr %struct.complex, ptr %invariant.gep1333, i64 %375
  %376 = call i32 @crot_(ptr noundef nonnull %3, ptr noundef %gep1346.peel, ptr noundef nonnull @c__1, ptr noundef %gep1348.peel, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %24) #5
  br label %377

377:                                              ; preds = %373, %.lr.ph1352.preheader
  br i1 %.not1259.peel, label %388, label %378

378:                                              ; preds = %377
  %379 = add nsw i64 %351, -1
  %380 = mul nsw i64 %379, %39
  %381 = load float, ptr %29, align 4, !tbaa !13
  %382 = getelementptr %struct.complex, ptr %41, i64 %380
  %383 = getelementptr %struct.complex, ptr %382, i64 %351
  %384 = load <2 x float>, ptr %383, align 4, !tbaa !13
  %385 = insertelement <2 x float> poison, float %381, i64 0
  %386 = shufflevector <2 x float> %385, <2 x float> poison, <2 x i32> zeroinitializer
  %387 = fmul <2 x float> %386, %384
  store <2 x float> %387, ptr %24, align 8, !tbaa !13
  store <2 x float> %387, ptr %383, align 4, !tbaa !13
  br label %388

388:                                              ; preds = %378, %377
  store i64 %370, ptr %23, align 8, !tbaa !5
  %389 = load float, ptr %371, align 4, !tbaa !9
  %390 = call double @r_imag(ptr noundef nonnull %371) #5
  %391 = fptrunc double %390 to float
  %392 = insertelement <2 x float> poison, float %389, i64 0
  %393 = insertelement <2 x float> %392, float %391, i64 1
  %394 = fcmp oge <2 x float> %393, zeroinitializer
  %395 = fneg <2 x float> %393
  %396 = select <2 x i1> %394, <2 x float> %393, <2 x float> %395
  %397 = fpext <2 x float> %396 to <2 x double>
  %shift1510 = shufflevector <2 x double> %397, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %398 = fadd <2 x double> %shift1510, %397
  %399 = extractelement <2 x double> %398, i64 0
  %400 = fcmp ult double %399, %146
  br i1 %400, label %401, label %.loopexit1440

401:                                              ; preds = %388
  store i64 %370, ptr %23, align 8, !tbaa !5
  store <2 x float> zeroinitializer, ptr %371, align 4, !tbaa !13
  %exitcond1438.peel.not = icmp eq i64 %356, %.012001406
  br i1 %exitcond1438.peel.not, label %.loopexit1311, label %.lr.ph1352

.lr.ph1352:                                       ; preds = %401, %438
  %.012081350 = phi i64 [ %406, %438 ], [ %356, %401 ]
  %402 = mul nsw i64 %.012081350, %39
  %403 = add nsw i64 %402, %.012081350
  store i64 %403, ptr %23, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.complex, ptr %41, i64 %403
  %405 = load <2 x float>, ptr %404, align 4, !tbaa !13
  store <2 x float> %405, ptr %34, align 8, !tbaa !13
  %406 = add nsw i64 %.012081350, 1
  %407 = getelementptr %struct.complex, ptr %41, i64 %406
  %408 = getelementptr %struct.complex, ptr %407, i64 %402
  %409 = call i32 @clartg_(ptr noundef nonnull %34, ptr noundef %408, ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef nonnull %404) #5
  store <2 x float> zeroinitializer, ptr %408, align 4, !tbaa !13
  %410 = sub nsw i64 %.111931412, %.012081350
  store i64 %410, ptr %23, align 8, !tbaa !5
  %411 = mul nsw i64 %406, %39
  %412 = getelementptr %struct.complex, ptr %41, i64 %.012081350
  %413 = getelementptr %struct.complex, ptr %412, i64 %411
  %414 = getelementptr %struct.complex, ptr %41, i64 %406
  %415 = getelementptr %struct.complex, ptr %414, i64 %411
  %416 = call i32 @crot_(ptr noundef nonnull %23, ptr noundef %413, ptr noundef nonnull %7, ptr noundef %415, ptr noundef nonnull %7, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  store i64 %410, ptr %23, align 8, !tbaa !5
  %417 = mul nsw i64 %406, %42
  %418 = getelementptr %struct.complex, ptr %44, i64 %.012081350
  %419 = getelementptr %struct.complex, ptr %418, i64 %417
  %420 = add nsw i64 %417, %406
  %421 = getelementptr inbounds %struct.complex, ptr %44, i64 %420
  %422 = call i32 @crot_(ptr noundef nonnull %23, ptr noundef %419, ptr noundef nonnull %9, ptr noundef %421, ptr noundef nonnull %9, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  br i1 %.not1239.not, label %423, label %._crit_edge1450

423:                                              ; preds = %.lr.ph1352
  call void @r_cnjg(ptr noundef nonnull %24, ptr noundef nonnull %31) #5
  %424 = mul nsw i64 %.012081350, %47
  %gep1346 = getelementptr %struct.complex, ptr %invariant.gep1333, i64 %424
  %425 = mul nsw i64 %406, %47
  %gep1348 = getelementptr %struct.complex, ptr %invariant.gep1333, i64 %425
  %426 = call i32 @crot_(ptr noundef nonnull %3, ptr noundef %gep1346, ptr noundef nonnull @c__1, ptr noundef %gep1348, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %24) #5
  br label %._crit_edge1450

._crit_edge1450:                                  ; preds = %423, %.lr.ph1352
  %.pre1451 = load float, ptr %421, align 4, !tbaa !9
  store i64 %420, ptr %23, align 8, !tbaa !5
  %427 = call double @r_imag(ptr noundef nonnull %421) #5
  %428 = fptrunc double %427 to float
  %429 = insertelement <2 x float> poison, float %.pre1451, i64 0
  %430 = insertelement <2 x float> %429, float %428, i64 1
  %431 = fcmp oge <2 x float> %430, zeroinitializer
  %432 = fneg <2 x float> %430
  %433 = select <2 x i1> %431, <2 x float> %430, <2 x float> %432
  %434 = fpext <2 x float> %433 to <2 x double>
  %shift1511 = shufflevector <2 x double> %434, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %435 = fadd <2 x double> %shift1511, %434
  %436 = extractelement <2 x double> %435, i64 0
  %437 = fcmp ult double %436, %146
  br i1 %437, label %438, label %.loopexit1440

.loopexit1440:                                    ; preds = %._crit_edge1450, %388
  %.lcssa1435 = phi i64 [ %356, %388 ], [ %406, %._crit_edge1450 ]
  %.not1260 = icmp slt i64 %.lcssa1435, %.012001406
  br i1 %.not1260, label %578, label %523

438:                                              ; preds = %._crit_edge1450
  store i64 %420, ptr %23, align 8, !tbaa !5
  store <2 x float> zeroinitializer, ptr %421, align 4, !tbaa !13
  %exitcond1438.not = icmp eq i64 %406, %.012001406
  br i1 %exitcond1438.not, label %.loopexit1311, label %.lr.ph1352, !llvm.loop !16

439:                                              ; preds = %296
  %.not1254.not1341 = icmp slt i64 %.pre1449, %.012001406
  br i1 %.not1254.not1341, label %.lr.ph1344, label %.loopexit1311

.lr.ph1344:                                       ; preds = %439
  %440 = add nsw i64 %.111931412, -1
  %441 = add i64 %.111931412, 2
  %442 = getelementptr %struct.complex, ptr %41, i64 %.11415
  %443 = getelementptr %struct.complex, ptr %44, i64 %.11415
  br label %444

444:                                              ; preds = %.lr.ph1344, %497
  %.112091342 = phi i64 [ %.pre1449, %.lr.ph1344 ], [ %445, %497 ]
  %445 = add nsw i64 %.112091342, 1
  %446 = mul nsw i64 %445, %42
  %447 = add nsw i64 %446, %.112091342
  store i64 %447, ptr %23, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.complex, ptr %44, i64 %447
  %449 = load <2 x float>, ptr %448, align 4, !tbaa !13
  store <2 x float> %449, ptr %34, align 8, !tbaa !13
  %450 = getelementptr %struct.complex, ptr %44, i64 %446
  %451 = getelementptr %struct.complex, ptr %450, i64 %445
  %452 = call i32 @clartg_(ptr noundef nonnull %34, ptr noundef %451, ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef nonnull %448) #5
  store <2 x float> zeroinitializer, ptr %451, align 4, !tbaa !13
  %453 = icmp slt i64 %.112091342, %440
  br i1 %453, label %454, label %464

454:                                              ; preds = %444
  %455 = xor i64 %.112091342, -1
  %456 = add i64 %.111931412, %455
  store i64 %456, ptr %23, align 8, !tbaa !5
  %457 = add nsw i64 %.112091342, 2
  %458 = mul nsw i64 %457, %42
  %459 = getelementptr %struct.complex, ptr %44, i64 %.112091342
  %460 = getelementptr %struct.complex, ptr %459, i64 %458
  %461 = getelementptr %struct.complex, ptr %44, i64 %445
  %462 = getelementptr %struct.complex, ptr %461, i64 %458
  %463 = call i32 @crot_(ptr noundef nonnull %23, ptr noundef %460, ptr noundef nonnull %9, ptr noundef %462, ptr noundef nonnull %9, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  br label %464

464:                                              ; preds = %454, %444
  %465 = sub i64 %441, %.112091342
  store i64 %465, ptr %23, align 8, !tbaa !5
  %466 = add nsw i64 %.112091342, -1
  %467 = mul nsw i64 %466, %39
  %468 = getelementptr %struct.complex, ptr %41, i64 %.112091342
  %469 = getelementptr %struct.complex, ptr %468, i64 %467
  %470 = getelementptr %struct.complex, ptr %41, i64 %467
  %471 = getelementptr %struct.complex, ptr %470, i64 %445
  %472 = call i32 @crot_(ptr noundef nonnull %23, ptr noundef %469, ptr noundef nonnull %7, ptr noundef %471, ptr noundef nonnull %7, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  br i1 %.not1239.not, label %473, label %477

473:                                              ; preds = %464
  call void @r_cnjg(ptr noundef nonnull %24, ptr noundef nonnull %31) #5
  %474 = mul nsw i64 %.112091342, %47
  %gep1334 = getelementptr %struct.complex, ptr %invariant.gep1333, i64 %474
  %475 = mul nsw i64 %445, %47
  %gep1336 = getelementptr %struct.complex, ptr %invariant.gep1333, i64 %475
  %476 = call i32 @crot_(ptr noundef nonnull %3, ptr noundef %gep1334, ptr noundef nonnull @c__1, ptr noundef %gep1336, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %24) #5
  br label %477

477:                                              ; preds = %473, %464
  %478 = mul nsw i64 %.112091342, %39
  %479 = add nsw i64 %445, %478
  store i64 %479, ptr %23, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.complex, ptr %41, i64 %479
  %481 = load <2 x float>, ptr %480, align 4, !tbaa !13
  store <2 x float> %481, ptr %34, align 8, !tbaa !13
  %482 = call i32 @clartg_(ptr noundef nonnull %34, ptr noundef %471, ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef nonnull %480) #5
  store <2 x float> zeroinitializer, ptr %471, align 4, !tbaa !13
  %483 = sub nsw i64 %445, %.11415
  store i64 %483, ptr %23, align 8, !tbaa !5
  %484 = getelementptr %struct.complex, ptr %442, i64 %478
  %485 = getelementptr %struct.complex, ptr %442, i64 %467
  %486 = call i32 @crot_(ptr noundef nonnull %23, ptr noundef %484, ptr noundef nonnull @c__1, ptr noundef %485, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  %487 = sub nsw i64 %.112091342, %.11415
  store i64 %487, ptr %23, align 8, !tbaa !5
  %488 = mul nsw i64 %.112091342, %42
  %489 = getelementptr %struct.complex, ptr %443, i64 %488
  %490 = mul nsw i64 %466, %42
  %491 = getelementptr %struct.complex, ptr %443, i64 %490
  %492 = call i32 @crot_(ptr noundef nonnull %23, ptr noundef %489, ptr noundef nonnull @c__1, ptr noundef %491, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  br i1 %.not1242.not, label %493, label %497

493:                                              ; preds = %477
  %494 = mul nsw i64 %.112091342, %50
  %gep1338 = getelementptr %struct.complex, ptr %invariant.gep1321, i64 %494
  %495 = mul nsw i64 %466, %50
  %gep1340 = getelementptr %struct.complex, ptr %invariant.gep1321, i64 %495
  %496 = call i32 @crot_(ptr noundef nonnull %3, ptr noundef %gep1338, ptr noundef nonnull @c__1, ptr noundef %gep1340, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  br label %497

497:                                              ; preds = %477, %493
  %exitcond.not = icmp eq i64 %445, %.012001406
  br i1 %exitcond.not, label %.loopexit1311, label %444, !llvm.loop !18

498:                                              ; preds = %.thread1464
  %499 = add nsw i64 %295, -1
  store i64 %499, ptr %30, align 8, !tbaa !5
  %500 = load i64, ptr %22, align 8, !tbaa !5
  %.not1252.not = icmp sgt i64 %295, %500
  br i1 %.not1252.not, label %.lr.ph1330, label %._crit_edge1331, !llvm.loop !19

._crit_edge1331:                                  ; preds = %257, %498
  %501 = load i64, ptr %3, align 8, !tbaa !5
  %502 = shl i64 %501, 1
  %503 = or disjoint i64 %502, 1
  br label %._crit_edge1419

.loopexit1311:                                    ; preds = %497, %438, %401, %439, %.thread1301, %256
  %504 = mul nsw i64 %.012001406, %39
  %505 = add nsw i64 %504, %.012001406
  store i64 %505, ptr %22, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.complex, ptr %41, i64 %505
  %507 = load <2 x float>, ptr %506, align 4, !tbaa !13
  store <2 x float> %507, ptr %34, align 8, !tbaa !13
  %508 = call i32 @clartg_(ptr noundef nonnull %34, ptr noundef nonnull %236, ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef nonnull %506) #5
  store <2 x float> zeroinitializer, ptr %236, align 4, !tbaa !13
  %509 = sub nsw i64 %.012001406, %.11415
  store i64 %509, ptr %22, align 8, !tbaa !5
  %510 = getelementptr %struct.complex, ptr %41, i64 %.11415
  %511 = getelementptr %struct.complex, ptr %510, i64 %504
  %512 = getelementptr %struct.complex, ptr %510, i64 %234
  %513 = call i32 @crot_(ptr noundef nonnull %22, ptr noundef %511, ptr noundef nonnull @c__1, ptr noundef %512, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  store i64 %509, ptr %22, align 8, !tbaa !5
  %514 = getelementptr %struct.complex, ptr %44, i64 %.11415
  %515 = getelementptr %struct.complex, ptr %514, i64 %251
  %516 = mul nsw i64 %233, %42
  %517 = getelementptr %struct.complex, ptr %514, i64 %516
  %518 = call i32 @crot_(ptr noundef nonnull %22, ptr noundef %515, ptr noundef nonnull @c__1, ptr noundef %517, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  br i1 %.not1242.not, label %519, label %523

519:                                              ; preds = %.loopexit1311
  %520 = mul nsw i64 %.012001406, %50
  %gep1398 = getelementptr %struct.complex, ptr %invariant.gep1321, i64 %520
  %521 = mul nsw i64 %233, %50
  %gep1400 = getelementptr %struct.complex, ptr %invariant.gep1321, i64 %521
  %522 = call i32 @crot_(ptr noundef nonnull %3, ptr noundef %gep1398, ptr noundef nonnull @c__1, ptr noundef %gep1400, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %31) #5
  br label %523

523:                                              ; preds = %.loopexit1311, %519, %.loopexit1440, %228, %249
  %524 = mul nsw i64 %.012001406, %42
  %525 = add nsw i64 %524, %.012001406
  %526 = getelementptr inbounds %struct.complex, ptr %44, i64 %525
  %527 = call double @c_abs(ptr noundef %526) #5
  %528 = fptrunc double %527 to float
  %529 = fcmp ogt float %528, %122
  br i1 %529, label %530, label %566

530:                                              ; preds = %523
  store i64 %525, ptr %22, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.complex, ptr %44, i64 %525, i32 1
  %532 = load <2 x float>, ptr %526, align 4, !tbaa !13
  %533 = insertelement <2 x float> poison, float %528, i64 0
  %534 = shufflevector <2 x float> %533, <2 x float> poison, <2 x i32> zeroinitializer
  %535 = fdiv <2 x float> %532, %534
  store <2 x float> %535, ptr %25, align 8, !tbaa !13
  call void @r_cnjg(ptr noundef nonnull %24, ptr noundef nonnull %25) #5
  %536 = load <2 x float>, ptr %24, align 8, !tbaa !13
  store <2 x float> %536, ptr %37, align 8, !tbaa !13
  store float %528, ptr %526, align 4, !tbaa !9
  store float 0.000000e+00, ptr %531, align 4, !tbaa !12
  br i1 %.not.not, label %537, label %548

537:                                              ; preds = %530
  %538 = sub nsw i64 %.012001406, %.11415
  store i64 %538, ptr %22, align 8, !tbaa !5
  %539 = getelementptr %struct.complex, ptr %44, i64 %.11415
  %540 = getelementptr %struct.complex, ptr %539, i64 %524
  %541 = call i32 @f2c_cscal(ptr noundef nonnull %22, ptr noundef nonnull %37, ptr noundef %540, ptr noundef nonnull @c__1) #5
  %542 = add nsw i64 %.012001406, 1
  %543 = sub i64 %542, %.11415
  store i64 %543, ptr %22, align 8, !tbaa !5
  %544 = mul nsw i64 %.012001406, %39
  %545 = getelementptr %struct.complex, ptr %41, i64 %.11415
  %546 = getelementptr %struct.complex, ptr %545, i64 %544
  %547 = call i32 @f2c_cscal(ptr noundef nonnull %22, ptr noundef nonnull %37, ptr noundef %546, ptr noundef nonnull @c__1) #5
  br label %562

548:                                              ; preds = %530
  %549 = mul i64 %.012001406, %128
  store i64 %549, ptr %22, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.complex, ptr %41, i64 %549
  %551 = load float, ptr %550, align 4, !tbaa !9
  %552 = getelementptr inbounds i8, ptr %550, i64 4
  %553 = load float, ptr %552, align 4, !tbaa !12
  %554 = fneg float %553
  %555 = insertelement <2 x float> poison, float %553, i64 0
  %556 = insertelement <2 x float> %555, float %554, i64 1
  %557 = fmul <2 x float> %536, %556
  %558 = shufflevector <2 x float> %557, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %559 = insertelement <2 x float> poison, float %551, i64 0
  %560 = shufflevector <2 x float> %559, <2 x float> poison, <2 x i32> zeroinitializer
  %561 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %560, <2 x float> %536, <2 x float> %558)
  store <2 x float> %561, ptr %24, align 8, !tbaa !13
  store <2 x float> %561, ptr %550, align 4, !tbaa !13
  br label %562

562:                                              ; preds = %548, %537
  br i1 %.not1242.not, label %563, label %567

563:                                              ; preds = %562
  %564 = mul nsw i64 %.012001406, %50
  %gep1402 = getelementptr %struct.complex, ptr %invariant.gep1321, i64 %564
  %565 = call i32 @f2c_cscal(ptr noundef nonnull %3, ptr noundef nonnull %37, ptr noundef %gep1402, ptr noundef nonnull @c__1) #5
  br label %567

566:                                              ; preds = %523
  store <2 x float> zeroinitializer, ptr %526, align 4, !tbaa !13
  br label %567

567:                                              ; preds = %562, %563, %566
  %568 = mul i64 %.012001406, %128
  %569 = getelementptr inbounds %struct.complex, ptr %41, i64 %568
  %570 = getelementptr inbounds %struct.complex, ptr %45, i64 %.012001406
  %571 = load <2 x float>, ptr %569, align 4, !tbaa !13
  store <2 x float> %571, ptr %570, align 4, !tbaa !13
  store i64 %.012001406, ptr %22, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.complex, ptr %46, i64 %.012001406
  %573 = load <2 x float>, ptr %526, align 4, !tbaa !13
  store <2 x float> %573, ptr %572, align 4, !tbaa !13
  %574 = add nsw i64 %.012001406, -1
  %575 = load i64, ptr %4, align 8, !tbaa !5
  %.not1276 = icmp sgt i64 %.012001406, %575
  br i1 %.not1276, label %576, label %.loopexit1313

576:                                              ; preds = %567
  br i1 %.not.not, label %.loopexit1309, label %577

577:                                              ; preds = %576
  %.not1277 = icmp slt i64 %.11415, %.012001406
  %spec.select1296 = select i1 %.not1277, i64 %.11415, i64 %575
  br label %.loopexit1309

578:                                              ; preds = %.loopexit1471, %.loopexit1440
  %.01188 = phi i64 [ %.lcssa1435, %.loopexit1440 ], [ %288, %.loopexit1471 ]
  %579 = add i64 %.012021405, 1
  %spec.select1297 = select i1 %.not.not, i64 %.11415, i64 %.01188
  %580 = srem i64 %579, 10
  %.not1261 = icmp eq i64 %580, 0
  br i1 %.not1261, label %666, label %581

581:                                              ; preds = %578
  %582 = add nsw i64 %233, %251
  store i64 %582, ptr %22, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.complex, ptr %44, i64 %582
  %584 = load <2 x float>, ptr %583, align 4, !tbaa !13
  %585 = fmul <2 x float> %227, %584
  store <2 x float> %585, ptr %25, align 8, !tbaa !13
  %586 = load <2 x float>, ptr %253, align 4, !tbaa !13
  %587 = fmul <2 x float> %227, %586
  store <2 x float> %587, ptr %26, align 8, !tbaa !13
  call void @c_div(ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %26) #5
  %588 = load float, ptr %24, align 8, !tbaa !9
  %589 = load float, ptr %221, align 4, !tbaa !12
  %590 = add nsw i64 %234, %233
  store i64 %590, ptr %22, align 8, !tbaa !5
  %591 = getelementptr inbounds %struct.complex, ptr %41, i64 %590
  %592 = load <2 x float>, ptr %591, align 4, !tbaa !13
  %593 = fmul <2 x float> %225, %592
  store <2 x float> %593, ptr %25, align 8, !tbaa !13
  %594 = mul i64 %233, %134
  %595 = getelementptr inbounds %struct.complex, ptr %44, i64 %594
  %596 = load <2 x float>, ptr %595, align 4, !tbaa !13
  %597 = fmul <2 x float> %227, %596
  store <2 x float> %597, ptr %26, align 8, !tbaa !13
  call void @c_div(ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %26) #5
  store i64 %235, ptr %22, align 8, !tbaa !5
  %598 = load <2 x float>, ptr %236, align 4, !tbaa !13
  %599 = fmul <2 x float> %225, %598
  store <2 x float> %599, ptr %25, align 8, !tbaa !13
  %600 = load <2 x float>, ptr %595, align 4, !tbaa !13
  %601 = fmul <2 x float> %227, %600
  store <2 x float> %601, ptr %26, align 8, !tbaa !13
  %602 = mul nsw i64 %.012001406, %39
  %603 = add nsw i64 %233, %602
  %604 = getelementptr inbounds %struct.complex, ptr %41, i64 %603
  %605 = add nsw i64 %602, %.012001406
  %606 = getelementptr inbounds %struct.complex, ptr %41, i64 %605
  %607 = fneg float %589
  %608 = insertelement <2 x float> poison, float %589, i64 0
  %609 = insertelement <2 x float> %608, float %607, i64 1
  %610 = insertelement <2 x float> poison, float %588, i64 0
  %611 = shufflevector <2 x float> %610, <2 x float> poison, <2 x i32> zeroinitializer
  %612 = load <2 x float>, ptr %24, align 8, !tbaa !13
  call void @c_div(ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %26) #5
  store i64 %603, ptr %22, align 8, !tbaa !5
  %613 = load <2 x float>, ptr %604, align 4, !tbaa !13
  %614 = fmul <2 x float> %225, %613
  store <2 x float> %614, ptr %25, align 8, !tbaa !13
  %615 = load <2 x float>, ptr %253, align 4, !tbaa !13
  %616 = fmul <2 x float> %227, %615
  store <2 x float> %616, ptr %26, align 8, !tbaa !13
  %617 = load <2 x float>, ptr %24, align 8, !tbaa !13
  call void @c_div(ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %26) #5
  %618 = load float, ptr %24, align 8, !tbaa !9
  %619 = load float, ptr %221, align 4, !tbaa !12
  store i64 %605, ptr %22, align 8, !tbaa !5
  %620 = load <2 x float>, ptr %606, align 4, !tbaa !13
  %621 = fmul <2 x float> %225, %620
  store <2 x float> %621, ptr %25, align 8, !tbaa !13
  %622 = load <2 x float>, ptr %253, align 4, !tbaa !13
  %623 = fmul <2 x float> %227, %622
  store <2 x float> %623, ptr %26, align 8, !tbaa !13
  call void @c_div(ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %26) #5
  %624 = load <2 x float>, ptr %24, align 8, !tbaa !13
  %625 = fmul <2 x float> %617, %609
  %626 = shufflevector <2 x float> %625, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %627 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %611, <2 x float> %617, <2 x float> %626)
  %628 = fsub <2 x float> %624, %627
  %629 = fadd <2 x float> %612, %628
  store <2 x float> %629, ptr %25, align 8, !tbaa !13
  %630 = fmul <2 x float> %629, <float 5.000000e-01, float 5.000000e-01>
  store <2 x float> %630, ptr %24, align 8, !tbaa !13
  store <2 x float> %630, ptr %32, align 8, !tbaa !13
  call void @pow_ci(ptr noundef nonnull %27, ptr noundef nonnull %32, ptr noundef nonnull @c__2) #5
  %631 = fneg float %619
  %632 = insertelement <2 x float> poison, float %619, i64 0
  %633 = insertelement <2 x float> %632, float %631, i64 1
  %634 = fmul <2 x float> %617, %633
  %635 = shufflevector <2 x float> %634, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %636 = insertelement <2 x float> poison, float %618, i64 0
  %637 = shufflevector <2 x float> %636, <2 x float> poison, <2 x i32> zeroinitializer
  %638 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %637, <2 x float> %617, <2 x float> %635)
  store <2 x float> %638, ptr %28, align 8, !tbaa !13
  %639 = load <2 x float>, ptr %27, align 8, !tbaa !13
  %640 = fadd <2 x float> %638, %639
  store <2 x float> %640, ptr %26, align 8, !tbaa !13
  %641 = shufflevector <2 x float> %612, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %642 = fneg <2 x float> %612
  %643 = shufflevector <2 x float> %641, <2 x float> %642, <2 x i32> <i32 0, i32 3>
  %644 = fmul <2 x float> %624, %643
  %645 = shufflevector <2 x float> %644, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %646 = shufflevector <2 x float> %612, <2 x float> poison, <2 x i32> zeroinitializer
  %647 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %646, <2 x float> %624, <2 x float> %645)
  %648 = fsub <2 x float> %640, %647
  store <2 x float> %648, ptr %25, align 8, !tbaa !13
  call void @c_sqrt(ptr noundef nonnull %24, ptr noundef nonnull %25) #5
  %649 = load <2 x float>, ptr %24, align 8, !tbaa !13
  store <2 x float> %649, ptr %38, align 8, !tbaa !13
  %650 = load <2 x float>, ptr %32, align 8, !tbaa !13
  %651 = fsub <2 x float> %650, %628
  store <2 x float> %651, ptr %24, align 8, !tbaa !13
  store <2 x float> %651, ptr %25, align 8, !tbaa !13
  %652 = fmul <2 x float> %649, %651
  %653 = extractelement <2 x float> %652, i64 0
  %654 = fpext float %653 to double
  %655 = call double @r_imag(ptr noundef nonnull %25) #5
  %656 = call double @r_imag(ptr noundef nonnull %38) #5
  %657 = call double @llvm.fmuladd.f64(double %655, double %656, double %654)
  %658 = fptrunc double %657 to float
  %659 = fcmp ugt float %658, 0.000000e+00
  %660 = load <2 x float>, ptr %32, align 8, !tbaa !13
  %661 = load <2 x float>, ptr %38, align 8, !tbaa !13
  br i1 %659, label %664, label %662

662:                                              ; preds = %581
  %663 = fadd <2 x float> %660, %661
  br label %678

664:                                              ; preds = %581
  %665 = fsub <2 x float> %660, %661
  br label %678

666:                                              ; preds = %578
  %667 = mul nsw i64 %.012001406, %39
  %668 = add nsw i64 %233, %667
  store i64 %668, ptr %22, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.complex, ptr %41, i64 %668
  %670 = load <2 x float>, ptr %669, align 4, !tbaa !13
  %671 = fmul <2 x float> %225, %670
  store <2 x float> %671, ptr %27, align 8, !tbaa !13
  %672 = mul i64 %233, %134
  %673 = getelementptr inbounds %struct.complex, ptr %44, i64 %672
  %674 = load <2 x float>, ptr %673, align 4, !tbaa !13
  %675 = fmul <2 x float> %227, %674
  store <2 x float> %675, ptr %28, align 8, !tbaa !13
  call void @c_div(ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull %28) #5
  call void @r_cnjg(ptr noundef nonnull %25, ptr noundef nonnull %26) #5
  %676 = load <2 x float>, ptr %25, align 8, !tbaa !13
  %677 = fadd <2 x float> %229, %676
  br label %678

678:                                              ; preds = %662, %664, %666
  %679 = phi <2 x float> [ %229, %662 ], [ %229, %664 ], [ %677, %666 ]
  %680 = phi <2 x float> [ %663, %662 ], [ %665, %664 ], [ %677, %666 ]
  %681 = add nsw i64 %.01188, 1
  store i64 %681, ptr %22, align 8, !tbaa !5
  store i64 %233, ptr %30, align 8, !tbaa !5
  %.not12631355.not = icmp sgt i64 %.012001406, %681
  %682 = extractelement <2 x float> %680, i64 1
  %683 = fneg float %682
  br i1 %.not12631355.not, label %.lr.ph1358.preheader, label %._crit_edge1359

.lr.ph1358.preheader:                             ; preds = %678
  %684 = shufflevector <2 x float> %680, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %685 = insertelement <2 x float> %684, float %683, i64 1
  %686 = shufflevector <2 x float> %680, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph1358

.lr.ph1358:                                       ; preds = %.lr.ph1358.preheader, %752
  %storemerge12621356 = phi i64 [ %754, %752 ], [ %233, %.lr.ph1358.preheader ]
  %687 = mul i64 %storemerge12621356, %128
  %688 = getelementptr inbounds %struct.complex, ptr %41, i64 %687
  %689 = load <2 x float>, ptr %688, align 4, !tbaa !13
  %690 = fmul <2 x float> %225, %689
  store <2 x float> %690, ptr %25, align 8, !tbaa !13
  %691 = mul i64 %storemerge12621356, %134
  store i64 %691, ptr %23, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.complex, ptr %44, i64 %691
  %693 = load <2 x float>, ptr %692, align 4, !tbaa !13
  %694 = fmul <2 x float> %227, %693
  store <2 x float> %694, ptr %27, align 8, !tbaa !13
  %695 = fmul <2 x float> %694, %685
  %696 = shufflevector <2 x float> %695, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %697 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %686, <2 x float> %694, <2 x float> %696)
  store <2 x float> %697, ptr %26, align 8, !tbaa !13
  %698 = fsub <2 x float> %690, %697
  store <2 x float> %698, ptr %24, align 8, !tbaa !13
  store <2 x float> %698, ptr %34, align 8, !tbaa !13
  %699 = extractelement <2 x float> %698, i64 0
  %700 = fcmp oge float %699, 0.000000e+00
  %701 = fneg float %699
  %702 = select i1 %700, float %699, float %701
  %703 = call double @r_imag(ptr noundef nonnull %34) #5
  %704 = fptrunc double %703 to float
  %705 = fcmp oge float %704, 0.000000e+00
  %706 = fneg float %704
  %707 = select i1 %705, float %704, float %706
  %708 = fadd float %702, %707
  %709 = load i64, ptr %30, align 8, !tbaa !5
  %710 = mul nsw i64 %709, %39
  %gep1354 = getelementptr %struct.complex, ptr %invariant.gep1319, i64 %709
  %711 = getelementptr %struct.complex, ptr %gep1354, i64 %710
  %712 = load float, ptr %711, align 4, !tbaa !9
  %713 = call double @r_imag(ptr noundef nonnull %711) #5
  %714 = fptrunc double %713 to float
  %715 = insertelement <2 x float> poison, float %712, i64 0
  %716 = insertelement <2 x float> %715, float %714, i64 1
  %717 = fcmp oge <2 x float> %716, zeroinitializer
  %718 = fneg <2 x float> %716
  %719 = select <2 x i1> %717, <2 x float> %716, <2 x float> %718
  %720 = fpext <2 x float> %719 to <2 x double>
  %shift1512 = shufflevector <2 x double> %720, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %721 = fadd <2 x double> %shift1512, %720
  %722 = extractelement <2 x double> %721, i64 0
  %723 = fmul double %722, %218
  %724 = fptrunc double %723 to float
  %725 = fcmp oge float %708, %724
  %726 = select i1 %725, float %708, float %724
  %727 = fcmp olt float %726, 1.000000e+00
  %728 = fcmp une float %726, 0.000000e+00
  %or.cond5 = and i1 %727, %728
  %729 = fdiv float %708, %726
  %730 = fdiv float %724, %726
  %.01205 = select i1 %or.cond5, float %729, float %708
  %.01204 = select i1 %or.cond5, float %730, float %724
  %731 = load i64, ptr %30, align 8, !tbaa !5
  %732 = add nsw i64 %731, -1
  %733 = mul nsw i64 %732, %39
  %734 = getelementptr %struct.complex, ptr %41, i64 %731
  %735 = getelementptr %struct.complex, ptr %734, i64 %733
  %736 = load float, ptr %735, align 4, !tbaa !9
  %737 = call double @r_imag(ptr noundef nonnull %735) #5
  %738 = fptrunc double %737 to float
  %739 = insertelement <2 x float> poison, float %736, i64 0
  %740 = insertelement <2 x float> %739, float %738, i64 1
  %741 = fcmp oge <2 x float> %740, zeroinitializer
  %742 = fneg <2 x float> %740
  %743 = select <2 x i1> %741, <2 x float> %740, <2 x float> %742
  %744 = fpext <2 x float> %743 to <2 x double>
  %shift1513 = shufflevector <2 x double> %744, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %745 = fadd <2 x double> %shift1513, %744
  %746 = extractelement <2 x double> %745, i64 0
  %747 = fpext float %.01204 to double
  %748 = fmul double %746, %747
  %749 = fmul float %141, %.01205
  %750 = fpext float %749 to double
  %751 = fcmp ugt double %748, %750
  br i1 %751, label %752, label %.loopexit1310.loopexit

752:                                              ; preds = %.lr.ph1358
  %753 = load i64, ptr %30, align 8, !tbaa !5
  %754 = add nsw i64 %753, -1
  store i64 %754, ptr %30, align 8, !tbaa !5
  %755 = load i64, ptr %22, align 8, !tbaa !5
  %.not1263.not = icmp sgt i64 %753, %755
  br i1 %.not1263.not, label %.lr.ph1358, label %._crit_edge1359, !llvm.loop !20

._crit_edge1359:                                  ; preds = %752, %678
  %756 = mul i64 %.01188, %128
  %757 = getelementptr inbounds %struct.complex, ptr %41, i64 %756
  %758 = load <2 x float>, ptr %757, align 4, !tbaa !13
  %759 = fmul <2 x float> %225, %758
  store <2 x float> %759, ptr %25, align 8, !tbaa !13
  %760 = mul i64 %.01188, %134
  %761 = getelementptr inbounds %struct.complex, ptr %44, i64 %760
  %762 = load <2 x float>, ptr %761, align 4, !tbaa !13
  %763 = fmul <2 x float> %227, %762
  store <2 x float> %763, ptr %27, align 8, !tbaa !13
  %764 = shufflevector <2 x float> %680, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %765 = insertelement <2 x float> %764, float %683, i64 1
  %766 = fmul <2 x float> %763, %765
  %767 = shufflevector <2 x float> %766, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %768 = shufflevector <2 x float> %680, <2 x float> poison, <2 x i32> zeroinitializer
  %769 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %768, <2 x float> %763, <2 x float> %767)
  store <2 x float> %769, ptr %26, align 8, !tbaa !13
  %770 = fsub <2 x float> %759, %769
  store <2 x float> %770, ptr %34, align 8, !tbaa !13
  br label %.loopexit1310

.loopexit1310.loopexit:                           ; preds = %.lr.ph1358
  %.pre1461 = add nsw i64 %storemerge12621356, 1
  br label %.loopexit1310

.loopexit1310:                                    ; preds = %.loopexit1310.loopexit, %._crit_edge1359
  %.pre-phi = phi i64 [ %.pre1461, %.loopexit1310.loopexit ], [ %681, %._crit_edge1359 ]
  %.01186 = phi i64 [ %storemerge12621356, %.loopexit1310.loopexit ], [ %.01188, %._crit_edge1359 ]
  %771 = mul nsw i64 %.01186, %39
  %772 = add nsw i64 %.pre-phi, %771
  store i64 %772, ptr %22, align 8, !tbaa !5
  %773 = getelementptr inbounds %struct.complex, ptr %41, i64 %772
  %774 = load <2 x float>, ptr %773, align 4, !tbaa !13
  %775 = fmul <2 x float> %225, %774
  store <2 x float> %775, ptr %24, align 8, !tbaa !13
  store <2 x float> %775, ptr %35, align 8, !tbaa !13
  %776 = call i32 @clartg_(ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef nonnull %36) #5
  store i64 %233, ptr %22, align 8, !tbaa !5
  store i64 %.01186, ptr %30, align 8, !tbaa !5
  %.not12651391.not = icmp slt i64 %.01186, %.012001406
  br i1 %.not12651391.not, label %.lr.ph1394, label %.loopexit1309

.lr.ph1394:                                       ; preds = %.loopexit1310, %.loopexit
  %storemerge12641392 = phi i64 [ %1113, %.loopexit ], [ %.01186, %.loopexit1310 ]
  %777 = icmp sgt i64 %storemerge12641392, %.01186
  br i1 %777, label %778, label %791

778:                                              ; preds = %.lr.ph1394
  %779 = add nsw i64 %storemerge12641392, -1
  %780 = mul nsw i64 %779, %39
  %781 = getelementptr %struct.complex, ptr %41, i64 %storemerge12641392
  %782 = getelementptr %struct.complex, ptr %781, i64 %780
  %783 = load <2 x float>, ptr %782, align 4, !tbaa !13
  store <2 x float> %783, ptr %34, align 8, !tbaa !13
  %784 = getelementptr i8, ptr %781, i64 8
  %785 = getelementptr %struct.complex, ptr %784, i64 %780
  %786 = call i32 @clartg_(ptr noundef nonnull %34, ptr noundef %785, ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef nonnull %782) #5
  %787 = load i64, ptr %30, align 8, !tbaa !5
  %788 = add nsw i64 %787, -1
  %789 = mul nsw i64 %788, %39
  %gep1388 = getelementptr %struct.complex, ptr %invariant.gep1319, i64 %787
  %790 = getelementptr %struct.complex, ptr %gep1388, i64 %789
  store <2 x float> zeroinitializer, ptr %790, align 4, !tbaa !13
  br label %791

791:                                              ; preds = %778, %.lr.ph1394
  %792 = phi i64 [ %787, %778 ], [ %storemerge12641392, %.lr.ph1394 ]
  %.not12661364 = icmp sgt i64 %792, %.111931412
  br i1 %.not12661364, label %._crit_edge1368, label %.lr.ph1367.preheader

.lr.ph1367.preheader:                             ; preds = %791
  %.pre1452 = load float, ptr %29, align 4, !tbaa !13
  br label %.lr.ph1367

.lr.ph1367:                                       ; preds = %.lr.ph1367.preheader, %.lr.ph1367
  %793 = phi float [ %874, %.lr.ph1367 ], [ %.pre1452, %.lr.ph1367.preheader ]
  %794 = phi i64 [ %865, %.lr.ph1367 ], [ %792, %.lr.ph1367.preheader ]
  %.012101365 = phi i64 [ %887, %.lr.ph1367 ], [ %792, %.lr.ph1367.preheader ]
  %795 = mul nsw i64 %.012101365, %39
  %796 = add nsw i64 %794, %795
  %797 = getelementptr inbounds %struct.complex, ptr %41, i64 %796
  %798 = load <2 x float>, ptr %797, align 4, !tbaa !13
  %799 = insertelement <2 x float> poison, float %793, i64 0
  %800 = shufflevector <2 x float> %799, <2 x float> poison, <2 x i32> zeroinitializer
  %801 = fmul <2 x float> %800, %798
  store <2 x float> %801, ptr %25, align 8, !tbaa !13
  %802 = load float, ptr %31, align 8, !tbaa !9
  %gep1361 = getelementptr %struct.complex, ptr %invariant.gep1319, i64 %794
  %803 = getelementptr %struct.complex, ptr %gep1361, i64 %795
  %804 = load float, ptr %223, align 4, !tbaa !12
  %805 = fneg float %804
  %806 = load <2 x float>, ptr %803, align 4, !tbaa !13
  %807 = insertelement <2 x float> poison, float %804, i64 0
  %808 = insertelement <2 x float> %807, float %805, i64 1
  %809 = fmul <2 x float> %806, %808
  %810 = shufflevector <2 x float> %809, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %811 = insertelement <2 x float> poison, float %802, i64 0
  %812 = shufflevector <2 x float> %811, <2 x float> poison, <2 x i32> zeroinitializer
  %813 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %812, <2 x float> %806, <2 x float> %810)
  store <2 x float> %813, ptr %26, align 8, !tbaa !13
  %814 = fadd <2 x float> %801, %813
  store <2 x float> %814, ptr %24, align 8, !tbaa !13
  store <2 x float> %814, ptr %34, align 8, !tbaa !13
  %815 = add i64 %796, 1
  store i64 %815, ptr %23, align 8, !tbaa !5
  call void @r_cnjg(ptr noundef nonnull %27, ptr noundef nonnull %31) #5
  %816 = load float, ptr %27, align 8, !tbaa !9
  %817 = fneg float %816
  %818 = load float, ptr %222, align 4, !tbaa !12
  %819 = fneg float %818
  %820 = load i64, ptr %30, align 8, !tbaa !5
  %821 = getelementptr %struct.complex, ptr %41, i64 %820
  %822 = getelementptr %struct.complex, ptr %821, i64 %795
  %823 = load float, ptr %29, align 4, !tbaa !13
  %824 = getelementptr i8, ptr %821, i64 8
  %825 = getelementptr %struct.complex, ptr %824, i64 %795
  %826 = load <2 x float>, ptr %825, align 4, !tbaa !13
  %827 = insertelement <2 x float> poison, float %823, i64 0
  %828 = shufflevector <2 x float> %827, <2 x float> poison, <2 x i32> zeroinitializer
  %829 = fmul <2 x float> %828, %826
  store <2 x float> %829, ptr %28, align 8, !tbaa !13
  %830 = load i64, ptr %23, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.complex, ptr %41, i64 %830
  %832 = load <2 x float>, ptr %822, align 4, !tbaa !13
  %833 = insertelement <2 x float> poison, float %819, i64 0
  %834 = insertelement <2 x float> %833, float %818, i64 1
  %835 = fmul <2 x float> %832, %834
  %836 = shufflevector <2 x float> %835, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %837 = insertelement <2 x float> poison, float %817, i64 0
  %838 = shufflevector <2 x float> %837, <2 x float> poison, <2 x i32> zeroinitializer
  %839 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %838, <2 x float> %832, <2 x float> %836)
  %840 = fadd <2 x float> %839, %829
  store <2 x float> %840, ptr %831, align 4, !tbaa !13
  %841 = getelementptr %struct.complex, ptr %41, i64 %820
  %842 = getelementptr %struct.complex, ptr %841, i64 %795
  %843 = load <2 x float>, ptr %34, align 8, !tbaa !13
  store <2 x float> %843, ptr %842, align 4, !tbaa !13
  %844 = mul nsw i64 %.012101365, %42
  %845 = add i64 %820, %844
  %846 = getelementptr inbounds %struct.complex, ptr %44, i64 %845
  %847 = load <2 x float>, ptr %846, align 4, !tbaa !13
  %848 = fmul <2 x float> %828, %847
  store <2 x float> %848, ptr %25, align 8, !tbaa !13
  %849 = load float, ptr %31, align 8, !tbaa !9
  %gep1363 = getelementptr %struct.complex, ptr %invariant.gep, i64 %820
  %850 = getelementptr %struct.complex, ptr %gep1363, i64 %844
  %851 = load float, ptr %223, align 4, !tbaa !12
  %852 = fneg float %851
  %853 = load <2 x float>, ptr %850, align 4, !tbaa !13
  %854 = insertelement <2 x float> poison, float %851, i64 0
  %855 = insertelement <2 x float> %854, float %852, i64 1
  %856 = fmul <2 x float> %853, %855
  %857 = shufflevector <2 x float> %856, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %858 = insertelement <2 x float> poison, float %849, i64 0
  %859 = shufflevector <2 x float> %858, <2 x float> poison, <2 x i32> zeroinitializer
  %860 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %859, <2 x float> %853, <2 x float> %857)
  store <2 x float> %860, ptr %26, align 8, !tbaa !13
  %861 = fadd <2 x float> %848, %860
  store <2 x float> %861, ptr %24, align 8, !tbaa !13
  store <2 x float> %861, ptr %35, align 8, !tbaa !13
  %862 = add i64 %845, 1
  store i64 %862, ptr %23, align 8, !tbaa !5
  call void @r_cnjg(ptr noundef nonnull %27, ptr noundef nonnull %31) #5
  %863 = load <2 x float>, ptr %27, align 8, !tbaa !13
  %864 = fneg <2 x float> %863
  store <2 x float> %864, ptr %26, align 8, !tbaa !13
  %865 = load i64, ptr %30, align 8, !tbaa !5
  %866 = getelementptr %struct.complex, ptr %44, i64 %865
  %867 = getelementptr %struct.complex, ptr %866, i64 %844
  %868 = load <2 x float>, ptr %867, align 4, !tbaa !13
  %869 = shufflevector <2 x float> %864, <2 x float> %863, <2 x i32> <i32 1, i32 3>
  %870 = fmul <2 x float> %868, %869
  %871 = shufflevector <2 x float> %870, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %872 = shufflevector <2 x float> %864, <2 x float> poison, <2 x i32> zeroinitializer
  %873 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %872, <2 x float> %868, <2 x float> %871)
  store <2 x float> %873, ptr %25, align 8, !tbaa !13
  %874 = load float, ptr %29, align 4, !tbaa !13
  %875 = getelementptr i8, ptr %866, i64 8
  %876 = getelementptr %struct.complex, ptr %875, i64 %844
  %877 = load <2 x float>, ptr %876, align 4, !tbaa !13
  %878 = insertelement <2 x float> poison, float %874, i64 0
  %879 = shufflevector <2 x float> %878, <2 x float> poison, <2 x i32> zeroinitializer
  %880 = fmul <2 x float> %879, %877
  store <2 x float> %880, ptr %28, align 8, !tbaa !13
  %881 = fadd <2 x float> %873, %880
  store <2 x float> %881, ptr %24, align 8, !tbaa !13
  %882 = load i64, ptr %23, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.complex, ptr %44, i64 %882
  store <2 x float> %881, ptr %883, align 4, !tbaa !13
  %884 = add nsw i64 %865, %844
  store i64 %884, ptr %23, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.complex, ptr %44, i64 %884
  %886 = load <2 x float>, ptr %35, align 8, !tbaa !13
  store <2 x float> %886, ptr %885, align 4, !tbaa !13
  %887 = add i64 %.012101365, 1
  %exitcond1441.not = icmp eq i64 %.012101365, %.111931412
  br i1 %exitcond1441.not, label %._crit_edge1368, label %.lr.ph1367, !llvm.loop !21

._crit_edge1368:                                  ; preds = %.lr.ph1367, %791
  %888 = phi i64 [ %792, %791 ], [ %865, %.lr.ph1367 ]
  br i1 %.not1239.not, label %889, label %.loopexit1308

889:                                              ; preds = %._crit_edge1368
  %890 = load i64, ptr %3, align 8, !tbaa !5
  %.not12681369 = icmp slt i64 %890, 1
  br i1 %.not12681369, label %.loopexit1308, label %.lr.ph1372.preheader

.lr.ph1372.preheader:                             ; preds = %889
  %.pre1453 = load float, ptr %29, align 4, !tbaa !13
  br label %.lr.ph1372

.lr.ph1372:                                       ; preds = %.lr.ph1372.preheader, %.lr.ph1372
  %891 = phi float [ %928, %.lr.ph1372 ], [ %.pre1453, %.lr.ph1372.preheader ]
  %892 = phi i64 [ %900, %.lr.ph1372 ], [ %888, %.lr.ph1372.preheader ]
  %.012111370 = phi i64 [ %937, %.lr.ph1372 ], [ 1, %.lr.ph1372.preheader ]
  %893 = mul nsw i64 %892, %47
  %894 = add nsw i64 %893, %.012111370
  store i64 %894, ptr %23, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.complex, ptr %49, i64 %894
  %896 = load <2 x float>, ptr %895, align 4, !tbaa !13
  %897 = insertelement <2 x float> poison, float %891, i64 0
  %898 = shufflevector <2 x float> %897, <2 x float> poison, <2 x i32> zeroinitializer
  %899 = fmul <2 x float> %898, %896
  store <2 x float> %899, ptr %25, align 8, !tbaa !13
  call void @r_cnjg(ptr noundef nonnull %27, ptr noundef nonnull %31) #5
  %900 = load i64, ptr %30, align 8, !tbaa !5
  %901 = add nsw i64 %900, 1
  %902 = mul nsw i64 %901, %47
  %903 = load float, ptr %27, align 8, !tbaa !9
  %904 = getelementptr %struct.complex, ptr %49, i64 %.012111370
  %905 = getelementptr %struct.complex, ptr %904, i64 %902
  %906 = load float, ptr %222, align 4, !tbaa !12
  %907 = fneg float %906
  %908 = load <2 x float>, ptr %905, align 4, !tbaa !13
  %909 = insertelement <2 x float> poison, float %906, i64 0
  %910 = insertelement <2 x float> %909, float %907, i64 1
  %911 = fmul <2 x float> %908, %910
  %912 = shufflevector <2 x float> %911, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %913 = insertelement <2 x float> poison, float %903, i64 0
  %914 = shufflevector <2 x float> %913, <2 x float> poison, <2 x i32> zeroinitializer
  %915 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %914, <2 x float> %908, <2 x float> %912)
  %916 = load <2 x float>, ptr %25, align 8, !tbaa !13
  %917 = fadd <2 x float> %915, %916
  store <2 x float> %917, ptr %34, align 8, !tbaa !13
  %918 = load <2 x float>, ptr %31, align 8, !tbaa !13
  %919 = fneg <2 x float> %918
  store <2 x float> %919, ptr %26, align 8, !tbaa !13
  %920 = mul nsw i64 %900, %47
  %921 = getelementptr %struct.complex, ptr %904, i64 %920
  %922 = load <2 x float>, ptr %921, align 4, !tbaa !13
  %923 = shufflevector <2 x float> %919, <2 x float> %918, <2 x i32> <i32 1, i32 3>
  %924 = fmul <2 x float> %922, %923
  %925 = shufflevector <2 x float> %924, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %926 = shufflevector <2 x float> %919, <2 x float> poison, <2 x i32> zeroinitializer
  %927 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %926, <2 x float> %922, <2 x float> %925)
  store <2 x float> %927, ptr %25, align 8, !tbaa !13
  %928 = load float, ptr %29, align 4, !tbaa !13
  %929 = insertelement <2 x float> poison, float %928, i64 0
  %930 = shufflevector <2 x float> %929, <2 x float> poison, <2 x i32> zeroinitializer
  %931 = fmul <2 x float> %908, %930
  store <2 x float> %931, ptr %27, align 8, !tbaa !13
  %932 = fadd <2 x float> %927, %931
  store <2 x float> %932, ptr %24, align 8, !tbaa !13
  %933 = getelementptr %struct.complex, ptr %49, i64 %902
  %934 = getelementptr %struct.complex, ptr %933, i64 %.012111370
  store <2 x float> %932, ptr %934, align 4, !tbaa !13
  %935 = add nsw i64 %920, %.012111370
  store i64 %935, ptr %23, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.complex, ptr %49, i64 %935
  store <2 x float> %917, ptr %936, align 4, !tbaa !13
  %937 = add nuw i64 %.012111370, 1
  %exitcond1442.not = icmp eq i64 %.012111370, %890
  br i1 %exitcond1442.not, label %.loopexit1308, label %.lr.ph1372, !llvm.loop !22

.loopexit1308:                                    ; preds = %.lr.ph1372, %889, %._crit_edge1368
  %938 = phi i64 [ %888, %889 ], [ %888, %._crit_edge1368 ], [ %900, %.lr.ph1372 ]
  %939 = add nsw i64 %938, 1
  %940 = mul i64 %939, %134
  %941 = getelementptr inbounds %struct.complex, ptr %44, i64 %940
  %942 = load <2 x float>, ptr %941, align 4, !tbaa !13
  store <2 x float> %942, ptr %34, align 8, !tbaa !13
  %943 = mul nsw i64 %938, %42
  %944 = getelementptr %struct.complex, ptr %44, i64 %939
  %945 = getelementptr %struct.complex, ptr %944, i64 %943
  %946 = call i32 @clartg_(ptr noundef nonnull %34, ptr noundef %945, ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef nonnull %941) #5
  %947 = load i64, ptr %30, align 8, !tbaa !5
  %948 = mul nsw i64 %947, %42
  %gep1390 = getelementptr %struct.complex, ptr %invariant.gep, i64 %947
  %949 = getelementptr %struct.complex, ptr %gep1390, i64 %948
  store <2 x float> zeroinitializer, ptr %949, align 4, !tbaa !13
  %950 = add nsw i64 %947, 2
  store i64 %950, ptr %23, align 8, !tbaa !5
  %951 = call i64 @llvm.smin.i64(i64 %950, i64 %.012001406)
  %.not12701373 = icmp sgt i64 %spec.select1297, %951
  br i1 %.not12701373, label %._crit_edge1377, label %.lr.ph1376.preheader

.lr.ph1376.preheader:                             ; preds = %.loopexit1308
  %.pre1454 = load float, ptr %29, align 4, !tbaa !13
  br label %.lr.ph1376

.lr.ph1376:                                       ; preds = %.lr.ph1376.preheader, %.lr.ph1376
  %952 = phi float [ %991, %.lr.ph1376 ], [ %.pre1454, %.lr.ph1376.preheader ]
  %953 = phi i64 [ %980, %.lr.ph1376 ], [ %947, %.lr.ph1376.preheader ]
  %.112121374 = phi i64 [ %1003, %.lr.ph1376 ], [ %spec.select1297, %.lr.ph1376.preheader ]
  %954 = add nsw i64 %953, 1
  %955 = mul nsw i64 %954, %39
  %956 = getelementptr %struct.complex, ptr %41, i64 %955
  %957 = getelementptr %struct.complex, ptr %956, i64 %.112121374
  %958 = load <2 x float>, ptr %957, align 4, !tbaa !13
  %959 = insertelement <2 x float> poison, float %952, i64 0
  %960 = shufflevector <2 x float> %959, <2 x float> poison, <2 x i32> zeroinitializer
  %961 = fmul <2 x float> %960, %958
  store <2 x float> %961, ptr %25, align 8, !tbaa !13
  %962 = mul nsw i64 %953, %39
  %963 = load float, ptr %31, align 8, !tbaa !9
  %964 = getelementptr %struct.complex, ptr %41, i64 %.112121374
  %965 = getelementptr %struct.complex, ptr %964, i64 %962
  %966 = load float, ptr %223, align 4, !tbaa !12
  %967 = fneg float %966
  %968 = load <2 x float>, ptr %965, align 4, !tbaa !13
  %969 = insertelement <2 x float> poison, float %966, i64 0
  %970 = insertelement <2 x float> %969, float %967, i64 1
  %971 = fmul <2 x float> %968, %970
  %972 = shufflevector <2 x float> %971, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %973 = insertelement <2 x float> poison, float %963, i64 0
  %974 = shufflevector <2 x float> %973, <2 x float> poison, <2 x i32> zeroinitializer
  %975 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %974, <2 x float> %968, <2 x float> %972)
  store <2 x float> %975, ptr %26, align 8, !tbaa !13
  %976 = fadd <2 x float> %961, %975
  store <2 x float> %976, ptr %24, align 8, !tbaa !13
  store <2 x float> %976, ptr %34, align 8, !tbaa !13
  %977 = add nsw i64 %962, %.112121374
  store i64 %977, ptr %23, align 8, !tbaa !5
  call void @r_cnjg(ptr noundef nonnull %27, ptr noundef nonnull %31) #5
  %978 = load <2 x float>, ptr %27, align 8, !tbaa !13
  %979 = fneg <2 x float> %978
  store <2 x float> %979, ptr %26, align 8, !tbaa !13
  %980 = load i64, ptr %30, align 8, !tbaa !5
  %981 = add nsw i64 %980, 1
  %982 = mul nsw i64 %981, %39
  %983 = getelementptr %struct.complex, ptr %964, i64 %982
  %984 = load <2 x float>, ptr %983, align 4, !tbaa !13
  %985 = shufflevector <2 x float> %979, <2 x float> %978, <2 x i32> <i32 1, i32 3>
  %986 = fmul <2 x float> %984, %985
  %987 = shufflevector <2 x float> %986, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %988 = shufflevector <2 x float> %979, <2 x float> poison, <2 x i32> zeroinitializer
  %989 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %988, <2 x float> %984, <2 x float> %987)
  store <2 x float> %989, ptr %25, align 8, !tbaa !13
  %990 = mul nsw i64 %980, %39
  %991 = load float, ptr %29, align 4, !tbaa !13
  %992 = getelementptr %struct.complex, ptr %964, i64 %990
  %993 = load <2 x float>, ptr %992, align 4, !tbaa !13
  %994 = insertelement <2 x float> poison, float %991, i64 0
  %995 = shufflevector <2 x float> %994, <2 x float> poison, <2 x i32> zeroinitializer
  %996 = fmul <2 x float> %995, %993
  store <2 x float> %996, ptr %28, align 8, !tbaa !13
  %997 = fadd <2 x float> %989, %996
  store <2 x float> %997, ptr %24, align 8, !tbaa !13
  %998 = load i64, ptr %23, align 8, !tbaa !5
  %999 = getelementptr inbounds %struct.complex, ptr %41, i64 %998
  store <2 x float> %997, ptr %999, align 4, !tbaa !13
  %1000 = add nsw i64 %982, %.112121374
  store i64 %1000, ptr %23, align 8, !tbaa !5
  %1001 = getelementptr inbounds %struct.complex, ptr %41, i64 %1000
  %1002 = load <2 x float>, ptr %34, align 8, !tbaa !13
  store <2 x float> %1002, ptr %1001, align 4, !tbaa !13
  %1003 = add i64 %.112121374, 1
  %exitcond1443.not = icmp eq i64 %.112121374, %951
  br i1 %exitcond1443.not, label %._crit_edge1377, label %.lr.ph1376, !llvm.loop !23

._crit_edge1377:                                  ; preds = %.lr.ph1376, %.loopexit1308
  %1004 = phi i64 [ %947, %.loopexit1308 ], [ %980, %.lr.ph1376 ]
  %.not12711378 = icmp sgt i64 %spec.select1297, %1004
  br i1 %.not12711378, label %._crit_edge1382, label %.lr.ph1381.preheader

.lr.ph1381.preheader:                             ; preds = %._crit_edge1377
  %.pre1455 = load float, ptr %29, align 4, !tbaa !13
  br label %.lr.ph1381

.lr.ph1381:                                       ; preds = %.lr.ph1381.preheader, %.lr.ph1381
  %1005 = phi float [ %1044, %.lr.ph1381 ], [ %.pre1455, %.lr.ph1381.preheader ]
  %1006 = phi i64 [ %1033, %.lr.ph1381 ], [ %1004, %.lr.ph1381.preheader ]
  %.212131379 = phi i64 [ %1056, %.lr.ph1381 ], [ %spec.select1297, %.lr.ph1381.preheader ]
  %1007 = add nsw i64 %1006, 1
  %1008 = mul nsw i64 %1007, %42
  %1009 = getelementptr %struct.complex, ptr %44, i64 %1008
  %1010 = getelementptr %struct.complex, ptr %1009, i64 %.212131379
  %1011 = load <2 x float>, ptr %1010, align 4, !tbaa !13
  %1012 = insertelement <2 x float> poison, float %1005, i64 0
  %1013 = shufflevector <2 x float> %1012, <2 x float> poison, <2 x i32> zeroinitializer
  %1014 = fmul <2 x float> %1013, %1011
  store <2 x float> %1014, ptr %25, align 8, !tbaa !13
  %1015 = mul nsw i64 %1006, %42
  %1016 = load float, ptr %31, align 8, !tbaa !9
  %1017 = getelementptr %struct.complex, ptr %44, i64 %.212131379
  %1018 = getelementptr %struct.complex, ptr %1017, i64 %1015
  %1019 = load float, ptr %223, align 4, !tbaa !12
  %1020 = fneg float %1019
  %1021 = load <2 x float>, ptr %1018, align 4, !tbaa !13
  %1022 = insertelement <2 x float> poison, float %1019, i64 0
  %1023 = insertelement <2 x float> %1022, float %1020, i64 1
  %1024 = fmul <2 x float> %1021, %1023
  %1025 = shufflevector <2 x float> %1024, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1026 = insertelement <2 x float> poison, float %1016, i64 0
  %1027 = shufflevector <2 x float> %1026, <2 x float> poison, <2 x i32> zeroinitializer
  %1028 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1027, <2 x float> %1021, <2 x float> %1025)
  store <2 x float> %1028, ptr %26, align 8, !tbaa !13
  %1029 = fadd <2 x float> %1014, %1028
  store <2 x float> %1029, ptr %24, align 8, !tbaa !13
  store <2 x float> %1029, ptr %34, align 8, !tbaa !13
  %1030 = add nsw i64 %1015, %.212131379
  store i64 %1030, ptr %23, align 8, !tbaa !5
  call void @r_cnjg(ptr noundef nonnull %27, ptr noundef nonnull %31) #5
  %1031 = load <2 x float>, ptr %27, align 8, !tbaa !13
  %1032 = fneg <2 x float> %1031
  store <2 x float> %1032, ptr %26, align 8, !tbaa !13
  %1033 = load i64, ptr %30, align 8, !tbaa !5
  %1034 = add nsw i64 %1033, 1
  %1035 = mul nsw i64 %1034, %42
  %1036 = getelementptr %struct.complex, ptr %1017, i64 %1035
  %1037 = load <2 x float>, ptr %1036, align 4, !tbaa !13
  %1038 = shufflevector <2 x float> %1032, <2 x float> %1031, <2 x i32> <i32 1, i32 3>
  %1039 = fmul <2 x float> %1037, %1038
  %1040 = shufflevector <2 x float> %1039, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1041 = shufflevector <2 x float> %1032, <2 x float> poison, <2 x i32> zeroinitializer
  %1042 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1041, <2 x float> %1037, <2 x float> %1040)
  store <2 x float> %1042, ptr %25, align 8, !tbaa !13
  %1043 = mul nsw i64 %1033, %42
  %1044 = load float, ptr %29, align 4, !tbaa !13
  %1045 = getelementptr %struct.complex, ptr %1017, i64 %1043
  %1046 = load <2 x float>, ptr %1045, align 4, !tbaa !13
  %1047 = insertelement <2 x float> poison, float %1044, i64 0
  %1048 = shufflevector <2 x float> %1047, <2 x float> poison, <2 x i32> zeroinitializer
  %1049 = fmul <2 x float> %1048, %1046
  store <2 x float> %1049, ptr %28, align 8, !tbaa !13
  %1050 = fadd <2 x float> %1042, %1049
  store <2 x float> %1050, ptr %24, align 8, !tbaa !13
  %1051 = load i64, ptr %23, align 8, !tbaa !5
  %1052 = getelementptr inbounds %struct.complex, ptr %44, i64 %1051
  store <2 x float> %1050, ptr %1052, align 4, !tbaa !13
  %1053 = add nsw i64 %1035, %.212131379
  store i64 %1053, ptr %23, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.complex, ptr %44, i64 %1053
  %1055 = load <2 x float>, ptr %34, align 8, !tbaa !13
  store <2 x float> %1055, ptr %1054, align 4, !tbaa !13
  %1056 = add i64 %.212131379, 1
  %exitcond1444.not = icmp eq i64 %.212131379, %1004
  br i1 %exitcond1444.not, label %._crit_edge1382, label %.lr.ph1381, !llvm.loop !24

._crit_edge1382:                                  ; preds = %.lr.ph1381, %._crit_edge1377
  %1057 = phi i64 [ %1004, %._crit_edge1377 ], [ %1033, %.lr.ph1381 ]
  br i1 %.not1242.not, label %1058, label %.loopexit

1058:                                             ; preds = %._crit_edge1382
  %1059 = load i64, ptr %3, align 8, !tbaa !5
  %.not12731383 = icmp slt i64 %1059, 1
  br i1 %.not12731383, label %.loopexit, label %.lr.ph1386.preheader

.lr.ph1386.preheader:                             ; preds = %1058
  %.pre1456 = load float, ptr %29, align 4, !tbaa !13
  br label %.lr.ph1386

.lr.ph1386:                                       ; preds = %.lr.ph1386.preheader, %.lr.ph1386
  %1060 = phi float [ %1099, %.lr.ph1386 ], [ %.pre1456, %.lr.ph1386.preheader ]
  %1061 = phi i64 [ %1088, %.lr.ph1386 ], [ %1057, %.lr.ph1386.preheader ]
  %.312141384 = phi i64 [ %1111, %.lr.ph1386 ], [ 1, %.lr.ph1386.preheader ]
  %1062 = add nsw i64 %1061, 1
  %1063 = mul nsw i64 %1062, %50
  %1064 = getelementptr %struct.complex, ptr %52, i64 %1063
  %1065 = getelementptr %struct.complex, ptr %1064, i64 %.312141384
  %1066 = load <2 x float>, ptr %1065, align 4, !tbaa !13
  %1067 = insertelement <2 x float> poison, float %1060, i64 0
  %1068 = shufflevector <2 x float> %1067, <2 x float> poison, <2 x i32> zeroinitializer
  %1069 = fmul <2 x float> %1068, %1066
  store <2 x float> %1069, ptr %25, align 8, !tbaa !13
  %1070 = mul nsw i64 %1061, %50
  %1071 = load float, ptr %31, align 8, !tbaa !9
  %1072 = getelementptr %struct.complex, ptr %52, i64 %.312141384
  %1073 = getelementptr %struct.complex, ptr %1072, i64 %1070
  %1074 = load float, ptr %223, align 4, !tbaa !12
  %1075 = fneg float %1074
  %1076 = load <2 x float>, ptr %1073, align 4, !tbaa !13
  %1077 = insertelement <2 x float> poison, float %1074, i64 0
  %1078 = insertelement <2 x float> %1077, float %1075, i64 1
  %1079 = fmul <2 x float> %1076, %1078
  %1080 = shufflevector <2 x float> %1079, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1081 = insertelement <2 x float> poison, float %1071, i64 0
  %1082 = shufflevector <2 x float> %1081, <2 x float> poison, <2 x i32> zeroinitializer
  %1083 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1082, <2 x float> %1076, <2 x float> %1080)
  store <2 x float> %1083, ptr %26, align 8, !tbaa !13
  %1084 = fadd <2 x float> %1069, %1083
  store <2 x float> %1084, ptr %24, align 8, !tbaa !13
  store <2 x float> %1084, ptr %34, align 8, !tbaa !13
  %1085 = add nsw i64 %1070, %.312141384
  store i64 %1085, ptr %23, align 8, !tbaa !5
  call void @r_cnjg(ptr noundef nonnull %27, ptr noundef nonnull %31) #5
  %1086 = load <2 x float>, ptr %27, align 8, !tbaa !13
  %1087 = fneg <2 x float> %1086
  store <2 x float> %1087, ptr %26, align 8, !tbaa !13
  %1088 = load i64, ptr %30, align 8, !tbaa !5
  %1089 = add nsw i64 %1088, 1
  %1090 = mul nsw i64 %1089, %50
  %1091 = getelementptr %struct.complex, ptr %1072, i64 %1090
  %1092 = load <2 x float>, ptr %1091, align 4, !tbaa !13
  %1093 = shufflevector <2 x float> %1087, <2 x float> %1086, <2 x i32> <i32 1, i32 3>
  %1094 = fmul <2 x float> %1092, %1093
  %1095 = shufflevector <2 x float> %1094, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1096 = shufflevector <2 x float> %1087, <2 x float> poison, <2 x i32> zeroinitializer
  %1097 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1096, <2 x float> %1092, <2 x float> %1095)
  store <2 x float> %1097, ptr %25, align 8, !tbaa !13
  %1098 = mul nsw i64 %1088, %50
  %1099 = load float, ptr %29, align 4, !tbaa !13
  %1100 = getelementptr %struct.complex, ptr %1072, i64 %1098
  %1101 = load <2 x float>, ptr %1100, align 4, !tbaa !13
  %1102 = insertelement <2 x float> poison, float %1099, i64 0
  %1103 = shufflevector <2 x float> %1102, <2 x float> poison, <2 x i32> zeroinitializer
  %1104 = fmul <2 x float> %1103, %1101
  store <2 x float> %1104, ptr %28, align 8, !tbaa !13
  %1105 = fadd <2 x float> %1097, %1104
  store <2 x float> %1105, ptr %24, align 8, !tbaa !13
  %1106 = load i64, ptr %23, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.complex, ptr %52, i64 %1106
  store <2 x float> %1105, ptr %1107, align 4, !tbaa !13
  %1108 = add nsw i64 %1090, %.312141384
  store i64 %1108, ptr %23, align 8, !tbaa !5
  %1109 = getelementptr inbounds %struct.complex, ptr %52, i64 %1108
  %1110 = load <2 x float>, ptr %34, align 8, !tbaa !13
  store <2 x float> %1110, ptr %1109, align 4, !tbaa !13
  %1111 = add nuw i64 %.312141384, 1
  %exitcond1445.not = icmp eq i64 %.312141384, %1059
  br i1 %exitcond1445.not, label %.loopexit, label %.lr.ph1386, !llvm.loop !25

.loopexit:                                        ; preds = %.lr.ph1386, %1058, %._crit_edge1382
  %1112 = phi i64 [ %1057, %1058 ], [ %1057, %._crit_edge1382 ], [ %1088, %.lr.ph1386 ]
  %1113 = add nsw i64 %1112, 1
  store i64 %1113, ptr %30, align 8, !tbaa !5
  %1114 = load i64, ptr %22, align 8, !tbaa !5
  %.not1265.not = icmp slt i64 %1112, %1114
  br i1 %.not1265.not, label %.lr.ph1394, label %.loopexit1309, !llvm.loop !26

.loopexit1309:                                    ; preds = %.loopexit, %.loopexit1310, %577, %576
  %.11203 = phi i64 [ 0, %576 ], [ 0, %577 ], [ %579, %.loopexit1310 ], [ %579, %.loopexit ]
  %.11201 = phi i64 [ %574, %576 ], [ %574, %577 ], [ %.012001406, %.loopexit1310 ], [ %.012001406, %.loopexit ]
  %.21194 = phi i64 [ %.111931412, %576 ], [ %574, %577 ], [ %.111931412, %.loopexit1310 ], [ %.111931412, %.loopexit ]
  %.3 = phi i64 [ %.11415, %576 ], [ %spec.select1296, %577 ], [ %spec.select1297, %.loopexit1310 ], [ %spec.select1297, %.loopexit ]
  %1115 = phi <2 x float> [ zeroinitializer, %576 ], [ zeroinitializer, %577 ], [ %679, %.loopexit1310 ], [ %679, %.loopexit ]
  %1116 = add nuw nsw i64 %.011991409, 1
  %1117 = load i64, ptr %21, align 8, !tbaa !5
  %.not1250 = icmp sge i64 %.011991409, %1117
  %1118 = icmp sge i64 %.011991409, %217
  %or.cond1295 = or i1 %.not1250, %1118
  br i1 %or.cond1295, label %._crit_edge1419, label %228, !llvm.loop !27

.loopexit1313:                                    ; preds = %567, %._crit_edge
  %1119 = phi i64 [ %209, %._crit_edge ], [ %575, %567 ]
  %1120 = add nsw i64 %1119, -1
  store i64 1, ptr %30, align 8, !tbaa !5
  %.not12791426 = icmp slt i64 %1119, 2
  br i1 %.not12791426, label %._crit_edge1419, label %.lr.ph1429

.lr.ph1429:                                       ; preds = %.loopexit1313, %1166
  %storemerge12781427 = phi i64 [ %1176, %1166 ], [ 1, %.loopexit1313 ]
  %1121 = mul i64 %storemerge12781427, %134
  %1122 = getelementptr inbounds %struct.complex, ptr %44, i64 %1121
  %1123 = call double @c_abs(ptr noundef %1122) #5
  %1124 = fptrunc double %1123 to float
  %1125 = fcmp ogt float %1124, %122
  %1126 = load i64, ptr %30, align 8, !tbaa !5
  %1127 = mul i64 %1126, %134
  br i1 %1125, label %1128, label %1164

1128:                                             ; preds = %.lr.ph1429
  store i64 %1127, ptr %22, align 8, !tbaa !5
  %1129 = getelementptr inbounds %struct.complex, ptr %44, i64 %1127
  %1130 = load <2 x float>, ptr %1129, align 4, !tbaa !13
  %1131 = insertelement <2 x float> poison, float %1124, i64 0
  %1132 = shufflevector <2 x float> %1131, <2 x float> poison, <2 x i32> zeroinitializer
  %1133 = fdiv <2 x float> %1130, %1132
  store <2 x float> %1133, ptr %25, align 8, !tbaa !13
  call void @r_cnjg(ptr noundef nonnull %24, ptr noundef nonnull %25) #5
  %1134 = load <2 x float>, ptr %24, align 8, !tbaa !13
  store <2 x float> %1134, ptr %37, align 8, !tbaa !13
  %1135 = load i64, ptr %30, align 8, !tbaa !5
  %1136 = mul i64 %1135, %134
  %1137 = getelementptr inbounds %struct.complex, ptr %44, i64 %1136
  store float %1124, ptr %1137, align 4, !tbaa !9
  %1138 = getelementptr inbounds %struct.complex, ptr %44, i64 %1136, i32 1
  store float 0.000000e+00, ptr %1138, align 4, !tbaa !12
  br i1 %.not.not, label %1139, label %1146

1139:                                             ; preds = %1128
  %1140 = add nsw i64 %1135, -1
  store i64 %1140, ptr %22, align 8, !tbaa !5
  %1141 = mul nsw i64 %1135, %42
  %gep1421 = getelementptr %struct.complex, ptr %invariant.gep, i64 %1141
  %1142 = call i32 @f2c_cscal(ptr noundef nonnull %22, ptr noundef nonnull %37, ptr noundef %gep1421, ptr noundef nonnull @c__1) #5
  %1143 = load i64, ptr %30, align 8, !tbaa !5
  %1144 = mul nsw i64 %1143, %39
  %gep1423 = getelementptr %struct.complex, ptr %invariant.gep1319, i64 %1144
  %1145 = call i32 @f2c_cscal(ptr noundef nonnull %30, ptr noundef nonnull %37, ptr noundef %gep1423, ptr noundef nonnull @c__1) #5
  %.pre1458.pre = load i64, ptr %30, align 8, !tbaa !5
  br label %1160

1146:                                             ; preds = %1128
  %1147 = mul i64 %1135, %128
  store i64 %1147, ptr %22, align 8, !tbaa !5
  %1148 = getelementptr inbounds %struct.complex, ptr %41, i64 %1147
  %1149 = load float, ptr %1148, align 4, !tbaa !9
  %1150 = getelementptr inbounds i8, ptr %1148, i64 4
  %1151 = load float, ptr %1150, align 4, !tbaa !12
  %1152 = fneg float %1151
  %1153 = insertelement <2 x float> poison, float %1151, i64 0
  %1154 = insertelement <2 x float> %1153, float %1152, i64 1
  %1155 = fmul <2 x float> %1134, %1154
  %1156 = shufflevector <2 x float> %1155, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1157 = insertelement <2 x float> poison, float %1149, i64 0
  %1158 = shufflevector <2 x float> %1157, <2 x float> poison, <2 x i32> zeroinitializer
  %1159 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1158, <2 x float> %1134, <2 x float> %1156)
  store <2 x float> %1159, ptr %24, align 8, !tbaa !13
  store <2 x float> %1159, ptr %1148, align 4, !tbaa !13
  br label %1160

1160:                                             ; preds = %1146, %1139
  %.pre1458 = phi i64 [ %1135, %1146 ], [ %.pre1458.pre, %1139 ]
  br i1 %.not1242.not, label %1161, label %1166

1161:                                             ; preds = %1160
  %1162 = mul nsw i64 %.pre1458, %50
  %gep1425 = getelementptr %struct.complex, ptr %invariant.gep1321, i64 %1162
  %1163 = call i32 @f2c_cscal(ptr noundef nonnull %3, ptr noundef nonnull %37, ptr noundef %gep1425, ptr noundef nonnull @c__1) #5
  %.pre1457 = load i64, ptr %30, align 8, !tbaa !5
  br label %1166

1164:                                             ; preds = %.lr.ph1429
  %1165 = getelementptr inbounds %struct.complex, ptr %44, i64 %1127
  store <2 x float> zeroinitializer, ptr %1165, align 4, !tbaa !13
  br label %1166

1166:                                             ; preds = %1160, %1161, %1164
  %1167 = phi i64 [ %.pre1458, %1160 ], [ %.pre1457, %1161 ], [ %1126, %1164 ]
  %1168 = mul i64 %1167, %128
  %1169 = getelementptr inbounds %struct.complex, ptr %41, i64 %1168
  %1170 = getelementptr inbounds %struct.complex, ptr %45, i64 %1167
  %1171 = load <2 x float>, ptr %1169, align 4, !tbaa !13
  store <2 x float> %1171, ptr %1170, align 4, !tbaa !13
  store i64 %1167, ptr %22, align 8, !tbaa !5
  %1172 = mul i64 %1167, %134
  %1173 = getelementptr inbounds %struct.complex, ptr %44, i64 %1172
  %1174 = getelementptr inbounds %struct.complex, ptr %46, i64 %1167
  %1175 = load <2 x float>, ptr %1173, align 4, !tbaa !13
  store <2 x float> %1175, ptr %1174, align 4, !tbaa !13
  %1176 = add nsw i64 %1167, 1
  store i64 %1176, ptr %30, align 8, !tbaa !5
  %.not1279.not = icmp slt i64 %1167, %1120
  br i1 %.not1279.not, label %.lr.ph1429, label %._crit_edge1419, !llvm.loop !28

._crit_edge1419:                                  ; preds = %.loopexit1309, %1166, %.loopexit1313, %214, %._crit_edge1331
  %.sink1486 = phi i64 [ %503, %._crit_edge1331 ], [ %208, %214 ], [ 0, %.loopexit1313 ], [ 0, %1166 ], [ %.11201, %.loopexit1309 ]
  store i64 %.sink1486, ptr %19, align 8, !tbaa !5
  %1177 = load i64, ptr %3, align 8, !tbaa !5
  %1178 = sitofp i64 %1177 to float
  store float %1178, ptr %16, align 4, !tbaa !9
  store float 0.000000e+00, ptr %76, align 4, !tbaa !12
  br label %1179

1179:                                             ; preds = %106, %._crit_edge1419, %109, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  ret i32 0
}

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

declare double @clanhs_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @c_abs(ptr noundef) local_unnamed_addr #2

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

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

declare double @r_imag(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"", !11, i64 0, !11, i64 4}
!11 = !{!"float", !7, i64 0}
!12 = !{!10, !11, i64 4}
!13 = !{!11, !11, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15, !17}
!17 = !{!"llvm.loop.peeled.count", i32 1}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !15}
!24 = distinct !{!24, !15}
!25 = distinct !{!25, !15}
!26 = distinct !{!26, !15}
!27 = distinct !{!27, !15}
!28 = distinct !{!28, !15}


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