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

; 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 [7 x i8], align 1
@.str.5 = 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
@c__1 = external hidden global i64, align 8

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

123:                                              ; preds = %14
  %124 = load ptr, ptr %16, align 8, !tbaa !5
  %125 = call i64 @lsame_(ptr noundef %124, ptr noundef @.str.2)
  %126 = icmp ne i64 %125, 0
  br i1 %126, label %129, label %127

127:                                              ; preds = %123
  %128 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -1, ptr %128, align 8, !tbaa !9
  br label %209

129:                                              ; preds = %123, %14
  %130 = load i64, ptr %78, align 8, !tbaa !9
  %131 = icmp ne i64 %130, 0
  br i1 %131, label %138, label %132

132:                                              ; preds = %129
  %133 = load ptr, ptr %17, align 8, !tbaa !5
  %134 = call i64 @lsame_(ptr noundef %133, ptr noundef @.str.3)
  %135 = icmp ne i64 %134, 0
  br i1 %135, label %138, label %136

136:                                              ; preds = %132
  %137 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -2, ptr %137, align 8, !tbaa !9
  br label %208

138:                                              ; preds = %132, %129
  %139 = load ptr, ptr %18, align 8, !tbaa !5
  %140 = load i64, ptr %139, align 8, !tbaa !9
  %141 = icmp slt i64 %140, 0
  br i1 %141, label %142, label %144

142:                                              ; preds = %138
  %143 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -3, ptr %143, align 8, !tbaa !9
  br label %207

144:                                              ; preds = %138
  %145 = load ptr, ptr %19, align 8, !tbaa !5
  %146 = load i64, ptr %145, align 8, !tbaa !9
  %147 = icmp slt i64 %146, 0
  br i1 %147, label %148, label %150

148:                                              ; preds = %144
  %149 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -4, ptr %149, align 8, !tbaa !9
  br label %206

150:                                              ; preds = %144
  %151 = load ptr, ptr %20, align 8, !tbaa !5
  %152 = load i64, ptr %151, align 8, !tbaa !9
  %153 = icmp slt i64 %152, 0
  br i1 %153, label %160, label %154

154:                                              ; preds = %150
  %155 = load ptr, ptr %20, align 8, !tbaa !5
  %156 = load i64, ptr %155, align 8, !tbaa !9
  %157 = load ptr, ptr %19, align 8, !tbaa !5
  %158 = load i64, ptr %157, align 8, !tbaa !9
  %159 = icmp sgt i64 %156, %158
  br i1 %159, label %160, label %162

160:                                              ; preds = %154, %150
  %161 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -5, ptr %161, align 8, !tbaa !9
  br label %205

162:                                              ; preds = %154
  %163 = load ptr, ptr %22, align 8, !tbaa !5
  %164 = load i64, ptr %163, align 8, !tbaa !9
  %165 = load ptr, ptr %19, align 8, !tbaa !5
  %166 = load i64, ptr %165, align 8, !tbaa !9
  %167 = add nsw i64 %166, 1
  %168 = icmp slt i64 %164, %167
  br i1 %168, label %169, label %171

169:                                              ; preds = %162
  %170 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -7, ptr %170, align 8, !tbaa !9
  br label %204

171:                                              ; preds = %162
  %172 = load ptr, ptr %24, align 8, !tbaa !5
  %173 = load i64, ptr %172, align 8, !tbaa !9
  %174 = load ptr, ptr %20, align 8, !tbaa !5
  %175 = load i64, ptr %174, align 8, !tbaa !9
  %176 = add nsw i64 %175, 1
  %177 = icmp slt i64 %173, %176
  br i1 %177, label %178, label %180

178:                                              ; preds = %171
  %179 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -9, ptr %179, align 8, !tbaa !9
  br label %203

180:                                              ; preds = %171
  %181 = load ptr, ptr %26, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  %183 = icmp slt i64 %182, 1
  br i1 %183, label %200, label %184

184:                                              ; preds = %180
  %185 = load i64, ptr %79, align 8, !tbaa !9
  %186 = icmp ne i64 %185, 0
  br i1 %186, label %187, label %202

187:                                              ; preds = %184
  %188 = load ptr, ptr %26, align 8, !tbaa !5
  %189 = load i64, ptr %188, align 8, !tbaa !9
  %190 = load ptr, ptr %18, align 8, !tbaa !5
  %191 = load i64, ptr %190, align 8, !tbaa !9
  %192 = icmp sge i64 1, %191
  br i1 %192, label %193, label %194

193:                                              ; preds = %187
  br label %197

194:                                              ; preds = %187
  %195 = load ptr, ptr %18, align 8, !tbaa !5
  %196 = load i64, ptr %195, align 8, !tbaa !9
  br label %197

197:                                              ; preds = %194, %193
  %198 = phi i64 [ 1, %193 ], [ %196, %194 ]
  %199 = icmp slt i64 %189, %198
  br i1 %199, label %200, label %202

200:                                              ; preds = %197, %180
  %201 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -11, ptr %201, align 8, !tbaa !9
  br label %202

202:                                              ; preds = %200, %197, %184
  br label %203

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

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

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

206:                                              ; preds = %205, %148
  br label %207

207:                                              ; preds = %206, %142
  br label %208

208:                                              ; preds = %207, %136
  br label %209

209:                                              ; preds = %208, %127
  %210 = load ptr, ptr %29, align 8, !tbaa !5
  %211 = load i64, ptr %210, align 8, !tbaa !9
  %212 = icmp ne i64 %211, 0
  br i1 %212, label %213, label %218

213:                                              ; preds = %209
  %214 = load ptr, ptr %29, align 8, !tbaa !5
  %215 = load i64, ptr %214, align 8, !tbaa !9
  %216 = sub nsw i64 0, %215
  store i64 %216, ptr %36, align 8, !tbaa !9
  %217 = call i32 @xerbla_(ptr noundef @.str.4, ptr noundef %36)
  store i32 0, ptr %15, align 4
  store i32 1, ptr %81, align 4
  br label %10224

218:                                              ; preds = %209
  %219 = load ptr, ptr %18, align 8, !tbaa !5
  %220 = load i64, ptr %219, align 8, !tbaa !9
  %221 = icmp eq i64 %220, 0
  br i1 %221, label %222, label %223

222:                                              ; preds = %218
  store i32 0, ptr %15, align 4
  store i32 1, ptr %81, align 4
  br label %10224

223:                                              ; preds = %218
  %224 = load ptr, ptr %22, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  %226 = load i64, ptr %69, align 8, !tbaa !9
  %227 = mul nsw i64 %225, %226
  store i64 %227, ptr %77, align 8, !tbaa !9
  %228 = load i64, ptr %79, align 8, !tbaa !9
  %229 = icmp ne i64 %228, 0
  br i1 %229, label %230, label %238

230:                                              ; preds = %223
  %231 = load ptr, ptr %18, align 8, !tbaa !5
  %232 = load ptr, ptr %18, align 8, !tbaa !5
  %233 = load ptr, ptr %25, align 8, !tbaa !5
  %234 = load i64, ptr %35, align 8, !tbaa !9
  %235 = getelementptr inbounds %struct.complex, ptr %233, i64 %234
  %236 = load ptr, ptr %26, align 8, !tbaa !5
  %237 = call i32 @claset_(ptr noundef @.str.5, ptr noundef %231, ptr noundef %232, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %235, ptr noundef %236)
  br label %238

238:                                              ; preds = %230, %223
  %239 = load ptr, ptr %18, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  %241 = load ptr, ptr %20, align 8, !tbaa !5
  %242 = load i64, ptr %241, align 8, !tbaa !9
  %243 = add nsw i64 %240, %242
  %244 = sdiv i64 %243, 2
  store i64 %244, ptr %59, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  %245 = load ptr, ptr %18, align 8, !tbaa !5
  %246 = load i64, ptr %245, align 8, !tbaa !9
  %247 = add nsw i64 %246, 1
  store i64 %247, ptr %55, align 8, !tbaa !9
  br label %248

248:                                              ; preds = %5189, %301, %238
  %249 = load i64, ptr %80, align 8, !tbaa !9
  %250 = icmp ne i64 %249, 0
  br i1 %250, label %251, label %303

251:                                              ; preds = %248
  %252 = load i64, ptr %55, align 8, !tbaa !9
  %253 = add nsw i64 %252, -1
  store i64 %253, ptr %55, align 8, !tbaa !9
  %254 = load ptr, ptr %20, align 8, !tbaa !5
  %255 = load i64, ptr %254, align 8, !tbaa !9
  store i64 %255, ptr %36, align 8, !tbaa !9
  %256 = load i64, ptr %55, align 8, !tbaa !9
  %257 = sub nsw i64 %256, 1
  store i64 %257, ptr %37, align 8, !tbaa !9
  %258 = load i64, ptr %36, align 8, !tbaa !9
  %259 = load i64, ptr %37, align 8, !tbaa !9
  %260 = icmp sle i64 %258, %259
  br i1 %260, label %261, label %263

261:                                              ; preds = %251
  %262 = load i64, ptr %36, align 8, !tbaa !9
  br label %265

263:                                              ; preds = %251
  %264 = load i64, ptr %37, align 8, !tbaa !9
  br label %265

265:                                              ; preds = %263, %261
  %266 = phi i64 [ %262, %261 ], [ %264, %263 ]
  store i64 %266, ptr %75, align 8, !tbaa !9
  %267 = load i64, ptr %55, align 8, !tbaa !9
  %268 = sub nsw i64 %267, 1
  store i64 %268, ptr %61, align 8, !tbaa !9
  %269 = load ptr, ptr %18, align 8, !tbaa !5
  %270 = load i64, ptr %269, align 8, !tbaa !9
  store i64 %270, ptr %36, align 8, !tbaa !9
  %271 = load i64, ptr %55, align 8, !tbaa !9
  %272 = load ptr, ptr %19, align 8, !tbaa !5
  %273 = load i64, ptr %272, align 8, !tbaa !9
  %274 = add nsw i64 %271, %273
  store i64 %274, ptr %37, align 8, !tbaa !9
  %275 = load i64, ptr %36, align 8, !tbaa !9
  %276 = load i64, ptr %37, align 8, !tbaa !9
  %277 = icmp sle i64 %275, %276
  br i1 %277, label %278, label %280

278:                                              ; preds = %265
  %279 = load i64, ptr %36, align 8, !tbaa !9
  br label %282

280:                                              ; preds = %265
  %281 = load i64, ptr %37, align 8, !tbaa !9
  br label %282

282:                                              ; preds = %280, %278
  %283 = phi i64 [ %279, %278 ], [ %281, %280 ]
  store i64 %283, ptr %62, align 8, !tbaa !9
  %284 = load i64, ptr %55, align 8, !tbaa !9
  %285 = load i64, ptr %75, align 8, !tbaa !9
  %286 = sub nsw i64 %284, %285
  %287 = load i64, ptr %69, align 8, !tbaa !9
  %288 = add nsw i64 %286, %287
  store i64 %288, ptr %63, align 8, !tbaa !9
  %289 = load i64, ptr %55, align 8, !tbaa !9
  %290 = load i64, ptr %59, align 8, !tbaa !9
  %291 = add nsw i64 %290, 1
  %292 = icmp slt i64 %289, %291
  br i1 %292, label %293, label %302

293:                                              ; preds = %282
  store i64 0, ptr %80, align 8, !tbaa !9
  %294 = load i64, ptr %55, align 8, !tbaa !9
  %295 = add nsw i64 %294, 1
  store i64 %295, ptr %55, align 8, !tbaa !9
  %296 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %296, ptr %61, align 8, !tbaa !9
  %297 = load ptr, ptr %19, align 8, !tbaa !5
  %298 = load i64, ptr %297, align 8, !tbaa !9
  %299 = icmp eq i64 %298, 0
  br i1 %299, label %300, label %301

300:                                              ; preds = %293
  br label %5190

301:                                              ; preds = %293
  br label %248

302:                                              ; preds = %282
  br label %315

303:                                              ; preds = %248
  %304 = load ptr, ptr %19, align 8, !tbaa !5
  %305 = load i64, ptr %304, align 8, !tbaa !9
  %306 = load i64, ptr %55, align 8, !tbaa !9
  %307 = add nsw i64 %306, %305
  store i64 %307, ptr %55, align 8, !tbaa !9
  %308 = load i64, ptr %55, align 8, !tbaa !9
  %309 = load ptr, ptr %18, align 8, !tbaa !5
  %310 = load i64, ptr %309, align 8, !tbaa !9
  %311 = sub nsw i64 %310, 1
  %312 = icmp sgt i64 %308, %311
  br i1 %312, label %313, label %314

313:                                              ; preds = %303
  br label %5190

314:                                              ; preds = %303
  br label %315

315:                                              ; preds = %314, %302
  %316 = load i64, ptr %78, align 8, !tbaa !9
  %317 = icmp ne i64 %316, 0
  br i1 %317, label %318, label %2759

318:                                              ; preds = %315
  %319 = load i64, ptr %80, align 8, !tbaa !9
  %320 = icmp ne i64 %319, 0
  br i1 %320, label %321, label %1125

321:                                              ; preds = %318
  %322 = load i64, ptr %70, align 8, !tbaa !9
  %323 = load i64, ptr %55, align 8, !tbaa !9
  %324 = load i64, ptr %32, align 8, !tbaa !9
  %325 = mul nsw i64 %323, %324
  %326 = add nsw i64 %322, %325
  store i64 %326, ptr %36, align 8, !tbaa !9
  %327 = load ptr, ptr %23, align 8, !tbaa !5
  %328 = load i64, ptr %36, align 8, !tbaa !9
  %329 = getelementptr inbounds %struct.complex, ptr %327, i64 %328
  %330 = getelementptr inbounds %struct.complex, ptr %329, i32 0, i32 0
  %331 = load float, ptr %330, align 4, !tbaa !11
  store float %331, ptr %74, align 4, !tbaa !14
  %332 = load i64, ptr %69, align 8, !tbaa !9
  %333 = load i64, ptr %55, align 8, !tbaa !9
  %334 = load i64, ptr %30, align 8, !tbaa !9
  %335 = mul nsw i64 %333, %334
  %336 = add nsw i64 %332, %335
  store i64 %336, ptr %36, align 8, !tbaa !9
  %337 = load i64, ptr %69, align 8, !tbaa !9
  %338 = load i64, ptr %55, align 8, !tbaa !9
  %339 = load i64, ptr %30, align 8, !tbaa !9
  %340 = mul nsw i64 %338, %339
  %341 = add nsw i64 %337, %340
  store i64 %341, ptr %37, align 8, !tbaa !9
  %342 = load ptr, ptr %21, align 8, !tbaa !5
  %343 = load i64, ptr %37, align 8, !tbaa !9
  %344 = getelementptr inbounds %struct.complex, ptr %342, i64 %343
  %345 = getelementptr inbounds %struct.complex, ptr %344, i32 0, i32 0
  %346 = load float, ptr %345, align 4, !tbaa !11
  %347 = load float, ptr %74, align 4, !tbaa !14
  %348 = fdiv float %346, %347
  %349 = load float, ptr %74, align 4, !tbaa !14
  %350 = fdiv float %348, %349
  store float %350, ptr %44, align 4, !tbaa !14
  %351 = load float, ptr %44, align 4, !tbaa !14
  %352 = load ptr, ptr %21, align 8, !tbaa !5
  %353 = load i64, ptr %36, align 8, !tbaa !9
  %354 = getelementptr inbounds %struct.complex, ptr %352, i64 %353
  %355 = getelementptr inbounds %struct.complex, ptr %354, i32 0, i32 0
  store float %351, ptr %355, align 4, !tbaa !11
  %356 = load ptr, ptr %21, align 8, !tbaa !5
  %357 = load i64, ptr %36, align 8, !tbaa !9
  %358 = getelementptr inbounds %struct.complex, ptr %356, i64 %357
  %359 = getelementptr inbounds %struct.complex, ptr %358, i32 0, i32 1
  store float 0.000000e+00, ptr %359, align 4, !tbaa !15
  %360 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %360, ptr %36, align 8, !tbaa !9
  %361 = load i64, ptr %55, align 8, !tbaa !9
  %362 = add nsw i64 %361, 1
  store i64 %362, ptr %56, align 8, !tbaa !9
  br label %363

363:                                              ; preds = %414, %321
  %364 = load i64, ptr %56, align 8, !tbaa !9
  %365 = load i64, ptr %36, align 8, !tbaa !9
  %366 = icmp sle i64 %364, %365
  br i1 %366, label %367, label %417

367:                                              ; preds = %363
  %368 = load i64, ptr %55, align 8, !tbaa !9
  %369 = load i64, ptr %56, align 8, !tbaa !9
  %370 = sub nsw i64 %368, %369
  %371 = load i64, ptr %69, align 8, !tbaa !9
  %372 = add nsw i64 %370, %371
  %373 = load i64, ptr %56, align 8, !tbaa !9
  %374 = load i64, ptr %30, align 8, !tbaa !9
  %375 = mul nsw i64 %373, %374
  %376 = add nsw i64 %372, %375
  store i64 %376, ptr %37, align 8, !tbaa !9
  %377 = load i64, ptr %55, align 8, !tbaa !9
  %378 = load i64, ptr %56, align 8, !tbaa !9
  %379 = sub nsw i64 %377, %378
  %380 = load i64, ptr %69, align 8, !tbaa !9
  %381 = add nsw i64 %379, %380
  %382 = load i64, ptr %56, align 8, !tbaa !9
  %383 = load i64, ptr %30, align 8, !tbaa !9
  %384 = mul nsw i64 %382, %383
  %385 = add nsw i64 %381, %384
  store i64 %385, ptr %38, align 8, !tbaa !9
  %386 = load ptr, ptr %21, align 8, !tbaa !5
  %387 = load i64, ptr %38, align 8, !tbaa !9
  %388 = getelementptr inbounds %struct.complex, ptr %386, i64 %387
  %389 = getelementptr inbounds %struct.complex, ptr %388, i32 0, i32 0
  %390 = load float, ptr %389, align 4, !tbaa !11
  %391 = load float, ptr %74, align 4, !tbaa !14
  %392 = fdiv float %390, %391
  %393 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %392, ptr %393, align 4, !tbaa !11
  %394 = load ptr, ptr %21, align 8, !tbaa !5
  %395 = load i64, ptr %38, align 8, !tbaa !9
  %396 = getelementptr inbounds %struct.complex, ptr %394, i64 %395
  %397 = getelementptr inbounds %struct.complex, ptr %396, i32 0, i32 1
  %398 = load float, ptr %397, align 4, !tbaa !15
  %399 = load float, ptr %74, align 4, !tbaa !14
  %400 = fdiv float %398, %399
  %401 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %400, ptr %401, align 4, !tbaa !15
  %402 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %403 = load float, ptr %402, align 4, !tbaa !11
  %404 = load ptr, ptr %21, align 8, !tbaa !5
  %405 = load i64, ptr %37, align 8, !tbaa !9
  %406 = getelementptr inbounds %struct.complex, ptr %404, i64 %405
  %407 = getelementptr inbounds %struct.complex, ptr %406, i32 0, i32 0
  store float %403, ptr %407, align 4, !tbaa !11
  %408 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %409 = load float, ptr %408, align 4, !tbaa !15
  %410 = load ptr, ptr %21, align 8, !tbaa !5
  %411 = load i64, ptr %37, align 8, !tbaa !9
  %412 = getelementptr inbounds %struct.complex, ptr %410, i64 %411
  %413 = getelementptr inbounds %struct.complex, ptr %412, i32 0, i32 1
  store float %409, ptr %413, align 4, !tbaa !15
  br label %414

414:                                              ; preds = %367
  %415 = load i64, ptr %56, align 8, !tbaa !9
  %416 = add nsw i64 %415, 1
  store i64 %416, ptr %56, align 8, !tbaa !9
  br label %363, !llvm.loop !16

417:                                              ; preds = %363
  store i64 1, ptr %36, align 8, !tbaa !9
  %418 = load i64, ptr %55, align 8, !tbaa !9
  %419 = load ptr, ptr %19, align 8, !tbaa !5
  %420 = load i64, ptr %419, align 8, !tbaa !9
  %421 = sub nsw i64 %418, %420
  store i64 %421, ptr %37, align 8, !tbaa !9
  %422 = load i64, ptr %55, align 8, !tbaa !9
  %423 = sub nsw i64 %422, 1
  store i64 %423, ptr %38, align 8, !tbaa !9
  %424 = load i64, ptr %36, align 8, !tbaa !9
  %425 = load i64, ptr %37, align 8, !tbaa !9
  %426 = icmp sge i64 %424, %425
  br i1 %426, label %427, label %429

427:                                              ; preds = %417
  %428 = load i64, ptr %36, align 8, !tbaa !9
  br label %431

429:                                              ; preds = %417
  %430 = load i64, ptr %37, align 8, !tbaa !9
  br label %431

431:                                              ; preds = %429, %427
  %432 = phi i64 [ %428, %427 ], [ %430, %429 ]
  store i64 %432, ptr %56, align 8, !tbaa !9
  br label %433

433:                                              ; preds = %484, %431
  %434 = load i64, ptr %56, align 8, !tbaa !9
  %435 = load i64, ptr %38, align 8, !tbaa !9
  %436 = icmp sle i64 %434, %435
  br i1 %436, label %437, label %487

437:                                              ; preds = %433
  %438 = load i64, ptr %56, align 8, !tbaa !9
  %439 = load i64, ptr %55, align 8, !tbaa !9
  %440 = sub nsw i64 %438, %439
  %441 = load i64, ptr %69, align 8, !tbaa !9
  %442 = add nsw i64 %440, %441
  %443 = load i64, ptr %55, align 8, !tbaa !9
  %444 = load i64, ptr %30, align 8, !tbaa !9
  %445 = mul nsw i64 %443, %444
  %446 = add nsw i64 %442, %445
  store i64 %446, ptr %36, align 8, !tbaa !9
  %447 = load i64, ptr %56, align 8, !tbaa !9
  %448 = load i64, ptr %55, align 8, !tbaa !9
  %449 = sub nsw i64 %447, %448
  %450 = load i64, ptr %69, align 8, !tbaa !9
  %451 = add nsw i64 %449, %450
  %452 = load i64, ptr %55, align 8, !tbaa !9
  %453 = load i64, ptr %30, align 8, !tbaa !9
  %454 = mul nsw i64 %452, %453
  %455 = add nsw i64 %451, %454
  store i64 %455, ptr %37, align 8, !tbaa !9
  %456 = load ptr, ptr %21, align 8, !tbaa !5
  %457 = load i64, ptr %37, align 8, !tbaa !9
  %458 = getelementptr inbounds %struct.complex, ptr %456, i64 %457
  %459 = getelementptr inbounds %struct.complex, ptr %458, i32 0, i32 0
  %460 = load float, ptr %459, align 4, !tbaa !11
  %461 = load float, ptr %74, align 4, !tbaa !14
  %462 = fdiv float %460, %461
  %463 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %462, ptr %463, align 4, !tbaa !11
  %464 = load ptr, ptr %21, align 8, !tbaa !5
  %465 = load i64, ptr %37, align 8, !tbaa !9
  %466 = getelementptr inbounds %struct.complex, ptr %464, i64 %465
  %467 = getelementptr inbounds %struct.complex, ptr %466, i32 0, i32 1
  %468 = load float, ptr %467, align 4, !tbaa !15
  %469 = load float, ptr %74, align 4, !tbaa !14
  %470 = fdiv float %468, %469
  %471 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %470, ptr %471, align 4, !tbaa !15
  %472 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %473 = load float, ptr %472, align 4, !tbaa !11
  %474 = load ptr, ptr %21, align 8, !tbaa !5
  %475 = load i64, ptr %36, align 8, !tbaa !9
  %476 = getelementptr inbounds %struct.complex, ptr %474, i64 %475
  %477 = getelementptr inbounds %struct.complex, ptr %476, i32 0, i32 0
  store float %473, ptr %477, align 4, !tbaa !11
  %478 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %479 = load float, ptr %478, align 4, !tbaa !15
  %480 = load ptr, ptr %21, align 8, !tbaa !5
  %481 = load i64, ptr %36, align 8, !tbaa !9
  %482 = getelementptr inbounds %struct.complex, ptr %480, i64 %481
  %483 = getelementptr inbounds %struct.complex, ptr %482, i32 0, i32 1
  store float %479, ptr %483, align 4, !tbaa !15
  br label %484

484:                                              ; preds = %437
  %485 = load i64, ptr %56, align 8, !tbaa !9
  %486 = add nsw i64 %485, 1
  store i64 %486, ptr %56, align 8, !tbaa !9
  br label %433, !llvm.loop !18

487:                                              ; preds = %433
  %488 = load i64, ptr %55, align 8, !tbaa !9
  %489 = sub nsw i64 %488, 1
  store i64 %489, ptr %38, align 8, !tbaa !9
  %490 = load i64, ptr %55, align 8, !tbaa !9
  %491 = load i64, ptr %75, align 8, !tbaa !9
  %492 = sub nsw i64 %490, %491
  store i64 %492, ptr %57, align 8, !tbaa !9
  br label %493

493:                                              ; preds = %891, %487
  %494 = load i64, ptr %57, align 8, !tbaa !9
  %495 = load i64, ptr %38, align 8, !tbaa !9
  %496 = icmp sle i64 %494, %495
  br i1 %496, label %497, label %894

497:                                              ; preds = %493
  %498 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %498, ptr %36, align 8, !tbaa !9
  %499 = load i64, ptr %55, align 8, !tbaa !9
  %500 = load i64, ptr %75, align 8, !tbaa !9
  %501 = sub nsw i64 %499, %500
  store i64 %501, ptr %56, align 8, !tbaa !9
  br label %502

502:                                              ; preds = %758, %497
  %503 = load i64, ptr %56, align 8, !tbaa !9
  %504 = load i64, ptr %36, align 8, !tbaa !9
  %505 = icmp sle i64 %503, %504
  br i1 %505, label %506, label %761

506:                                              ; preds = %502
  %507 = load i64, ptr %56, align 8, !tbaa !9
  %508 = load i64, ptr %57, align 8, !tbaa !9
  %509 = sub nsw i64 %507, %508
  %510 = load i64, ptr %69, align 8, !tbaa !9
  %511 = add nsw i64 %509, %510
  %512 = load i64, ptr %57, align 8, !tbaa !9
  %513 = load i64, ptr %30, align 8, !tbaa !9
  %514 = mul nsw i64 %512, %513
  %515 = add nsw i64 %511, %514
  store i64 %515, ptr %37, align 8, !tbaa !9
  %516 = load i64, ptr %56, align 8, !tbaa !9
  %517 = load i64, ptr %57, align 8, !tbaa !9
  %518 = sub nsw i64 %516, %517
  %519 = load i64, ptr %69, align 8, !tbaa !9
  %520 = add nsw i64 %518, %519
  %521 = load i64, ptr %57, align 8, !tbaa !9
  %522 = load i64, ptr %30, align 8, !tbaa !9
  %523 = mul nsw i64 %521, %522
  %524 = add nsw i64 %520, %523
  store i64 %524, ptr %39, align 8, !tbaa !9
  %525 = load i64, ptr %56, align 8, !tbaa !9
  %526 = load i64, ptr %55, align 8, !tbaa !9
  %527 = sub nsw i64 %525, %526
  %528 = load i64, ptr %70, align 8, !tbaa !9
  %529 = add nsw i64 %527, %528
  %530 = load i64, ptr %55, align 8, !tbaa !9
  %531 = load i64, ptr %32, align 8, !tbaa !9
  %532 = mul nsw i64 %530, %531
  %533 = add nsw i64 %529, %532
  store i64 %533, ptr %40, align 8, !tbaa !9
  %534 = load ptr, ptr %21, align 8, !tbaa !5
  %535 = load i64, ptr %57, align 8, !tbaa !9
  %536 = load i64, ptr %55, align 8, !tbaa !9
  %537 = sub nsw i64 %535, %536
  %538 = load i64, ptr %69, align 8, !tbaa !9
  %539 = add nsw i64 %537, %538
  %540 = load i64, ptr %55, align 8, !tbaa !9
  %541 = load i64, ptr %30, align 8, !tbaa !9
  %542 = mul nsw i64 %540, %541
  %543 = add nsw i64 %539, %542
  %544 = getelementptr inbounds %struct.complex, ptr %534, i64 %543
  call void @r_cnjg(ptr noundef %49, ptr noundef %544)
  %545 = load ptr, ptr %23, align 8, !tbaa !5
  %546 = load i64, ptr %40, align 8, !tbaa !9
  %547 = getelementptr inbounds %struct.complex, ptr %545, i64 %546
  %548 = getelementptr inbounds %struct.complex, ptr %547, i32 0, i32 0
  %549 = load float, ptr %548, align 4, !tbaa !11
  %550 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %551 = load float, ptr %550, align 4, !tbaa !11
  %552 = load ptr, ptr %23, align 8, !tbaa !5
  %553 = load i64, ptr %40, align 8, !tbaa !9
  %554 = getelementptr inbounds %struct.complex, ptr %552, i64 %553
  %555 = getelementptr inbounds %struct.complex, ptr %554, i32 0, i32 1
  %556 = load float, ptr %555, align 4, !tbaa !15
  %557 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %558 = load float, ptr %557, align 4, !tbaa !15
  %559 = fmul float %556, %558
  %560 = fneg float %559
  %561 = call float @llvm.fmuladd.f32(float %549, float %551, float %560)
  %562 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %561, ptr %562, align 4, !tbaa !11
  %563 = load ptr, ptr %23, align 8, !tbaa !5
  %564 = load i64, ptr %40, align 8, !tbaa !9
  %565 = getelementptr inbounds %struct.complex, ptr %563, i64 %564
  %566 = getelementptr inbounds %struct.complex, ptr %565, i32 0, i32 0
  %567 = load float, ptr %566, align 4, !tbaa !11
  %568 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %569 = load float, ptr %568, align 4, !tbaa !15
  %570 = load ptr, ptr %23, align 8, !tbaa !5
  %571 = load i64, ptr %40, align 8, !tbaa !9
  %572 = getelementptr inbounds %struct.complex, ptr %570, i64 %571
  %573 = getelementptr inbounds %struct.complex, ptr %572, i32 0, i32 1
  %574 = load float, ptr %573, align 4, !tbaa !15
  %575 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %576 = load float, ptr %575, align 4, !tbaa !11
  %577 = fmul float %574, %576
  %578 = call float @llvm.fmuladd.f32(float %567, float %569, float %577)
  %579 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %578, ptr %579, align 4, !tbaa !15
  %580 = load ptr, ptr %21, align 8, !tbaa !5
  %581 = load i64, ptr %39, align 8, !tbaa !9
  %582 = getelementptr inbounds %struct.complex, ptr %580, i64 %581
  %583 = getelementptr inbounds %struct.complex, ptr %582, i32 0, i32 0
  %584 = load float, ptr %583, align 4, !tbaa !11
  %585 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %586 = load float, ptr %585, align 4, !tbaa !11
  %587 = fsub float %584, %586
  %588 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %587, ptr %588, align 4, !tbaa !11
  %589 = load ptr, ptr %21, align 8, !tbaa !5
  %590 = load i64, ptr %39, align 8, !tbaa !9
  %591 = getelementptr inbounds %struct.complex, ptr %589, i64 %590
  %592 = getelementptr inbounds %struct.complex, ptr %591, i32 0, i32 1
  %593 = load float, ptr %592, align 4, !tbaa !15
  %594 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %595 = load float, ptr %594, align 4, !tbaa !15
  %596 = fsub float %593, %595
  %597 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %596, ptr %597, align 4, !tbaa !15
  %598 = load ptr, ptr %23, align 8, !tbaa !5
  %599 = load i64, ptr %57, align 8, !tbaa !9
  %600 = load i64, ptr %55, align 8, !tbaa !9
  %601 = sub nsw i64 %599, %600
  %602 = load i64, ptr %70, align 8, !tbaa !9
  %603 = add nsw i64 %601, %602
  %604 = load i64, ptr %55, align 8, !tbaa !9
  %605 = load i64, ptr %32, align 8, !tbaa !9
  %606 = mul nsw i64 %604, %605
  %607 = add nsw i64 %603, %606
  %608 = getelementptr inbounds %struct.complex, ptr %598, i64 %607
  call void @r_cnjg(ptr noundef %51, ptr noundef %608)
  %609 = load i64, ptr %56, align 8, !tbaa !9
  %610 = load i64, ptr %55, align 8, !tbaa !9
  %611 = sub nsw i64 %609, %610
  %612 = load i64, ptr %69, align 8, !tbaa !9
  %613 = add nsw i64 %611, %612
  %614 = load i64, ptr %55, align 8, !tbaa !9
  %615 = load i64, ptr %30, align 8, !tbaa !9
  %616 = mul nsw i64 %614, %615
  %617 = add nsw i64 %613, %616
  store i64 %617, ptr %41, align 8, !tbaa !9
  %618 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %619 = load float, ptr %618, align 4, !tbaa !11
  %620 = load ptr, ptr %21, align 8, !tbaa !5
  %621 = load i64, ptr %41, align 8, !tbaa !9
  %622 = getelementptr inbounds %struct.complex, ptr %620, i64 %621
  %623 = getelementptr inbounds %struct.complex, ptr %622, i32 0, i32 0
  %624 = load float, ptr %623, align 4, !tbaa !11
  %625 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %626 = load float, ptr %625, align 4, !tbaa !15
  %627 = load ptr, ptr %21, align 8, !tbaa !5
  %628 = load i64, ptr %41, align 8, !tbaa !9
  %629 = getelementptr inbounds %struct.complex, ptr %627, i64 %628
  %630 = getelementptr inbounds %struct.complex, ptr %629, i32 0, i32 1
  %631 = load float, ptr %630, align 4, !tbaa !15
  %632 = fmul float %626, %631
  %633 = fneg float %632
  %634 = call float @llvm.fmuladd.f32(float %619, float %624, float %633)
  %635 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %634, ptr %635, align 4, !tbaa !11
  %636 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %637 = load float, ptr %636, align 4, !tbaa !11
  %638 = load ptr, ptr %21, align 8, !tbaa !5
  %639 = load i64, ptr %41, align 8, !tbaa !9
  %640 = getelementptr inbounds %struct.complex, ptr %638, i64 %639
  %641 = getelementptr inbounds %struct.complex, ptr %640, i32 0, i32 1
  %642 = load float, ptr %641, align 4, !tbaa !15
  %643 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %644 = load float, ptr %643, align 4, !tbaa !15
  %645 = load ptr, ptr %21, align 8, !tbaa !5
  %646 = load i64, ptr %41, align 8, !tbaa !9
  %647 = getelementptr inbounds %struct.complex, ptr %645, i64 %646
  %648 = getelementptr inbounds %struct.complex, ptr %647, i32 0, i32 0
  %649 = load float, ptr %648, align 4, !tbaa !11
  %650 = fmul float %644, %649
  %651 = call float @llvm.fmuladd.f32(float %637, float %642, float %650)
  %652 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %651, ptr %652, align 4, !tbaa !15
  %653 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %654 = load float, ptr %653, align 4, !tbaa !11
  %655 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %656 = load float, ptr %655, align 4, !tbaa !11
  %657 = fsub float %654, %656
  %658 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %657, ptr %658, align 4, !tbaa !11
  %659 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %660 = load float, ptr %659, align 4, !tbaa !15
  %661 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %662 = load float, ptr %661, align 4, !tbaa !15
  %663 = fsub float %660, %662
  %664 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %663, ptr %664, align 4, !tbaa !15
  %665 = load i64, ptr %69, align 8, !tbaa !9
  %666 = load i64, ptr %55, align 8, !tbaa !9
  %667 = load i64, ptr %30, align 8, !tbaa !9
  %668 = mul nsw i64 %666, %667
  %669 = add nsw i64 %665, %668
  store i64 %669, ptr %42, align 8, !tbaa !9
  %670 = load ptr, ptr %21, align 8, !tbaa !5
  %671 = load i64, ptr %42, align 8, !tbaa !9
  %672 = getelementptr inbounds %struct.complex, ptr %670, i64 %671
  %673 = getelementptr inbounds %struct.complex, ptr %672, i32 0, i32 0
  %674 = load float, ptr %673, align 4, !tbaa !11
  store float %674, ptr %44, align 4, !tbaa !14
  %675 = load i64, ptr %56, align 8, !tbaa !9
  %676 = load i64, ptr %55, align 8, !tbaa !9
  %677 = sub nsw i64 %675, %676
  %678 = load i64, ptr %70, align 8, !tbaa !9
  %679 = add nsw i64 %677, %678
  %680 = load i64, ptr %55, align 8, !tbaa !9
  %681 = load i64, ptr %32, align 8, !tbaa !9
  %682 = mul nsw i64 %680, %681
  %683 = add nsw i64 %679, %682
  store i64 %683, ptr %43, align 8, !tbaa !9
  %684 = load float, ptr %44, align 4, !tbaa !14
  %685 = load ptr, ptr %23, align 8, !tbaa !5
  %686 = load i64, ptr %43, align 8, !tbaa !9
  %687 = getelementptr inbounds %struct.complex, ptr %685, i64 %686
  %688 = getelementptr inbounds %struct.complex, ptr %687, i32 0, i32 0
  %689 = load float, ptr %688, align 4, !tbaa !11
  %690 = fmul float %684, %689
  %691 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  store float %690, ptr %691, align 4, !tbaa !11
  %692 = load float, ptr %44, align 4, !tbaa !14
  %693 = load ptr, ptr %23, align 8, !tbaa !5
  %694 = load i64, ptr %43, align 8, !tbaa !9
  %695 = getelementptr inbounds %struct.complex, ptr %693, i64 %694
  %696 = getelementptr inbounds %struct.complex, ptr %695, i32 0, i32 1
  %697 = load float, ptr %696, align 4, !tbaa !15
  %698 = fmul float %692, %697
  %699 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  store float %698, ptr %699, align 4, !tbaa !15
  %700 = load ptr, ptr %23, align 8, !tbaa !5
  %701 = load i64, ptr %57, align 8, !tbaa !9
  %702 = load i64, ptr %55, align 8, !tbaa !9
  %703 = sub nsw i64 %701, %702
  %704 = load i64, ptr %70, align 8, !tbaa !9
  %705 = add nsw i64 %703, %704
  %706 = load i64, ptr %55, align 8, !tbaa !9
  %707 = load i64, ptr %32, align 8, !tbaa !9
  %708 = mul nsw i64 %706, %707
  %709 = add nsw i64 %705, %708
  %710 = getelementptr inbounds %struct.complex, ptr %700, i64 %709
  call void @r_cnjg(ptr noundef %54, ptr noundef %710)
  %711 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %712 = load float, ptr %711, align 4, !tbaa !11
  %713 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %714 = load float, ptr %713, align 4, !tbaa !11
  %715 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %716 = load float, ptr %715, align 4, !tbaa !15
  %717 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %718 = load float, ptr %717, align 4, !tbaa !15
  %719 = fmul float %716, %718
  %720 = fneg float %719
  %721 = call float @llvm.fmuladd.f32(float %712, float %714, float %720)
  %722 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %721, ptr %722, align 4, !tbaa !11
  %723 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %724 = load float, ptr %723, align 4, !tbaa !11
  %725 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %726 = load float, ptr %725, align 4, !tbaa !15
  %727 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %728 = load float, ptr %727, align 4, !tbaa !15
  %729 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %730 = load float, ptr %729, align 4, !tbaa !11
  %731 = fmul float %728, %730
  %732 = call float @llvm.fmuladd.f32(float %724, float %726, float %731)
  %733 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %732, ptr %733, align 4, !tbaa !15
  %734 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %735 = load float, ptr %734, align 4, !tbaa !11
  %736 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %737 = load float, ptr %736, align 4, !tbaa !11
  %738 = fadd float %735, %737
  %739 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %738, ptr %739, align 4, !tbaa !11
  %740 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %741 = load float, ptr %740, align 4, !tbaa !15
  %742 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %743 = load float, ptr %742, align 4, !tbaa !15
  %744 = fadd float %741, %743
  %745 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %744, ptr %745, align 4, !tbaa !15
  %746 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %747 = load float, ptr %746, align 4, !tbaa !11
  %748 = load ptr, ptr %21, align 8, !tbaa !5
  %749 = load i64, ptr %37, align 8, !tbaa !9
  %750 = getelementptr inbounds %struct.complex, ptr %748, i64 %749
  %751 = getelementptr inbounds %struct.complex, ptr %750, i32 0, i32 0
  store float %747, ptr %751, align 4, !tbaa !11
  %752 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %753 = load float, ptr %752, align 4, !tbaa !15
  %754 = load ptr, ptr %21, align 8, !tbaa !5
  %755 = load i64, ptr %37, align 8, !tbaa !9
  %756 = getelementptr inbounds %struct.complex, ptr %754, i64 %755
  %757 = getelementptr inbounds %struct.complex, ptr %756, i32 0, i32 1
  store float %753, ptr %757, align 4, !tbaa !15
  br label %758

758:                                              ; preds = %506
  %759 = load i64, ptr %56, align 8, !tbaa !9
  %760 = add nsw i64 %759, 1
  store i64 %760, ptr %56, align 8, !tbaa !9
  br label %502, !llvm.loop !19

761:                                              ; preds = %502
  store i64 1, ptr %36, align 8, !tbaa !9
  %762 = load i64, ptr %55, align 8, !tbaa !9
  %763 = load ptr, ptr %19, align 8, !tbaa !5
  %764 = load i64, ptr %763, align 8, !tbaa !9
  %765 = sub nsw i64 %762, %764
  store i64 %765, ptr %37, align 8, !tbaa !9
  %766 = load i64, ptr %55, align 8, !tbaa !9
  %767 = load i64, ptr %75, align 8, !tbaa !9
  %768 = sub nsw i64 %766, %767
  %769 = sub nsw i64 %768, 1
  store i64 %769, ptr %39, align 8, !tbaa !9
  %770 = load i64, ptr %36, align 8, !tbaa !9
  %771 = load i64, ptr %37, align 8, !tbaa !9
  %772 = icmp sge i64 %770, %771
  br i1 %772, label %773, label %775

773:                                              ; preds = %761
  %774 = load i64, ptr %36, align 8, !tbaa !9
  br label %777

775:                                              ; preds = %761
  %776 = load i64, ptr %37, align 8, !tbaa !9
  br label %777

777:                                              ; preds = %775, %773
  %778 = phi i64 [ %774, %773 ], [ %776, %775 ]
  store i64 %778, ptr %56, align 8, !tbaa !9
  br label %779

779:                                              ; preds = %887, %777
  %780 = load i64, ptr %56, align 8, !tbaa !9
  %781 = load i64, ptr %39, align 8, !tbaa !9
  %782 = icmp sle i64 %780, %781
  br i1 %782, label %783, label %890

783:                                              ; preds = %779
  %784 = load i64, ptr %56, align 8, !tbaa !9
  %785 = load i64, ptr %57, align 8, !tbaa !9
  %786 = sub nsw i64 %784, %785
  %787 = load i64, ptr %69, align 8, !tbaa !9
  %788 = add nsw i64 %786, %787
  %789 = load i64, ptr %57, align 8, !tbaa !9
  %790 = load i64, ptr %30, align 8, !tbaa !9
  %791 = mul nsw i64 %789, %790
  %792 = add nsw i64 %788, %791
  store i64 %792, ptr %36, align 8, !tbaa !9
  %793 = load i64, ptr %56, align 8, !tbaa !9
  %794 = load i64, ptr %57, align 8, !tbaa !9
  %795 = sub nsw i64 %793, %794
  %796 = load i64, ptr %69, align 8, !tbaa !9
  %797 = add nsw i64 %795, %796
  %798 = load i64, ptr %57, align 8, !tbaa !9
  %799 = load i64, ptr %30, align 8, !tbaa !9
  %800 = mul nsw i64 %798, %799
  %801 = add nsw i64 %797, %800
  store i64 %801, ptr %37, align 8, !tbaa !9
  %802 = load ptr, ptr %23, align 8, !tbaa !5
  %803 = load i64, ptr %57, align 8, !tbaa !9
  %804 = load i64, ptr %55, align 8, !tbaa !9
  %805 = sub nsw i64 %803, %804
  %806 = load i64, ptr %70, align 8, !tbaa !9
  %807 = add nsw i64 %805, %806
  %808 = load i64, ptr %55, align 8, !tbaa !9
  %809 = load i64, ptr %32, align 8, !tbaa !9
  %810 = mul nsw i64 %808, %809
  %811 = add nsw i64 %807, %810
  %812 = getelementptr inbounds %struct.complex, ptr %802, i64 %811
  call void @r_cnjg(ptr noundef %47, ptr noundef %812)
  %813 = load i64, ptr %56, align 8, !tbaa !9
  %814 = load i64, ptr %55, align 8, !tbaa !9
  %815 = sub nsw i64 %813, %814
  %816 = load i64, ptr %69, align 8, !tbaa !9
  %817 = add nsw i64 %815, %816
  %818 = load i64, ptr %55, align 8, !tbaa !9
  %819 = load i64, ptr %30, align 8, !tbaa !9
  %820 = mul nsw i64 %818, %819
  %821 = add nsw i64 %817, %820
  store i64 %821, ptr %40, align 8, !tbaa !9
  %822 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %823 = load float, ptr %822, align 4, !tbaa !11
  %824 = load ptr, ptr %21, align 8, !tbaa !5
  %825 = load i64, ptr %40, align 8, !tbaa !9
  %826 = getelementptr inbounds %struct.complex, ptr %824, i64 %825
  %827 = getelementptr inbounds %struct.complex, ptr %826, i32 0, i32 0
  %828 = load float, ptr %827, align 4, !tbaa !11
  %829 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %830 = load float, ptr %829, align 4, !tbaa !15
  %831 = load ptr, ptr %21, align 8, !tbaa !5
  %832 = load i64, ptr %40, align 8, !tbaa !9
  %833 = getelementptr inbounds %struct.complex, ptr %831, i64 %832
  %834 = getelementptr inbounds %struct.complex, ptr %833, i32 0, i32 1
  %835 = load float, ptr %834, align 4, !tbaa !15
  %836 = fmul float %830, %835
  %837 = fneg float %836
  %838 = call float @llvm.fmuladd.f32(float %823, float %828, float %837)
  %839 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %838, ptr %839, align 4, !tbaa !11
  %840 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %841 = load float, ptr %840, align 4, !tbaa !11
  %842 = load ptr, ptr %21, align 8, !tbaa !5
  %843 = load i64, ptr %40, align 8, !tbaa !9
  %844 = getelementptr inbounds %struct.complex, ptr %842, i64 %843
  %845 = getelementptr inbounds %struct.complex, ptr %844, i32 0, i32 1
  %846 = load float, ptr %845, align 4, !tbaa !15
  %847 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %848 = load float, ptr %847, align 4, !tbaa !15
  %849 = load ptr, ptr %21, align 8, !tbaa !5
  %850 = load i64, ptr %40, align 8, !tbaa !9
  %851 = getelementptr inbounds %struct.complex, ptr %849, i64 %850
  %852 = getelementptr inbounds %struct.complex, ptr %851, i32 0, i32 0
  %853 = load float, ptr %852, align 4, !tbaa !11
  %854 = fmul float %848, %853
  %855 = call float @llvm.fmuladd.f32(float %841, float %846, float %854)
  %856 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %855, ptr %856, align 4, !tbaa !15
  %857 = load ptr, ptr %21, align 8, !tbaa !5
  %858 = load i64, ptr %37, align 8, !tbaa !9
  %859 = getelementptr inbounds %struct.complex, ptr %857, i64 %858
  %860 = getelementptr inbounds %struct.complex, ptr %859, i32 0, i32 0
  %861 = load float, ptr %860, align 4, !tbaa !11
  %862 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %863 = load float, ptr %862, align 4, !tbaa !11
  %864 = fsub float %861, %863
  %865 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %864, ptr %865, align 4, !tbaa !11
  %866 = load ptr, ptr %21, align 8, !tbaa !5
  %867 = load i64, ptr %37, align 8, !tbaa !9
  %868 = getelementptr inbounds %struct.complex, ptr %866, i64 %867
  %869 = getelementptr inbounds %struct.complex, ptr %868, i32 0, i32 1
  %870 = load float, ptr %869, align 4, !tbaa !15
  %871 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %872 = load float, ptr %871, align 4, !tbaa !15
  %873 = fsub float %870, %872
  %874 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %873, ptr %874, align 4, !tbaa !15
  %875 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %876 = load float, ptr %875, align 4, !tbaa !11
  %877 = load ptr, ptr %21, align 8, !tbaa !5
  %878 = load i64, ptr %36, align 8, !tbaa !9
  %879 = getelementptr inbounds %struct.complex, ptr %877, i64 %878
  %880 = getelementptr inbounds %struct.complex, ptr %879, i32 0, i32 0
  store float %876, ptr %880, align 4, !tbaa !11
  %881 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %882 = load float, ptr %881, align 4, !tbaa !15
  %883 = load ptr, ptr %21, align 8, !tbaa !5
  %884 = load i64, ptr %36, align 8, !tbaa !9
  %885 = getelementptr inbounds %struct.complex, ptr %883, i64 %884
  %886 = getelementptr inbounds %struct.complex, ptr %885, i32 0, i32 1
  store float %882, ptr %886, align 4, !tbaa !15
  br label %887

887:                                              ; preds = %783
  %888 = load i64, ptr %56, align 8, !tbaa !9
  %889 = add nsw i64 %888, 1
  store i64 %889, ptr %56, align 8, !tbaa !9
  br label %779, !llvm.loop !20

890:                                              ; preds = %779
  br label %891

891:                                              ; preds = %890
  %892 = load i64, ptr %57, align 8, !tbaa !9
  %893 = add nsw i64 %892, 1
  store i64 %893, ptr %57, align 8, !tbaa !9
  br label %493, !llvm.loop !21

894:                                              ; preds = %493
  %895 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %895, ptr %38, align 8, !tbaa !9
  %896 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %896, ptr %56, align 8, !tbaa !9
  br label %897

897:                                              ; preds = %1042, %894
  %898 = load i64, ptr %56, align 8, !tbaa !9
  %899 = load i64, ptr %38, align 8, !tbaa !9
  %900 = icmp sle i64 %898, %899
  br i1 %900, label %901, label %1045

901:                                              ; preds = %897
  %902 = load i64, ptr %56, align 8, !tbaa !9
  %903 = load ptr, ptr %19, align 8, !tbaa !5
  %904 = load i64, ptr %903, align 8, !tbaa !9
  %905 = sub nsw i64 %902, %904
  store i64 %905, ptr %39, align 8, !tbaa !9
  %906 = load i64, ptr %55, align 8, !tbaa !9
  %907 = load i64, ptr %75, align 8, !tbaa !9
  %908 = sub nsw i64 %906, %907
  store i64 %908, ptr %36, align 8, !tbaa !9
  %909 = load i64, ptr %55, align 8, !tbaa !9
  %910 = sub nsw i64 %909, 1
  store i64 %910, ptr %37, align 8, !tbaa !9
  %911 = load i64, ptr %39, align 8, !tbaa !9
  %912 = load i64, ptr %36, align 8, !tbaa !9
  %913 = icmp sge i64 %911, %912
  br i1 %913, label %914, label %916

914:                                              ; preds = %901
  %915 = load i64, ptr %39, align 8, !tbaa !9
  br label %918

916:                                              ; preds = %901
  %917 = load i64, ptr %36, align 8, !tbaa !9
  br label %918

918:                                              ; preds = %916, %914
  %919 = phi i64 [ %915, %914 ], [ %917, %916 ]
  store i64 %919, ptr %57, align 8, !tbaa !9
  br label %920

920:                                              ; preds = %1038, %918
  %921 = load i64, ptr %57, align 8, !tbaa !9
  %922 = load i64, ptr %37, align 8, !tbaa !9
  %923 = icmp sle i64 %921, %922
  br i1 %923, label %924, label %1041

924:                                              ; preds = %920
  %925 = load i64, ptr %57, align 8, !tbaa !9
  %926 = load i64, ptr %56, align 8, !tbaa !9
  %927 = sub nsw i64 %925, %926
  %928 = load i64, ptr %69, align 8, !tbaa !9
  %929 = add nsw i64 %927, %928
  %930 = load i64, ptr %56, align 8, !tbaa !9
  %931 = load i64, ptr %30, align 8, !tbaa !9
  %932 = mul nsw i64 %930, %931
  %933 = add nsw i64 %929, %932
  store i64 %933, ptr %39, align 8, !tbaa !9
  %934 = load i64, ptr %57, align 8, !tbaa !9
  %935 = load i64, ptr %56, align 8, !tbaa !9
  %936 = sub nsw i64 %934, %935
  %937 = load i64, ptr %69, align 8, !tbaa !9
  %938 = add nsw i64 %936, %937
  %939 = load i64, ptr %56, align 8, !tbaa !9
  %940 = load i64, ptr %30, align 8, !tbaa !9
  %941 = mul nsw i64 %939, %940
  %942 = add nsw i64 %938, %941
  store i64 %942, ptr %36, align 8, !tbaa !9
  %943 = load i64, ptr %57, align 8, !tbaa !9
  %944 = load i64, ptr %55, align 8, !tbaa !9
  %945 = sub nsw i64 %943, %944
  %946 = load i64, ptr %70, align 8, !tbaa !9
  %947 = add nsw i64 %945, %946
  %948 = load i64, ptr %55, align 8, !tbaa !9
  %949 = load i64, ptr %32, align 8, !tbaa !9
  %950 = mul nsw i64 %948, %949
  %951 = add nsw i64 %947, %950
  store i64 %951, ptr %40, align 8, !tbaa !9
  %952 = load i64, ptr %55, align 8, !tbaa !9
  %953 = load i64, ptr %56, align 8, !tbaa !9
  %954 = sub nsw i64 %952, %953
  %955 = load i64, ptr %69, align 8, !tbaa !9
  %956 = add nsw i64 %954, %955
  %957 = load i64, ptr %56, align 8, !tbaa !9
  %958 = load i64, ptr %30, align 8, !tbaa !9
  %959 = mul nsw i64 %957, %958
  %960 = add nsw i64 %956, %959
  store i64 %960, ptr %41, align 8, !tbaa !9
  %961 = load ptr, ptr %23, align 8, !tbaa !5
  %962 = load i64, ptr %40, align 8, !tbaa !9
  %963 = getelementptr inbounds %struct.complex, ptr %961, i64 %962
  %964 = getelementptr inbounds %struct.complex, ptr %963, i32 0, i32 0
  %965 = load float, ptr %964, align 4, !tbaa !11
  %966 = load ptr, ptr %21, align 8, !tbaa !5
  %967 = load i64, ptr %41, align 8, !tbaa !9
  %968 = getelementptr inbounds %struct.complex, ptr %966, i64 %967
  %969 = getelementptr inbounds %struct.complex, ptr %968, i32 0, i32 0
  %970 = load float, ptr %969, align 4, !tbaa !11
  %971 = load ptr, ptr %23, align 8, !tbaa !5
  %972 = load i64, ptr %40, align 8, !tbaa !9
  %973 = getelementptr inbounds %struct.complex, ptr %971, i64 %972
  %974 = getelementptr inbounds %struct.complex, ptr %973, i32 0, i32 1
  %975 = load float, ptr %974, align 4, !tbaa !15
  %976 = load ptr, ptr %21, align 8, !tbaa !5
  %977 = load i64, ptr %41, align 8, !tbaa !9
  %978 = getelementptr inbounds %struct.complex, ptr %976, i64 %977
  %979 = getelementptr inbounds %struct.complex, ptr %978, i32 0, i32 1
  %980 = load float, ptr %979, align 4, !tbaa !15
  %981 = fmul float %975, %980
  %982 = fneg float %981
  %983 = call float @llvm.fmuladd.f32(float %965, float %970, float %982)
  %984 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %983, ptr %984, align 4, !tbaa !11
  %985 = load ptr, ptr %23, align 8, !tbaa !5
  %986 = load i64, ptr %40, align 8, !tbaa !9
  %987 = getelementptr inbounds %struct.complex, ptr %985, i64 %986
  %988 = getelementptr inbounds %struct.complex, ptr %987, i32 0, i32 0
  %989 = load float, ptr %988, align 4, !tbaa !11
  %990 = load ptr, ptr %21, align 8, !tbaa !5
  %991 = load i64, ptr %41, align 8, !tbaa !9
  %992 = getelementptr inbounds %struct.complex, ptr %990, i64 %991
  %993 = getelementptr inbounds %struct.complex, ptr %992, i32 0, i32 1
  %994 = load float, ptr %993, align 4, !tbaa !15
  %995 = load ptr, ptr %23, align 8, !tbaa !5
  %996 = load i64, ptr %40, align 8, !tbaa !9
  %997 = getelementptr inbounds %struct.complex, ptr %995, i64 %996
  %998 = getelementptr inbounds %struct.complex, ptr %997, i32 0, i32 1
  %999 = load float, ptr %998, align 4, !tbaa !15
  %1000 = load ptr, ptr %21, align 8, !tbaa !5
  %1001 = load i64, ptr %41, align 8, !tbaa !9
  %1002 = getelementptr inbounds %struct.complex, ptr %1000, i64 %1001
  %1003 = getelementptr inbounds %struct.complex, ptr %1002, i32 0, i32 0
  %1004 = load float, ptr %1003, align 4, !tbaa !11
  %1005 = fmul float %999, %1004
  %1006 = call float @llvm.fmuladd.f32(float %989, float %994, float %1005)
  %1007 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1006, ptr %1007, align 4, !tbaa !15
  %1008 = load ptr, ptr %21, align 8, !tbaa !5
  %1009 = load i64, ptr %36, align 8, !tbaa !9
  %1010 = getelementptr inbounds %struct.complex, ptr %1008, i64 %1009
  %1011 = getelementptr inbounds %struct.complex, ptr %1010, i32 0, i32 0
  %1012 = load float, ptr %1011, align 4, !tbaa !11
  %1013 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1014 = load float, ptr %1013, align 4, !tbaa !11
  %1015 = fsub float %1012, %1014
  %1016 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1015, ptr %1016, align 4, !tbaa !11
  %1017 = load ptr, ptr %21, align 8, !tbaa !5
  %1018 = load i64, ptr %36, align 8, !tbaa !9
  %1019 = getelementptr inbounds %struct.complex, ptr %1017, i64 %1018
  %1020 = getelementptr inbounds %struct.complex, ptr %1019, i32 0, i32 1
  %1021 = load float, ptr %1020, align 4, !tbaa !15
  %1022 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1023 = load float, ptr %1022, align 4, !tbaa !15
  %1024 = fsub float %1021, %1023
  %1025 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1024, ptr %1025, align 4, !tbaa !15
  %1026 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1027 = load float, ptr %1026, align 4, !tbaa !11
  %1028 = load ptr, ptr %21, align 8, !tbaa !5
  %1029 = load i64, ptr %39, align 8, !tbaa !9
  %1030 = getelementptr inbounds %struct.complex, ptr %1028, i64 %1029
  %1031 = getelementptr inbounds %struct.complex, ptr %1030, i32 0, i32 0
  store float %1027, ptr %1031, align 4, !tbaa !11
  %1032 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1033 = load float, ptr %1032, align 4, !tbaa !15
  %1034 = load ptr, ptr %21, align 8, !tbaa !5
  %1035 = load i64, ptr %39, align 8, !tbaa !9
  %1036 = getelementptr inbounds %struct.complex, ptr %1034, i64 %1035
  %1037 = getelementptr inbounds %struct.complex, ptr %1036, i32 0, i32 1
  store float %1033, ptr %1037, align 4, !tbaa !15
  br label %1038

1038:                                             ; preds = %924
  %1039 = load i64, ptr %57, align 8, !tbaa !9
  %1040 = add nsw i64 %1039, 1
  store i64 %1040, ptr %57, align 8, !tbaa !9
  br label %920, !llvm.loop !22

1041:                                             ; preds = %920
  br label %1042

1042:                                             ; preds = %1041
  %1043 = load i64, ptr %56, align 8, !tbaa !9
  %1044 = add nsw i64 %1043, 1
  store i64 %1044, ptr %56, align 8, !tbaa !9
  br label %897, !llvm.loop !23

1045:                                             ; preds = %897
  %1046 = load i64, ptr %79, align 8, !tbaa !9
  %1047 = icmp ne i64 %1046, 0
  br i1 %1047, label %1048, label %1103

1048:                                             ; preds = %1045
  %1049 = load ptr, ptr %18, align 8, !tbaa !5
  %1050 = load i64, ptr %1049, align 8, !tbaa !9
  %1051 = load i64, ptr %59, align 8, !tbaa !9
  %1052 = sub nsw i64 %1050, %1051
  store i64 %1052, ptr %38, align 8, !tbaa !9
  %1053 = load float, ptr %74, align 4, !tbaa !14
  %1054 = fdiv float 1.000000e+00, %1053
  store float %1054, ptr %44, align 4, !tbaa !14
  %1055 = load ptr, ptr %25, align 8, !tbaa !5
  %1056 = load i64, ptr %59, align 8, !tbaa !9
  %1057 = add nsw i64 %1056, 1
  %1058 = load i64, ptr %55, align 8, !tbaa !9
  %1059 = load i64, ptr %34, align 8, !tbaa !9
  %1060 = mul nsw i64 %1058, %1059
  %1061 = add nsw i64 %1057, %1060
  %1062 = getelementptr inbounds %struct.complex, ptr %1055, i64 %1061
  %1063 = call i32 @f2c_csscal(ptr noundef %38, ptr noundef %44, ptr noundef %1062, ptr noundef @c__1)
  %1064 = load i64, ptr %75, align 8, !tbaa !9
  %1065 = icmp sgt i64 %1064, 0
  br i1 %1065, label %1066, label %1102

1066:                                             ; preds = %1048
  %1067 = load ptr, ptr %18, align 8, !tbaa !5
  %1068 = load i64, ptr %1067, align 8, !tbaa !9
  %1069 = load i64, ptr %59, align 8, !tbaa !9
  %1070 = sub nsw i64 %1068, %1069
  store i64 %1070, ptr %38, align 8, !tbaa !9
  %1071 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float -1.000000e+00, ptr %1071, align 4, !tbaa !11
  %1072 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float -0.000000e+00, ptr %1072, align 4, !tbaa !15
  %1073 = load ptr, ptr %25, align 8, !tbaa !5
  %1074 = load i64, ptr %59, align 8, !tbaa !9
  %1075 = add nsw i64 %1074, 1
  %1076 = load i64, ptr %55, align 8, !tbaa !9
  %1077 = load i64, ptr %34, align 8, !tbaa !9
  %1078 = mul nsw i64 %1076, %1077
  %1079 = add nsw i64 %1075, %1078
  %1080 = getelementptr inbounds %struct.complex, ptr %1073, i64 %1079
  %1081 = load ptr, ptr %23, align 8, !tbaa !5
  %1082 = load i64, ptr %70, align 8, !tbaa !9
  %1083 = load i64, ptr %75, align 8, !tbaa !9
  %1084 = sub nsw i64 %1082, %1083
  %1085 = load i64, ptr %55, align 8, !tbaa !9
  %1086 = load i64, ptr %32, align 8, !tbaa !9
  %1087 = mul nsw i64 %1085, %1086
  %1088 = add nsw i64 %1084, %1087
  %1089 = getelementptr inbounds %struct.complex, ptr %1081, i64 %1088
  %1090 = load ptr, ptr %25, align 8, !tbaa !5
  %1091 = load i64, ptr %59, align 8, !tbaa !9
  %1092 = add nsw i64 %1091, 1
  %1093 = load i64, ptr %55, align 8, !tbaa !9
  %1094 = load i64, ptr %75, align 8, !tbaa !9
  %1095 = sub nsw i64 %1093, %1094
  %1096 = load i64, ptr %34, align 8, !tbaa !9
  %1097 = mul nsw i64 %1095, %1096
  %1098 = add nsw i64 %1092, %1097
  %1099 = getelementptr inbounds %struct.complex, ptr %1090, i64 %1098
  %1100 = load ptr, ptr %26, align 8, !tbaa !5
  %1101 = call i32 @f2c_cgerc(ptr noundef %38, ptr noundef %75, ptr noundef %45, ptr noundef %1080, ptr noundef @c__1, ptr noundef %1089, ptr noundef @c__1, ptr noundef %1099, ptr noundef %1100)
  br label %1102

1102:                                             ; preds = %1066, %1048
  br label %1103

1103:                                             ; preds = %1102, %1045
  %1104 = load i64, ptr %55, align 8, !tbaa !9
  %1105 = load i64, ptr %62, align 8, !tbaa !9
  %1106 = sub nsw i64 %1104, %1105
  %1107 = load i64, ptr %69, align 8, !tbaa !9
  %1108 = add nsw i64 %1106, %1107
  %1109 = load i64, ptr %62, align 8, !tbaa !9
  %1110 = load i64, ptr %30, align 8, !tbaa !9
  %1111 = mul nsw i64 %1109, %1110
  %1112 = add nsw i64 %1108, %1111
  store i64 %1112, ptr %38, align 8, !tbaa !9
  %1113 = load ptr, ptr %21, align 8, !tbaa !5
  %1114 = load i64, ptr %38, align 8, !tbaa !9
  %1115 = getelementptr inbounds %struct.complex, ptr %1113, i64 %1114
  %1116 = getelementptr inbounds %struct.complex, ptr %1115, i32 0, i32 0
  %1117 = load float, ptr %1116, align 4, !tbaa !11
  %1118 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %1117, ptr %1118, align 4, !tbaa !11
  %1119 = load ptr, ptr %21, align 8, !tbaa !5
  %1120 = load i64, ptr %38, align 8, !tbaa !9
  %1121 = getelementptr inbounds %struct.complex, ptr %1119, i64 %1120
  %1122 = getelementptr inbounds %struct.complex, ptr %1121, i32 0, i32 1
  %1123 = load float, ptr %1122, align 4, !tbaa !15
  %1124 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %1123, ptr %1124, align 4, !tbaa !15
  br label %1125

1125:                                             ; preds = %1103, %318
  %1126 = load ptr, ptr %20, align 8, !tbaa !5
  %1127 = load i64, ptr %1126, align 8, !tbaa !9
  %1128 = sub nsw i64 %1127, 1
  store i64 %1128, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %1129

1129:                                             ; preds = %1907, %1125
  %1130 = load i64, ptr %57, align 8, !tbaa !9
  %1131 = load i64, ptr %38, align 8, !tbaa !9
  %1132 = icmp sle i64 %1130, %1131
  br i1 %1132, label %1133, label %1910

1133:                                             ; preds = %1129
  %1134 = load i64, ptr %80, align 8, !tbaa !9
  %1135 = icmp ne i64 %1134, 0
  br i1 %1135, label %1136, label %1463

1136:                                             ; preds = %1133
  %1137 = load i64, ptr %55, align 8, !tbaa !9
  %1138 = load i64, ptr %57, align 8, !tbaa !9
  %1139 = sub nsw i64 %1137, %1138
  %1140 = load ptr, ptr %19, align 8, !tbaa !5
  %1141 = load i64, ptr %1140, align 8, !tbaa !9
  %1142 = add nsw i64 %1139, %1141
  %1143 = load ptr, ptr %18, align 8, !tbaa !5
  %1144 = load i64, ptr %1143, align 8, !tbaa !9
  %1145 = icmp slt i64 %1142, %1144
  br i1 %1145, label %1146, label %1462

1146:                                             ; preds = %1136
  %1147 = load i64, ptr %55, align 8, !tbaa !9
  %1148 = load i64, ptr %57, align 8, !tbaa !9
  %1149 = sub nsw i64 %1147, %1148
  %1150 = icmp sgt i64 %1149, 1
  br i1 %1150, label %1151, label %1462

1151:                                             ; preds = %1146
  %1152 = load ptr, ptr %21, align 8, !tbaa !5
  %1153 = load i64, ptr %57, align 8, !tbaa !9
  %1154 = add nsw i64 %1153, 1
  %1155 = load i64, ptr %55, align 8, !tbaa !9
  %1156 = load i64, ptr %57, align 8, !tbaa !9
  %1157 = sub nsw i64 %1155, %1156
  %1158 = load ptr, ptr %19, align 8, !tbaa !5
  %1159 = load i64, ptr %1158, align 8, !tbaa !9
  %1160 = add nsw i64 %1157, %1159
  %1161 = load i64, ptr %30, align 8, !tbaa !9
  %1162 = mul nsw i64 %1160, %1161
  %1163 = add nsw i64 %1154, %1162
  %1164 = getelementptr inbounds %struct.complex, ptr %1152, i64 %1163
  %1165 = load ptr, ptr %28, align 8, !tbaa !5
  %1166 = load i64, ptr %55, align 8, !tbaa !9
  %1167 = load i64, ptr %57, align 8, !tbaa !9
  %1168 = sub nsw i64 %1166, %1167
  %1169 = load ptr, ptr %19, align 8, !tbaa !5
  %1170 = load i64, ptr %1169, align 8, !tbaa !9
  %1171 = add nsw i64 %1168, %1170
  %1172 = load i64, ptr %59, align 8, !tbaa !9
  %1173 = sub nsw i64 %1171, %1172
  %1174 = getelementptr inbounds float, ptr %1165, i64 %1173
  %1175 = load ptr, ptr %27, align 8, !tbaa !5
  %1176 = load i64, ptr %55, align 8, !tbaa !9
  %1177 = load i64, ptr %57, align 8, !tbaa !9
  %1178 = sub nsw i64 %1176, %1177
  %1179 = load ptr, ptr %19, align 8, !tbaa !5
  %1180 = load i64, ptr %1179, align 8, !tbaa !9
  %1181 = add nsw i64 %1178, %1180
  %1182 = load i64, ptr %59, align 8, !tbaa !9
  %1183 = sub nsw i64 %1181, %1182
  %1184 = getelementptr inbounds %struct.complex, ptr %1175, i64 %1183
  %1185 = call i32 @clartg_(ptr noundef %1164, ptr noundef %71, ptr noundef %1174, ptr noundef %1184, ptr noundef %66)
  %1186 = load i64, ptr %70, align 8, !tbaa !9
  %1187 = load i64, ptr %57, align 8, !tbaa !9
  %1188 = sub nsw i64 %1186, %1187
  %1189 = load i64, ptr %55, align 8, !tbaa !9
  %1190 = load i64, ptr %32, align 8, !tbaa !9
  %1191 = mul nsw i64 %1189, %1190
  %1192 = add nsw i64 %1188, %1191
  store i64 %1192, ptr %37, align 8, !tbaa !9
  %1193 = load ptr, ptr %23, align 8, !tbaa !5
  %1194 = load i64, ptr %37, align 8, !tbaa !9
  %1195 = getelementptr inbounds %struct.complex, ptr %1193, i64 %1194
  %1196 = getelementptr inbounds %struct.complex, ptr %1195, i32 0, i32 0
  %1197 = load float, ptr %1196, align 4, !tbaa !11
  %1198 = fneg float %1197
  %1199 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1198, ptr %1199, align 4, !tbaa !11
  %1200 = load ptr, ptr %23, align 8, !tbaa !5
  %1201 = load i64, ptr %37, align 8, !tbaa !9
  %1202 = getelementptr inbounds %struct.complex, ptr %1200, i64 %1201
  %1203 = getelementptr inbounds %struct.complex, ptr %1202, i32 0, i32 1
  %1204 = load float, ptr %1203, align 4, !tbaa !15
  %1205 = fneg float %1204
  %1206 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1205, ptr %1206, align 4, !tbaa !15
  %1207 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1208 = load float, ptr %1207, align 4, !tbaa !11
  %1209 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1210 = load float, ptr %1209, align 4, !tbaa !11
  %1211 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1212 = load float, ptr %1211, align 4, !tbaa !15
  %1213 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1214 = load float, ptr %1213, align 4, !tbaa !15
  %1215 = fmul float %1212, %1214
  %1216 = fneg float %1215
  %1217 = call float @llvm.fmuladd.f32(float %1208, float %1210, float %1216)
  %1218 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1217, ptr %1218, align 4, !tbaa !11
  %1219 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1220 = load float, ptr %1219, align 4, !tbaa !11
  %1221 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1222 = load float, ptr %1221, align 4, !tbaa !15
  %1223 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1224 = load float, ptr %1223, align 4, !tbaa !15
  %1225 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1226 = load float, ptr %1225, align 4, !tbaa !11
  %1227 = fmul float %1224, %1226
  %1228 = call float @llvm.fmuladd.f32(float %1220, float %1222, float %1227)
  %1229 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1228, ptr %1229, align 4, !tbaa !15
  %1230 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1231 = load float, ptr %1230, align 4, !tbaa !11
  %1232 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1231, ptr %1232, align 4, !tbaa !11
  %1233 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1234 = load float, ptr %1233, align 4, !tbaa !15
  %1235 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1234, ptr %1235, align 4, !tbaa !15
  %1236 = load i64, ptr %55, align 8, !tbaa !9
  %1237 = load i64, ptr %57, align 8, !tbaa !9
  %1238 = sub nsw i64 %1236, %1237
  store i64 %1238, ptr %37, align 8, !tbaa !9
  %1239 = load i64, ptr %55, align 8, !tbaa !9
  %1240 = load i64, ptr %57, align 8, !tbaa !9
  %1241 = sub nsw i64 %1239, %1240
  %1242 = load ptr, ptr %19, align 8, !tbaa !5
  %1243 = load i64, ptr %1242, align 8, !tbaa !9
  %1244 = add nsw i64 %1241, %1243
  %1245 = load i64, ptr %59, align 8, !tbaa !9
  %1246 = sub nsw i64 %1244, %1245
  store i64 %1246, ptr %39, align 8, !tbaa !9
  %1247 = load ptr, ptr %28, align 8, !tbaa !5
  %1248 = load i64, ptr %39, align 8, !tbaa !9
  %1249 = getelementptr inbounds float, ptr %1247, i64 %1248
  %1250 = load float, ptr %1249, align 4, !tbaa !14
  %1251 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1252 = load float, ptr %1251, align 4, !tbaa !11
  %1253 = fmul float %1250, %1252
  %1254 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1253, ptr %1254, align 4, !tbaa !11
  %1255 = load ptr, ptr %28, align 8, !tbaa !5
  %1256 = load i64, ptr %39, align 8, !tbaa !9
  %1257 = getelementptr inbounds float, ptr %1255, i64 %1256
  %1258 = load float, ptr %1257, align 4, !tbaa !14
  %1259 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1260 = load float, ptr %1259, align 4, !tbaa !15
  %1261 = fmul float %1258, %1260
  %1262 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1261, ptr %1262, align 4, !tbaa !15
  %1263 = load ptr, ptr %27, align 8, !tbaa !5
  %1264 = load i64, ptr %55, align 8, !tbaa !9
  %1265 = load i64, ptr %57, align 8, !tbaa !9
  %1266 = sub nsw i64 %1264, %1265
  %1267 = load ptr, ptr %19, align 8, !tbaa !5
  %1268 = load i64, ptr %1267, align 8, !tbaa !9
  %1269 = add nsw i64 %1266, %1268
  %1270 = load i64, ptr %59, align 8, !tbaa !9
  %1271 = sub nsw i64 %1269, %1270
  %1272 = getelementptr inbounds %struct.complex, ptr %1263, i64 %1271
  call void @r_cnjg(ptr noundef %48, ptr noundef %1272)
  %1273 = load i64, ptr %55, align 8, !tbaa !9
  %1274 = load i64, ptr %57, align 8, !tbaa !9
  %1275 = sub nsw i64 %1273, %1274
  %1276 = load ptr, ptr %19, align 8, !tbaa !5
  %1277 = load i64, ptr %1276, align 8, !tbaa !9
  %1278 = add nsw i64 %1275, %1277
  %1279 = load i64, ptr %30, align 8, !tbaa !9
  %1280 = mul nsw i64 %1278, %1279
  %1281 = add nsw i64 %1280, 1
  store i64 %1281, ptr %36, align 8, !tbaa !9
  %1282 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1283 = load float, ptr %1282, align 4, !tbaa !11
  %1284 = load ptr, ptr %21, align 8, !tbaa !5
  %1285 = load i64, ptr %36, align 8, !tbaa !9
  %1286 = getelementptr inbounds %struct.complex, ptr %1284, i64 %1285
  %1287 = getelementptr inbounds %struct.complex, ptr %1286, i32 0, i32 0
  %1288 = load float, ptr %1287, align 4, !tbaa !11
  %1289 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1290 = load float, ptr %1289, align 4, !tbaa !15
  %1291 = load ptr, ptr %21, align 8, !tbaa !5
  %1292 = load i64, ptr %36, align 8, !tbaa !9
  %1293 = getelementptr inbounds %struct.complex, ptr %1291, i64 %1292
  %1294 = getelementptr inbounds %struct.complex, ptr %1293, i32 0, i32 1
  %1295 = load float, ptr %1294, align 4, !tbaa !15
  %1296 = fmul float %1290, %1295
  %1297 = fneg float %1296
  %1298 = call float @llvm.fmuladd.f32(float %1283, float %1288, float %1297)
  %1299 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1298, ptr %1299, align 4, !tbaa !11
  %1300 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1301 = load float, ptr %1300, align 4, !tbaa !11
  %1302 = load ptr, ptr %21, align 8, !tbaa !5
  %1303 = load i64, ptr %36, align 8, !tbaa !9
  %1304 = getelementptr inbounds %struct.complex, ptr %1302, i64 %1303
  %1305 = getelementptr inbounds %struct.complex, ptr %1304, i32 0, i32 1
  %1306 = load float, ptr %1305, align 4, !tbaa !15
  %1307 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1308 = load float, ptr %1307, align 4, !tbaa !15
  %1309 = load ptr, ptr %21, align 8, !tbaa !5
  %1310 = load i64, ptr %36, align 8, !tbaa !9
  %1311 = getelementptr inbounds %struct.complex, ptr %1309, i64 %1310
  %1312 = getelementptr inbounds %struct.complex, ptr %1311, i32 0, i32 0
  %1313 = load float, ptr %1312, align 4, !tbaa !11
  %1314 = fmul float %1308, %1313
  %1315 = call float @llvm.fmuladd.f32(float %1301, float %1306, float %1314)
  %1316 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1315, ptr %1316, align 4, !tbaa !15
  %1317 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1318 = load float, ptr %1317, align 4, !tbaa !11
  %1319 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %1320 = load float, ptr %1319, align 4, !tbaa !11
  %1321 = fsub float %1318, %1320
  %1322 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1321, ptr %1322, align 4, !tbaa !11
  %1323 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1324 = load float, ptr %1323, align 4, !tbaa !15
  %1325 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %1326 = load float, ptr %1325, align 4, !tbaa !15
  %1327 = fsub float %1324, %1326
  %1328 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1327, ptr %1328, align 4, !tbaa !15
  %1329 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1330 = load float, ptr %1329, align 4, !tbaa !11
  %1331 = load ptr, ptr %27, align 8, !tbaa !5
  %1332 = load i64, ptr %37, align 8, !tbaa !9
  %1333 = getelementptr inbounds %struct.complex, ptr %1331, i64 %1332
  %1334 = getelementptr inbounds %struct.complex, ptr %1333, i32 0, i32 0
  store float %1330, ptr %1334, align 4, !tbaa !11
  %1335 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1336 = load float, ptr %1335, align 4, !tbaa !15
  %1337 = load ptr, ptr %27, align 8, !tbaa !5
  %1338 = load i64, ptr %37, align 8, !tbaa !9
  %1339 = getelementptr inbounds %struct.complex, ptr %1337, i64 %1338
  %1340 = getelementptr inbounds %struct.complex, ptr %1339, i32 0, i32 1
  store float %1336, ptr %1340, align 4, !tbaa !15
  %1341 = load i64, ptr %55, align 8, !tbaa !9
  %1342 = load i64, ptr %57, align 8, !tbaa !9
  %1343 = sub nsw i64 %1341, %1342
  %1344 = load ptr, ptr %19, align 8, !tbaa !5
  %1345 = load i64, ptr %1344, align 8, !tbaa !9
  %1346 = add nsw i64 %1343, %1345
  %1347 = load i64, ptr %30, align 8, !tbaa !9
  %1348 = mul nsw i64 %1346, %1347
  %1349 = add nsw i64 %1348, 1
  store i64 %1349, ptr %37, align 8, !tbaa !9
  %1350 = load i64, ptr %55, align 8, !tbaa !9
  %1351 = load i64, ptr %57, align 8, !tbaa !9
  %1352 = sub nsw i64 %1350, %1351
  %1353 = load ptr, ptr %19, align 8, !tbaa !5
  %1354 = load i64, ptr %1353, align 8, !tbaa !9
  %1355 = add nsw i64 %1352, %1354
  %1356 = load i64, ptr %59, align 8, !tbaa !9
  %1357 = sub nsw i64 %1355, %1356
  store i64 %1357, ptr %39, align 8, !tbaa !9
  %1358 = load ptr, ptr %27, align 8, !tbaa !5
  %1359 = load i64, ptr %39, align 8, !tbaa !9
  %1360 = getelementptr inbounds %struct.complex, ptr %1358, i64 %1359
  %1361 = getelementptr inbounds %struct.complex, ptr %1360, i32 0, i32 0
  %1362 = load float, ptr %1361, align 4, !tbaa !11
  %1363 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1364 = load float, ptr %1363, align 4, !tbaa !11
  %1365 = load ptr, ptr %27, align 8, !tbaa !5
  %1366 = load i64, ptr %39, align 8, !tbaa !9
  %1367 = getelementptr inbounds %struct.complex, ptr %1365, i64 %1366
  %1368 = getelementptr inbounds %struct.complex, ptr %1367, i32 0, i32 1
  %1369 = load float, ptr %1368, align 4, !tbaa !15
  %1370 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1371 = load float, ptr %1370, align 4, !tbaa !15
  %1372 = fmul float %1369, %1371
  %1373 = fneg float %1372
  %1374 = call float @llvm.fmuladd.f32(float %1362, float %1364, float %1373)
  %1375 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1374, ptr %1375, align 4, !tbaa !11
  %1376 = load ptr, ptr %27, align 8, !tbaa !5
  %1377 = load i64, ptr %39, align 8, !tbaa !9
  %1378 = getelementptr inbounds %struct.complex, ptr %1376, i64 %1377
  %1379 = getelementptr inbounds %struct.complex, ptr %1378, i32 0, i32 0
  %1380 = load float, ptr %1379, align 4, !tbaa !11
  %1381 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1382 = load float, ptr %1381, align 4, !tbaa !15
  %1383 = load ptr, ptr %27, align 8, !tbaa !5
  %1384 = load i64, ptr %39, align 8, !tbaa !9
  %1385 = getelementptr inbounds %struct.complex, ptr %1383, i64 %1384
  %1386 = getelementptr inbounds %struct.complex, ptr %1385, i32 0, i32 1
  %1387 = load float, ptr %1386, align 4, !tbaa !15
  %1388 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1389 = load float, ptr %1388, align 4, !tbaa !11
  %1390 = fmul float %1387, %1389
  %1391 = call float @llvm.fmuladd.f32(float %1380, float %1382, float %1390)
  %1392 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1391, ptr %1392, align 4, !tbaa !15
  %1393 = load i64, ptr %55, align 8, !tbaa !9
  %1394 = load i64, ptr %57, align 8, !tbaa !9
  %1395 = sub nsw i64 %1393, %1394
  %1396 = load ptr, ptr %19, align 8, !tbaa !5
  %1397 = load i64, ptr %1396, align 8, !tbaa !9
  %1398 = add nsw i64 %1395, %1397
  %1399 = load i64, ptr %59, align 8, !tbaa !9
  %1400 = sub nsw i64 %1398, %1399
  store i64 %1400, ptr %36, align 8, !tbaa !9
  %1401 = load i64, ptr %55, align 8, !tbaa !9
  %1402 = load i64, ptr %57, align 8, !tbaa !9
  %1403 = sub nsw i64 %1401, %1402
  %1404 = load ptr, ptr %19, align 8, !tbaa !5
  %1405 = load i64, ptr %1404, align 8, !tbaa !9
  %1406 = add nsw i64 %1403, %1405
  %1407 = load i64, ptr %30, align 8, !tbaa !9
  %1408 = mul nsw i64 %1406, %1407
  %1409 = add nsw i64 %1408, 1
  store i64 %1409, ptr %40, align 8, !tbaa !9
  %1410 = load ptr, ptr %28, align 8, !tbaa !5
  %1411 = load i64, ptr %36, align 8, !tbaa !9
  %1412 = getelementptr inbounds float, ptr %1410, i64 %1411
  %1413 = load float, ptr %1412, align 4, !tbaa !14
  %1414 = load ptr, ptr %21, align 8, !tbaa !5
  %1415 = load i64, ptr %40, align 8, !tbaa !9
  %1416 = getelementptr inbounds %struct.complex, ptr %1414, i64 %1415
  %1417 = getelementptr inbounds %struct.complex, ptr %1416, i32 0, i32 0
  %1418 = load float, ptr %1417, align 4, !tbaa !11
  %1419 = fmul float %1413, %1418
  %1420 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %1419, ptr %1420, align 4, !tbaa !11
  %1421 = load ptr, ptr %28, align 8, !tbaa !5
  %1422 = load i64, ptr %36, align 8, !tbaa !9
  %1423 = getelementptr inbounds float, ptr %1421, i64 %1422
  %1424 = load float, ptr %1423, align 4, !tbaa !14
  %1425 = load ptr, ptr %21, align 8, !tbaa !5
  %1426 = load i64, ptr %40, align 8, !tbaa !9
  %1427 = getelementptr inbounds %struct.complex, ptr %1425, i64 %1426
  %1428 = getelementptr inbounds %struct.complex, ptr %1427, i32 0, i32 1
  %1429 = load float, ptr %1428, align 4, !tbaa !15
  %1430 = fmul float %1424, %1429
  %1431 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %1430, ptr %1431, align 4, !tbaa !15
  %1432 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1433 = load float, ptr %1432, align 4, !tbaa !11
  %1434 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %1435 = load float, ptr %1434, align 4, !tbaa !11
  %1436 = fadd float %1433, %1435
  %1437 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1436, ptr %1437, align 4, !tbaa !11
  %1438 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1439 = load float, ptr %1438, align 4, !tbaa !15
  %1440 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %1441 = load float, ptr %1440, align 4, !tbaa !15
  %1442 = fadd float %1439, %1441
  %1443 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1442, ptr %1443, align 4, !tbaa !15
  %1444 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1445 = load float, ptr %1444, align 4, !tbaa !11
  %1446 = load ptr, ptr %21, align 8, !tbaa !5
  %1447 = load i64, ptr %37, align 8, !tbaa !9
  %1448 = getelementptr inbounds %struct.complex, ptr %1446, i64 %1447
  %1449 = getelementptr inbounds %struct.complex, ptr %1448, i32 0, i32 0
  store float %1445, ptr %1449, align 4, !tbaa !11
  %1450 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1451 = load float, ptr %1450, align 4, !tbaa !15
  %1452 = load ptr, ptr %21, align 8, !tbaa !5
  %1453 = load i64, ptr %37, align 8, !tbaa !9
  %1454 = getelementptr inbounds %struct.complex, ptr %1452, i64 %1453
  %1455 = getelementptr inbounds %struct.complex, ptr %1454, i32 0, i32 1
  store float %1451, ptr %1455, align 4, !tbaa !15
  %1456 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %1457 = load float, ptr %1456, align 4, !tbaa !11
  %1458 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %1457, ptr %1458, align 4, !tbaa !11
  %1459 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %1460 = load float, ptr %1459, align 4, !tbaa !15
  %1461 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %1460, ptr %1461, align 4, !tbaa !15
  br label %1462

1462:                                             ; preds = %1151, %1146, %1136
  br label %1463

1463:                                             ; preds = %1462, %1133
  store i64 1, ptr %37, align 8, !tbaa !9
  %1464 = load i64, ptr %57, align 8, !tbaa !9
  %1465 = load i64, ptr %61, align 8, !tbaa !9
  %1466 = sub nsw i64 %1464, %1465
  %1467 = add nsw i64 %1466, 2
  store i64 %1467, ptr %39, align 8, !tbaa !9
  %1468 = load i64, ptr %55, align 8, !tbaa !9
  %1469 = load i64, ptr %57, align 8, !tbaa !9
  %1470 = sub nsw i64 %1468, %1469
  %1471 = sub nsw i64 %1470, 1
  %1472 = load i64, ptr %37, align 8, !tbaa !9
  %1473 = load i64, ptr %39, align 8, !tbaa !9
  %1474 = icmp sge i64 %1472, %1473
  br i1 %1474, label %1475, label %1477

1475:                                             ; preds = %1463
  %1476 = load i64, ptr %37, align 8, !tbaa !9
  br label %1479

1477:                                             ; preds = %1463
  %1478 = load i64, ptr %39, align 8, !tbaa !9
  br label %1479

1479:                                             ; preds = %1477, %1475
  %1480 = phi i64 [ %1476, %1475 ], [ %1478, %1477 ]
  %1481 = load i64, ptr %69, align 8, !tbaa !9
  %1482 = mul nsw i64 %1480, %1481
  %1483 = add nsw i64 %1471, %1482
  store i64 %1483, ptr %65, align 8, !tbaa !9
  %1484 = load ptr, ptr %18, align 8, !tbaa !5
  %1485 = load i64, ptr %1484, align 8, !tbaa !9
  %1486 = load i64, ptr %65, align 8, !tbaa !9
  %1487 = sub nsw i64 %1485, %1486
  %1488 = load ptr, ptr %19, align 8, !tbaa !5
  %1489 = load i64, ptr %1488, align 8, !tbaa !9
  %1490 = add nsw i64 %1487, %1489
  %1491 = load i64, ptr %69, align 8, !tbaa !9
  %1492 = sdiv i64 %1490, %1491
  store i64 %1492, ptr %67, align 8, !tbaa !9
  %1493 = load i64, ptr %65, align 8, !tbaa !9
  %1494 = load i64, ptr %67, align 8, !tbaa !9
  %1495 = sub nsw i64 %1494, 1
  %1496 = load i64, ptr %69, align 8, !tbaa !9
  %1497 = mul nsw i64 %1495, %1496
  %1498 = add nsw i64 %1493, %1497
  store i64 %1498, ptr %64, align 8, !tbaa !9
  %1499 = load i64, ptr %80, align 8, !tbaa !9
  %1500 = icmp ne i64 %1499, 0
  br i1 %1500, label %1501, label %1520

1501:                                             ; preds = %1479
  %1502 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %1502, ptr %37, align 8, !tbaa !9
  %1503 = load i64, ptr %55, align 8, !tbaa !9
  %1504 = load ptr, ptr %19, align 8, !tbaa !5
  %1505 = load i64, ptr %1504, align 8, !tbaa !9
  %1506 = shl i64 %1505, 1
  %1507 = add nsw i64 %1503, %1506
  %1508 = load i64, ptr %57, align 8, !tbaa !9
  %1509 = sub nsw i64 %1507, %1508
  %1510 = add nsw i64 %1509, 1
  store i64 %1510, ptr %39, align 8, !tbaa !9
  %1511 = load i64, ptr %37, align 8, !tbaa !9
  %1512 = load i64, ptr %39, align 8, !tbaa !9
  %1513 = icmp sge i64 %1511, %1512
  br i1 %1513, label %1514, label %1516

1514:                                             ; preds = %1501
  %1515 = load i64, ptr %37, align 8, !tbaa !9
  br label %1518

1516:                                             ; preds = %1501
  %1517 = load i64, ptr %39, align 8, !tbaa !9
  br label %1518

1518:                                             ; preds = %1516, %1514
  %1519 = phi i64 [ %1515, %1514 ], [ %1517, %1516 ]
  store i64 %1519, ptr %73, align 8, !tbaa !9
  br label %1522

1520:                                             ; preds = %1479
  %1521 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %1521, ptr %73, align 8, !tbaa !9
  br label %1522

1522:                                             ; preds = %1520, %1518
  %1523 = load ptr, ptr %18, align 8, !tbaa !5
  %1524 = load i64, ptr %1523, align 8, !tbaa !9
  %1525 = load i64, ptr %73, align 8, !tbaa !9
  %1526 = sub nsw i64 %1524, %1525
  %1527 = load ptr, ptr %19, align 8, !tbaa !5
  %1528 = load i64, ptr %1527, align 8, !tbaa !9
  %1529 = add nsw i64 %1526, %1528
  %1530 = load i64, ptr %69, align 8, !tbaa !9
  %1531 = sdiv i64 %1529, %1530
  store i64 %1531, ptr %76, align 8, !tbaa !9
  %1532 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %1532, ptr %37, align 8, !tbaa !9
  %1533 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %1533, ptr %39, align 8, !tbaa !9
  %1534 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %1534, ptr %56, align 8, !tbaa !9
  br label %1535

1535:                                             ; preds = %1669, %1522
  %1536 = load i64, ptr %39, align 8, !tbaa !9
  %1537 = icmp slt i64 %1536, 0
  br i1 %1537, label %1538, label %1543

1538:                                             ; preds = %1535
  %1539 = load i64, ptr %56, align 8, !tbaa !9
  %1540 = load i64, ptr %37, align 8, !tbaa !9
  %1541 = icmp sge i64 %1539, %1540
  %1542 = zext i1 %1541 to i32
  br label %1548

1543:                                             ; preds = %1535
  %1544 = load i64, ptr %56, align 8, !tbaa !9
  %1545 = load i64, ptr %37, align 8, !tbaa !9
  %1546 = icmp sle i64 %1544, %1545
  %1547 = zext i1 %1546 to i32
  br label %1548

1548:                                             ; preds = %1543, %1538
  %1549 = phi i32 [ %1542, %1538 ], [ %1547, %1543 ]
  %1550 = icmp ne i32 %1549, 0
  br i1 %1550, label %1551, label %1673

1551:                                             ; preds = %1548
  %1552 = load i64, ptr %56, align 8, !tbaa !9
  %1553 = load i64, ptr %59, align 8, !tbaa !9
  %1554 = sub nsw i64 %1552, %1553
  store i64 %1554, ptr %36, align 8, !tbaa !9
  %1555 = load i64, ptr %56, align 8, !tbaa !9
  %1556 = load i64, ptr %59, align 8, !tbaa !9
  %1557 = sub nsw i64 %1555, %1556
  store i64 %1557, ptr %40, align 8, !tbaa !9
  %1558 = load i64, ptr %56, align 8, !tbaa !9
  %1559 = add nsw i64 %1558, 1
  %1560 = load i64, ptr %30, align 8, !tbaa !9
  %1561 = mul nsw i64 %1559, %1560
  %1562 = add nsw i64 %1561, 1
  store i64 %1562, ptr %41, align 8, !tbaa !9
  %1563 = load ptr, ptr %27, align 8, !tbaa !5
  %1564 = load i64, ptr %40, align 8, !tbaa !9
  %1565 = getelementptr inbounds %struct.complex, ptr %1563, i64 %1564
  %1566 = getelementptr inbounds %struct.complex, ptr %1565, i32 0, i32 0
  %1567 = load float, ptr %1566, align 4, !tbaa !11
  %1568 = load ptr, ptr %21, align 8, !tbaa !5
  %1569 = load i64, ptr %41, align 8, !tbaa !9
  %1570 = getelementptr inbounds %struct.complex, ptr %1568, i64 %1569
  %1571 = getelementptr inbounds %struct.complex, ptr %1570, i32 0, i32 0
  %1572 = load float, ptr %1571, align 4, !tbaa !11
  %1573 = load ptr, ptr %27, align 8, !tbaa !5
  %1574 = load i64, ptr %40, align 8, !tbaa !9
  %1575 = getelementptr inbounds %struct.complex, ptr %1573, i64 %1574
  %1576 = getelementptr inbounds %struct.complex, ptr %1575, i32 0, i32 1
  %1577 = load float, ptr %1576, align 4, !tbaa !15
  %1578 = load ptr, ptr %21, align 8, !tbaa !5
  %1579 = load i64, ptr %41, align 8, !tbaa !9
  %1580 = getelementptr inbounds %struct.complex, ptr %1578, i64 %1579
  %1581 = getelementptr inbounds %struct.complex, ptr %1580, i32 0, i32 1
  %1582 = load float, ptr %1581, align 4, !tbaa !15
  %1583 = fmul float %1577, %1582
  %1584 = fneg float %1583
  %1585 = call float @llvm.fmuladd.f32(float %1567, float %1572, float %1584)
  %1586 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1585, ptr %1586, align 4, !tbaa !11
  %1587 = load ptr, ptr %27, align 8, !tbaa !5
  %1588 = load i64, ptr %40, align 8, !tbaa !9
  %1589 = getelementptr inbounds %struct.complex, ptr %1587, i64 %1588
  %1590 = getelementptr inbounds %struct.complex, ptr %1589, i32 0, i32 0
  %1591 = load float, ptr %1590, align 4, !tbaa !11
  %1592 = load ptr, ptr %21, align 8, !tbaa !5
  %1593 = load i64, ptr %41, align 8, !tbaa !9
  %1594 = getelementptr inbounds %struct.complex, ptr %1592, i64 %1593
  %1595 = getelementptr inbounds %struct.complex, ptr %1594, i32 0, i32 1
  %1596 = load float, ptr %1595, align 4, !tbaa !15
  %1597 = load ptr, ptr %27, align 8, !tbaa !5
  %1598 = load i64, ptr %40, align 8, !tbaa !9
  %1599 = getelementptr inbounds %struct.complex, ptr %1597, i64 %1598
  %1600 = getelementptr inbounds %struct.complex, ptr %1599, i32 0, i32 1
  %1601 = load float, ptr %1600, align 4, !tbaa !15
  %1602 = load ptr, ptr %21, align 8, !tbaa !5
  %1603 = load i64, ptr %41, align 8, !tbaa !9
  %1604 = getelementptr inbounds %struct.complex, ptr %1602, i64 %1603
  %1605 = getelementptr inbounds %struct.complex, ptr %1604, i32 0, i32 0
  %1606 = load float, ptr %1605, align 4, !tbaa !11
  %1607 = fmul float %1601, %1606
  %1608 = call float @llvm.fmuladd.f32(float %1591, float %1596, float %1607)
  %1609 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1608, ptr %1609, align 4, !tbaa !15
  %1610 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1611 = load float, ptr %1610, align 4, !tbaa !11
  %1612 = load ptr, ptr %27, align 8, !tbaa !5
  %1613 = load i64, ptr %36, align 8, !tbaa !9
  %1614 = getelementptr inbounds %struct.complex, ptr %1612, i64 %1613
  %1615 = getelementptr inbounds %struct.complex, ptr %1614, i32 0, i32 0
  store float %1611, ptr %1615, align 4, !tbaa !11
  %1616 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1617 = load float, ptr %1616, align 4, !tbaa !15
  %1618 = load ptr, ptr %27, align 8, !tbaa !5
  %1619 = load i64, ptr %36, align 8, !tbaa !9
  %1620 = getelementptr inbounds %struct.complex, ptr %1618, i64 %1619
  %1621 = getelementptr inbounds %struct.complex, ptr %1620, i32 0, i32 1
  store float %1617, ptr %1621, align 4, !tbaa !15
  %1622 = load i64, ptr %56, align 8, !tbaa !9
  %1623 = add nsw i64 %1622, 1
  %1624 = load i64, ptr %30, align 8, !tbaa !9
  %1625 = mul nsw i64 %1623, %1624
  %1626 = add nsw i64 %1625, 1
  store i64 %1626, ptr %36, align 8, !tbaa !9
  %1627 = load i64, ptr %56, align 8, !tbaa !9
  %1628 = load i64, ptr %59, align 8, !tbaa !9
  %1629 = sub nsw i64 %1627, %1628
  store i64 %1629, ptr %40, align 8, !tbaa !9
  %1630 = load i64, ptr %56, align 8, !tbaa !9
  %1631 = add nsw i64 %1630, 1
  %1632 = load i64, ptr %30, align 8, !tbaa !9
  %1633 = mul nsw i64 %1631, %1632
  %1634 = add nsw i64 %1633, 1
  store i64 %1634, ptr %41, align 8, !tbaa !9
  %1635 = load ptr, ptr %28, align 8, !tbaa !5
  %1636 = load i64, ptr %40, align 8, !tbaa !9
  %1637 = getelementptr inbounds float, ptr %1635, i64 %1636
  %1638 = load float, ptr %1637, align 4, !tbaa !14
  %1639 = load ptr, ptr %21, align 8, !tbaa !5
  %1640 = load i64, ptr %41, align 8, !tbaa !9
  %1641 = getelementptr inbounds %struct.complex, ptr %1639, i64 %1640
  %1642 = getelementptr inbounds %struct.complex, ptr %1641, i32 0, i32 0
  %1643 = load float, ptr %1642, align 4, !tbaa !11
  %1644 = fmul float %1638, %1643
  %1645 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1644, ptr %1645, align 4, !tbaa !11
  %1646 = load ptr, ptr %28, align 8, !tbaa !5
  %1647 = load i64, ptr %40, align 8, !tbaa !9
  %1648 = getelementptr inbounds float, ptr %1646, i64 %1647
  %1649 = load float, ptr %1648, align 4, !tbaa !14
  %1650 = load ptr, ptr %21, align 8, !tbaa !5
  %1651 = load i64, ptr %41, align 8, !tbaa !9
  %1652 = getelementptr inbounds %struct.complex, ptr %1650, i64 %1651
  %1653 = getelementptr inbounds %struct.complex, ptr %1652, i32 0, i32 1
  %1654 = load float, ptr %1653, align 4, !tbaa !15
  %1655 = fmul float %1649, %1654
  %1656 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1655, ptr %1656, align 4, !tbaa !15
  %1657 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1658 = load float, ptr %1657, align 4, !tbaa !11
  %1659 = load ptr, ptr %21, align 8, !tbaa !5
  %1660 = load i64, ptr %36, align 8, !tbaa !9
  %1661 = getelementptr inbounds %struct.complex, ptr %1659, i64 %1660
  %1662 = getelementptr inbounds %struct.complex, ptr %1661, i32 0, i32 0
  store float %1658, ptr %1662, align 4, !tbaa !11
  %1663 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1664 = load float, ptr %1663, align 4, !tbaa !15
  %1665 = load ptr, ptr %21, align 8, !tbaa !5
  %1666 = load i64, ptr %36, align 8, !tbaa !9
  %1667 = getelementptr inbounds %struct.complex, ptr %1665, i64 %1666
  %1668 = getelementptr inbounds %struct.complex, ptr %1667, i32 0, i32 1
  store float %1664, ptr %1668, align 4, !tbaa !15
  br label %1669

1669:                                             ; preds = %1551
  %1670 = load i64, ptr %39, align 8, !tbaa !9
  %1671 = load i64, ptr %56, align 8, !tbaa !9
  %1672 = add nsw i64 %1671, %1670
  store i64 %1672, ptr %56, align 8, !tbaa !9
  br label %1535, !llvm.loop !24

1673:                                             ; preds = %1548
  %1674 = load i64, ptr %76, align 8, !tbaa !9
  %1675 = icmp sgt i64 %1674, 0
  br i1 %1675, label %1676, label %1694

1676:                                             ; preds = %1673
  %1677 = load ptr, ptr %21, align 8, !tbaa !5
  %1678 = load i64, ptr %73, align 8, !tbaa !9
  %1679 = load i64, ptr %30, align 8, !tbaa !9
  %1680 = mul nsw i64 %1678, %1679
  %1681 = add nsw i64 %1680, 1
  %1682 = getelementptr inbounds %struct.complex, ptr %1677, i64 %1681
  %1683 = load ptr, ptr %27, align 8, !tbaa !5
  %1684 = load i64, ptr %73, align 8, !tbaa !9
  %1685 = load i64, ptr %59, align 8, !tbaa !9
  %1686 = sub nsw i64 %1684, %1685
  %1687 = getelementptr inbounds %struct.complex, ptr %1683, i64 %1686
  %1688 = load ptr, ptr %28, align 8, !tbaa !5
  %1689 = load i64, ptr %73, align 8, !tbaa !9
  %1690 = load i64, ptr %59, align 8, !tbaa !9
  %1691 = sub nsw i64 %1689, %1690
  %1692 = getelementptr inbounds float, ptr %1688, i64 %1691
  %1693 = call i32 @clargv_(ptr noundef %76, ptr noundef %1682, ptr noundef %77, ptr noundef %1687, ptr noundef %69, ptr noundef %1692, ptr noundef %69)
  br label %1694

1694:                                             ; preds = %1676, %1673
  %1695 = load i64, ptr %67, align 8, !tbaa !9
  %1696 = icmp sgt i64 %1695, 0
  br i1 %1696, label %1697, label %1782

1697:                                             ; preds = %1694
  %1698 = load ptr, ptr %19, align 8, !tbaa !5
  %1699 = load i64, ptr %1698, align 8, !tbaa !9
  %1700 = sub nsw i64 %1699, 1
  store i64 %1700, ptr %39, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %1701

1701:                                             ; preds = %1737, %1697
  %1702 = load i64, ptr %58, align 8, !tbaa !9
  %1703 = load i64, ptr %39, align 8, !tbaa !9
  %1704 = icmp sle i64 %1702, %1703
  br i1 %1704, label %1705, label %1740

1705:                                             ; preds = %1701
  %1706 = load ptr, ptr %21, align 8, !tbaa !5
  %1707 = load i64, ptr %69, align 8, !tbaa !9
  %1708 = load i64, ptr %58, align 8, !tbaa !9
  %1709 = sub nsw i64 %1707, %1708
  %1710 = load i64, ptr %65, align 8, !tbaa !9
  %1711 = load i64, ptr %30, align 8, !tbaa !9
  %1712 = mul nsw i64 %1710, %1711
  %1713 = add nsw i64 %1709, %1712
  %1714 = getelementptr inbounds %struct.complex, ptr %1706, i64 %1713
  %1715 = load ptr, ptr %21, align 8, !tbaa !5
  %1716 = load ptr, ptr %19, align 8, !tbaa !5
  %1717 = load i64, ptr %1716, align 8, !tbaa !9
  %1718 = load i64, ptr %58, align 8, !tbaa !9
  %1719 = sub nsw i64 %1717, %1718
  %1720 = load i64, ptr %65, align 8, !tbaa !9
  %1721 = add nsw i64 %1720, 1
  %1722 = load i64, ptr %30, align 8, !tbaa !9
  %1723 = mul nsw i64 %1721, %1722
  %1724 = add nsw i64 %1719, %1723
  %1725 = getelementptr inbounds %struct.complex, ptr %1715, i64 %1724
  %1726 = load ptr, ptr %28, align 8, !tbaa !5
  %1727 = load i64, ptr %65, align 8, !tbaa !9
  %1728 = load i64, ptr %59, align 8, !tbaa !9
  %1729 = sub nsw i64 %1727, %1728
  %1730 = getelementptr inbounds float, ptr %1726, i64 %1729
  %1731 = load ptr, ptr %27, align 8, !tbaa !5
  %1732 = load i64, ptr %65, align 8, !tbaa !9
  %1733 = load i64, ptr %59, align 8, !tbaa !9
  %1734 = sub nsw i64 %1732, %1733
  %1735 = getelementptr inbounds %struct.complex, ptr %1731, i64 %1734
  %1736 = call i32 @clartv_(ptr noundef %67, ptr noundef %1714, ptr noundef %77, ptr noundef %1725, ptr noundef %77, ptr noundef %1730, ptr noundef %1735, ptr noundef %69)
  br label %1737

1737:                                             ; preds = %1705
  %1738 = load i64, ptr %58, align 8, !tbaa !9
  %1739 = add nsw i64 %1738, 1
  store i64 %1739, ptr %58, align 8, !tbaa !9
  br label %1701, !llvm.loop !25

1740:                                             ; preds = %1701
  %1741 = load ptr, ptr %21, align 8, !tbaa !5
  %1742 = load i64, ptr %69, align 8, !tbaa !9
  %1743 = load i64, ptr %65, align 8, !tbaa !9
  %1744 = load i64, ptr %30, align 8, !tbaa !9
  %1745 = mul nsw i64 %1743, %1744
  %1746 = add nsw i64 %1742, %1745
  %1747 = getelementptr inbounds %struct.complex, ptr %1741, i64 %1746
  %1748 = load ptr, ptr %21, align 8, !tbaa !5
  %1749 = load i64, ptr %69, align 8, !tbaa !9
  %1750 = load i64, ptr %65, align 8, !tbaa !9
  %1751 = add nsw i64 %1750, 1
  %1752 = load i64, ptr %30, align 8, !tbaa !9
  %1753 = mul nsw i64 %1751, %1752
  %1754 = add nsw i64 %1749, %1753
  %1755 = getelementptr inbounds %struct.complex, ptr %1748, i64 %1754
  %1756 = load ptr, ptr %21, align 8, !tbaa !5
  %1757 = load ptr, ptr %19, align 8, !tbaa !5
  %1758 = load i64, ptr %1757, align 8, !tbaa !9
  %1759 = load i64, ptr %65, align 8, !tbaa !9
  %1760 = add nsw i64 %1759, 1
  %1761 = load i64, ptr %30, align 8, !tbaa !9
  %1762 = mul nsw i64 %1760, %1761
  %1763 = add nsw i64 %1758, %1762
  %1764 = getelementptr inbounds %struct.complex, ptr %1756, i64 %1763
  %1765 = load ptr, ptr %28, align 8, !tbaa !5
  %1766 = load i64, ptr %65, align 8, !tbaa !9
  %1767 = load i64, ptr %59, align 8, !tbaa !9
  %1768 = sub nsw i64 %1766, %1767
  %1769 = getelementptr inbounds float, ptr %1765, i64 %1768
  %1770 = load ptr, ptr %27, align 8, !tbaa !5
  %1771 = load i64, ptr %65, align 8, !tbaa !9
  %1772 = load i64, ptr %59, align 8, !tbaa !9
  %1773 = sub nsw i64 %1771, %1772
  %1774 = getelementptr inbounds %struct.complex, ptr %1770, i64 %1773
  %1775 = call i32 @clar2v_(ptr noundef %67, ptr noundef %1747, ptr noundef %1755, ptr noundef %1764, ptr noundef %77, ptr noundef %1769, ptr noundef %1774, ptr noundef %69)
  %1776 = load ptr, ptr %27, align 8, !tbaa !5
  %1777 = load i64, ptr %65, align 8, !tbaa !9
  %1778 = load i64, ptr %59, align 8, !tbaa !9
  %1779 = sub nsw i64 %1777, %1778
  %1780 = getelementptr inbounds %struct.complex, ptr %1776, i64 %1779
  %1781 = call i32 @clacgv_(ptr noundef %67, ptr noundef %1780, ptr noundef %69)
  br label %1782

1782:                                             ; preds = %1740, %1694
  %1783 = load ptr, ptr %20, align 8, !tbaa !5
  %1784 = load i64, ptr %1783, align 8, !tbaa !9
  %1785 = load i64, ptr %57, align 8, !tbaa !9
  %1786 = sub nsw i64 %1784, %1785
  %1787 = add nsw i64 %1786, 1
  store i64 %1787, ptr %39, align 8, !tbaa !9
  %1788 = load ptr, ptr %19, align 8, !tbaa !5
  %1789 = load i64, ptr %1788, align 8, !tbaa !9
  %1790 = sub nsw i64 %1789, 1
  store i64 %1790, ptr %58, align 8, !tbaa !9
  br label %1791

1791:                                             ; preds = %1842, %1782
  %1792 = load i64, ptr %58, align 8, !tbaa !9
  %1793 = load i64, ptr %39, align 8, !tbaa !9
  %1794 = icmp sge i64 %1792, %1793
  br i1 %1794, label %1795, label %1845

1795:                                             ; preds = %1791
  %1796 = load ptr, ptr %18, align 8, !tbaa !5
  %1797 = load i64, ptr %1796, align 8, !tbaa !9
  %1798 = load i64, ptr %65, align 8, !tbaa !9
  %1799 = sub nsw i64 %1797, %1798
  %1800 = load i64, ptr %58, align 8, !tbaa !9
  %1801 = add nsw i64 %1799, %1800
  %1802 = load i64, ptr %69, align 8, !tbaa !9
  %1803 = sdiv i64 %1801, %1802
  store i64 %1803, ptr %76, align 8, !tbaa !9
  %1804 = load i64, ptr %76, align 8, !tbaa !9
  %1805 = icmp sgt i64 %1804, 0
  br i1 %1805, label %1806, label %1841

1806:                                             ; preds = %1795
  %1807 = load ptr, ptr %21, align 8, !tbaa !5
  %1808 = load i64, ptr %58, align 8, !tbaa !9
  %1809 = load i64, ptr %65, align 8, !tbaa !9
  %1810 = load i64, ptr %69, align 8, !tbaa !9
  %1811 = add nsw i64 %1809, %1810
  %1812 = load i64, ptr %58, align 8, !tbaa !9
  %1813 = sub nsw i64 %1811, %1812
  %1814 = load i64, ptr %30, align 8, !tbaa !9
  %1815 = mul nsw i64 %1813, %1814
  %1816 = add nsw i64 %1808, %1815
  %1817 = getelementptr inbounds %struct.complex, ptr %1807, i64 %1816
  %1818 = load ptr, ptr %21, align 8, !tbaa !5
  %1819 = load i64, ptr %58, align 8, !tbaa !9
  %1820 = add nsw i64 %1819, 1
  %1821 = load i64, ptr %65, align 8, !tbaa !9
  %1822 = load i64, ptr %69, align 8, !tbaa !9
  %1823 = add nsw i64 %1821, %1822
  %1824 = load i64, ptr %58, align 8, !tbaa !9
  %1825 = sub nsw i64 %1823, %1824
  %1826 = load i64, ptr %30, align 8, !tbaa !9
  %1827 = mul nsw i64 %1825, %1826
  %1828 = add nsw i64 %1820, %1827
  %1829 = getelementptr inbounds %struct.complex, ptr %1818, i64 %1828
  %1830 = load ptr, ptr %28, align 8, !tbaa !5
  %1831 = load i64, ptr %65, align 8, !tbaa !9
  %1832 = load i64, ptr %59, align 8, !tbaa !9
  %1833 = sub nsw i64 %1831, %1832
  %1834 = getelementptr inbounds float, ptr %1830, i64 %1833
  %1835 = load ptr, ptr %27, align 8, !tbaa !5
  %1836 = load i64, ptr %65, align 8, !tbaa !9
  %1837 = load i64, ptr %59, align 8, !tbaa !9
  %1838 = sub nsw i64 %1836, %1837
  %1839 = getelementptr inbounds %struct.complex, ptr %1835, i64 %1838
  %1840 = call i32 @clartv_(ptr noundef %76, ptr noundef %1817, ptr noundef %77, ptr noundef %1829, ptr noundef %77, ptr noundef %1834, ptr noundef %1839, ptr noundef %69)
  br label %1841

1841:                                             ; preds = %1806, %1795
  br label %1842

1842:                                             ; preds = %1841
  %1843 = load i64, ptr %58, align 8, !tbaa !9
  %1844 = add nsw i64 %1843, -1
  store i64 %1844, ptr %58, align 8, !tbaa !9
  br label %1791, !llvm.loop !26

1845:                                             ; preds = %1791
  %1846 = load i64, ptr %79, align 8, !tbaa !9
  %1847 = icmp ne i64 %1846, 0
  br i1 %1847, label %1848, label %1906

1848:                                             ; preds = %1845
  %1849 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %1849, ptr %39, align 8, !tbaa !9
  %1850 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %1850, ptr %37, align 8, !tbaa !9
  %1851 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %1851, ptr %56, align 8, !tbaa !9
  br label %1852

1852:                                             ; preds = %1901, %1848
  %1853 = load i64, ptr %37, align 8, !tbaa !9
  %1854 = icmp slt i64 %1853, 0
  br i1 %1854, label %1855, label %1860

1855:                                             ; preds = %1852
  %1856 = load i64, ptr %56, align 8, !tbaa !9
  %1857 = load i64, ptr %39, align 8, !tbaa !9
  %1858 = icmp sge i64 %1856, %1857
  %1859 = zext i1 %1858 to i32
  br label %1865

1860:                                             ; preds = %1852
  %1861 = load i64, ptr %56, align 8, !tbaa !9
  %1862 = load i64, ptr %39, align 8, !tbaa !9
  %1863 = icmp sle i64 %1861, %1862
  %1864 = zext i1 %1863 to i32
  br label %1865

1865:                                             ; preds = %1860, %1855
  %1866 = phi i32 [ %1859, %1855 ], [ %1864, %1860 ]
  %1867 = icmp ne i32 %1866, 0
  br i1 %1867, label %1868, label %1905

1868:                                             ; preds = %1865
  %1869 = load ptr, ptr %18, align 8, !tbaa !5
  %1870 = load i64, ptr %1869, align 8, !tbaa !9
  %1871 = load i64, ptr %59, align 8, !tbaa !9
  %1872 = sub nsw i64 %1870, %1871
  store i64 %1872, ptr %36, align 8, !tbaa !9
  %1873 = load ptr, ptr %27, align 8, !tbaa !5
  %1874 = load i64, ptr %56, align 8, !tbaa !9
  %1875 = load i64, ptr %59, align 8, !tbaa !9
  %1876 = sub nsw i64 %1874, %1875
  %1877 = getelementptr inbounds %struct.complex, ptr %1873, i64 %1876
  call void @r_cnjg(ptr noundef %45, ptr noundef %1877)
  %1878 = load ptr, ptr %25, align 8, !tbaa !5
  %1879 = load i64, ptr %59, align 8, !tbaa !9
  %1880 = add nsw i64 %1879, 1
  %1881 = load i64, ptr %56, align 8, !tbaa !9
  %1882 = load i64, ptr %34, align 8, !tbaa !9
  %1883 = mul nsw i64 %1881, %1882
  %1884 = add nsw i64 %1880, %1883
  %1885 = getelementptr inbounds %struct.complex, ptr %1878, i64 %1884
  %1886 = load ptr, ptr %25, align 8, !tbaa !5
  %1887 = load i64, ptr %59, align 8, !tbaa !9
  %1888 = add nsw i64 %1887, 1
  %1889 = load i64, ptr %56, align 8, !tbaa !9
  %1890 = add nsw i64 %1889, 1
  %1891 = load i64, ptr %34, align 8, !tbaa !9
  %1892 = mul nsw i64 %1890, %1891
  %1893 = add nsw i64 %1888, %1892
  %1894 = getelementptr inbounds %struct.complex, ptr %1886, i64 %1893
  %1895 = load ptr, ptr %28, align 8, !tbaa !5
  %1896 = load i64, ptr %56, align 8, !tbaa !9
  %1897 = load i64, ptr %59, align 8, !tbaa !9
  %1898 = sub nsw i64 %1896, %1897
  %1899 = getelementptr inbounds float, ptr %1895, i64 %1898
  %1900 = call i32 @crot_(ptr noundef %36, ptr noundef %1885, ptr noundef @c__1, ptr noundef %1894, ptr noundef @c__1, ptr noundef %1899, ptr noundef %45)
  br label %1901

1901:                                             ; preds = %1868
  %1902 = load i64, ptr %37, align 8, !tbaa !9
  %1903 = load i64, ptr %56, align 8, !tbaa !9
  %1904 = add nsw i64 %1903, %1902
  store i64 %1904, ptr %56, align 8, !tbaa !9
  br label %1852, !llvm.loop !27

1905:                                             ; preds = %1865
  br label %1906

1906:                                             ; preds = %1905, %1845
  br label %1907

1907:                                             ; preds = %1906
  %1908 = load i64, ptr %57, align 8, !tbaa !9
  %1909 = add nsw i64 %1908, 1
  store i64 %1909, ptr %57, align 8, !tbaa !9
  br label %1129, !llvm.loop !28

1910:                                             ; preds = %1129
  %1911 = load i64, ptr %80, align 8, !tbaa !9
  %1912 = icmp ne i64 %1911, 0
  br i1 %1912, label %1913, label %1982

1913:                                             ; preds = %1910
  %1914 = load i64, ptr %63, align 8, !tbaa !9
  %1915 = load ptr, ptr %18, align 8, !tbaa !5
  %1916 = load i64, ptr %1915, align 8, !tbaa !9
  %1917 = icmp sle i64 %1914, %1916
  br i1 %1917, label %1918, label %1981

1918:                                             ; preds = %1913
  %1919 = load i64, ptr %75, align 8, !tbaa !9
  %1920 = icmp sgt i64 %1919, 0
  br i1 %1920, label %1921, label %1981

1921:                                             ; preds = %1918
  %1922 = load i64, ptr %55, align 8, !tbaa !9
  %1923 = load i64, ptr %75, align 8, !tbaa !9
  %1924 = sub nsw i64 %1922, %1923
  store i64 %1924, ptr %38, align 8, !tbaa !9
  %1925 = load i64, ptr %70, align 8, !tbaa !9
  %1926 = load i64, ptr %75, align 8, !tbaa !9
  %1927 = sub nsw i64 %1925, %1926
  %1928 = load i64, ptr %55, align 8, !tbaa !9
  %1929 = load i64, ptr %32, align 8, !tbaa !9
  %1930 = mul nsw i64 %1928, %1929
  %1931 = add nsw i64 %1927, %1930
  store i64 %1931, ptr %37, align 8, !tbaa !9
  %1932 = load ptr, ptr %23, align 8, !tbaa !5
  %1933 = load i64, ptr %37, align 8, !tbaa !9
  %1934 = getelementptr inbounds %struct.complex, ptr %1932, i64 %1933
  %1935 = getelementptr inbounds %struct.complex, ptr %1934, i32 0, i32 0
  %1936 = load float, ptr %1935, align 4, !tbaa !11
  %1937 = fneg float %1936
  %1938 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1937, ptr %1938, align 4, !tbaa !11
  %1939 = load ptr, ptr %23, align 8, !tbaa !5
  %1940 = load i64, ptr %37, align 8, !tbaa !9
  %1941 = getelementptr inbounds %struct.complex, ptr %1939, i64 %1940
  %1942 = getelementptr inbounds %struct.complex, ptr %1941, i32 0, i32 1
  %1943 = load float, ptr %1942, align 4, !tbaa !15
  %1944 = fneg float %1943
  %1945 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1944, ptr %1945, align 4, !tbaa !15
  %1946 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1947 = load float, ptr %1946, align 4, !tbaa !11
  %1948 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1949 = load float, ptr %1948, align 4, !tbaa !11
  %1950 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1951 = load float, ptr %1950, align 4, !tbaa !15
  %1952 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1953 = load float, ptr %1952, align 4, !tbaa !15
  %1954 = fmul float %1951, %1953
  %1955 = fneg float %1954
  %1956 = call float @llvm.fmuladd.f32(float %1947, float %1949, float %1955)
  %1957 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1956, ptr %1957, align 4, !tbaa !11
  %1958 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %1959 = load float, ptr %1958, align 4, !tbaa !11
  %1960 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %1961 = load float, ptr %1960, align 4, !tbaa !15
  %1962 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %1963 = load float, ptr %1962, align 4, !tbaa !15
  %1964 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %1965 = load float, ptr %1964, align 4, !tbaa !11
  %1966 = fmul float %1963, %1965
  %1967 = call float @llvm.fmuladd.f32(float %1959, float %1961, float %1966)
  %1968 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1967, ptr %1968, align 4, !tbaa !15
  %1969 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1970 = load float, ptr %1969, align 4, !tbaa !11
  %1971 = load ptr, ptr %27, align 8, !tbaa !5
  %1972 = load i64, ptr %38, align 8, !tbaa !9
  %1973 = getelementptr inbounds %struct.complex, ptr %1971, i64 %1972
  %1974 = getelementptr inbounds %struct.complex, ptr %1973, i32 0, i32 0
  store float %1970, ptr %1974, align 4, !tbaa !11
  %1975 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1976 = load float, ptr %1975, align 4, !tbaa !15
  %1977 = load ptr, ptr %27, align 8, !tbaa !5
  %1978 = load i64, ptr %38, align 8, !tbaa !9
  %1979 = getelementptr inbounds %struct.complex, ptr %1977, i64 %1978
  %1980 = getelementptr inbounds %struct.complex, ptr %1979, i32 0, i32 1
  store float %1976, ptr %1980, align 4, !tbaa !15
  br label %1981

1981:                                             ; preds = %1921, %1918, %1913
  br label %1982

1982:                                             ; preds = %1981, %1910
  %1983 = load ptr, ptr %20, align 8, !tbaa !5
  %1984 = load i64, ptr %1983, align 8, !tbaa !9
  store i64 %1984, ptr %57, align 8, !tbaa !9
  br label %1985

1985:                                             ; preds = %2351, %1982
  %1986 = load i64, ptr %57, align 8, !tbaa !9
  %1987 = icmp sge i64 %1986, 1
  br i1 %1987, label %1988, label %2354

1988:                                             ; preds = %1985
  %1989 = load i64, ptr %80, align 8, !tbaa !9
  %1990 = icmp ne i64 %1989, 0
  br i1 %1990, label %1991, label %2012

1991:                                             ; preds = %1988
  store i64 2, ptr %38, align 8, !tbaa !9
  %1992 = load i64, ptr %57, align 8, !tbaa !9
  %1993 = load i64, ptr %61, align 8, !tbaa !9
  %1994 = sub nsw i64 %1992, %1993
  %1995 = add nsw i64 %1994, 1
  store i64 %1995, ptr %37, align 8, !tbaa !9
  %1996 = load i64, ptr %55, align 8, !tbaa !9
  %1997 = load i64, ptr %57, align 8, !tbaa !9
  %1998 = sub nsw i64 %1996, %1997
  %1999 = sub nsw i64 %1998, 1
  %2000 = load i64, ptr %38, align 8, !tbaa !9
  %2001 = load i64, ptr %37, align 8, !tbaa !9
  %2002 = icmp sge i64 %2000, %2001
  br i1 %2002, label %2003, label %2005

2003:                                             ; preds = %1991
  %2004 = load i64, ptr %38, align 8, !tbaa !9
  br label %2007

2005:                                             ; preds = %1991
  %2006 = load i64, ptr %37, align 8, !tbaa !9
  br label %2007

2007:                                             ; preds = %2005, %2003
  %2008 = phi i64 [ %2004, %2003 ], [ %2006, %2005 ]
  %2009 = load i64, ptr %69, align 8, !tbaa !9
  %2010 = mul nsw i64 %2008, %2009
  %2011 = add nsw i64 %1999, %2010
  store i64 %2011, ptr %65, align 8, !tbaa !9
  br label %2033

2012:                                             ; preds = %1988
  store i64 1, ptr %38, align 8, !tbaa !9
  %2013 = load i64, ptr %57, align 8, !tbaa !9
  %2014 = load i64, ptr %61, align 8, !tbaa !9
  %2015 = sub nsw i64 %2013, %2014
  %2016 = add nsw i64 %2015, 1
  store i64 %2016, ptr %37, align 8, !tbaa !9
  %2017 = load i64, ptr %55, align 8, !tbaa !9
  %2018 = load i64, ptr %57, align 8, !tbaa !9
  %2019 = sub nsw i64 %2017, %2018
  %2020 = sub nsw i64 %2019, 1
  %2021 = load i64, ptr %38, align 8, !tbaa !9
  %2022 = load i64, ptr %37, align 8, !tbaa !9
  %2023 = icmp sge i64 %2021, %2022
  br i1 %2023, label %2024, label %2026

2024:                                             ; preds = %2012
  %2025 = load i64, ptr %38, align 8, !tbaa !9
  br label %2028

2026:                                             ; preds = %2012
  %2027 = load i64, ptr %37, align 8, !tbaa !9
  br label %2028

2028:                                             ; preds = %2026, %2024
  %2029 = phi i64 [ %2025, %2024 ], [ %2027, %2026 ]
  %2030 = load i64, ptr %69, align 8, !tbaa !9
  %2031 = mul nsw i64 %2029, %2030
  %2032 = add nsw i64 %2020, %2031
  store i64 %2032, ptr %65, align 8, !tbaa !9
  br label %2033

2033:                                             ; preds = %2028, %2007
  %2034 = load ptr, ptr %20, align 8, !tbaa !5
  %2035 = load i64, ptr %2034, align 8, !tbaa !9
  %2036 = load i64, ptr %57, align 8, !tbaa !9
  %2037 = sub nsw i64 %2035, %2036
  store i64 %2037, ptr %58, align 8, !tbaa !9
  br label %2038

2038:                                             ; preds = %2091, %2033
  %2039 = load i64, ptr %58, align 8, !tbaa !9
  %2040 = icmp sge i64 %2039, 1
  br i1 %2040, label %2041, label %2094

2041:                                             ; preds = %2038
  %2042 = load ptr, ptr %18, align 8, !tbaa !5
  %2043 = load i64, ptr %2042, align 8, !tbaa !9
  %2044 = load i64, ptr %65, align 8, !tbaa !9
  %2045 = sub nsw i64 %2043, %2044
  %2046 = load ptr, ptr %19, align 8, !tbaa !5
  %2047 = load i64, ptr %2046, align 8, !tbaa !9
  %2048 = add nsw i64 %2045, %2047
  %2049 = load i64, ptr %58, align 8, !tbaa !9
  %2050 = add nsw i64 %2048, %2049
  %2051 = load i64, ptr %69, align 8, !tbaa !9
  %2052 = sdiv i64 %2050, %2051
  store i64 %2052, ptr %76, align 8, !tbaa !9
  %2053 = load i64, ptr %76, align 8, !tbaa !9
  %2054 = icmp sgt i64 %2053, 0
  br i1 %2054, label %2055, label %2090

2055:                                             ; preds = %2041
  %2056 = load ptr, ptr %21, align 8, !tbaa !5
  %2057 = load i64, ptr %58, align 8, !tbaa !9
  %2058 = load i64, ptr %65, align 8, !tbaa !9
  %2059 = load i64, ptr %58, align 8, !tbaa !9
  %2060 = sub nsw i64 %2058, %2059
  %2061 = add nsw i64 %2060, 1
  %2062 = load i64, ptr %30, align 8, !tbaa !9
  %2063 = mul nsw i64 %2061, %2062
  %2064 = add nsw i64 %2057, %2063
  %2065 = getelementptr inbounds %struct.complex, ptr %2056, i64 %2064
  %2066 = load ptr, ptr %21, align 8, !tbaa !5
  %2067 = load i64, ptr %58, align 8, !tbaa !9
  %2068 = add nsw i64 %2067, 1
  %2069 = load i64, ptr %65, align 8, !tbaa !9
  %2070 = load i64, ptr %58, align 8, !tbaa !9
  %2071 = sub nsw i64 %2069, %2070
  %2072 = add nsw i64 %2071, 1
  %2073 = load i64, ptr %30, align 8, !tbaa !9
  %2074 = mul nsw i64 %2072, %2073
  %2075 = add nsw i64 %2068, %2074
  %2076 = getelementptr inbounds %struct.complex, ptr %2066, i64 %2075
  %2077 = load ptr, ptr %28, align 8, !tbaa !5
  %2078 = load i64, ptr %65, align 8, !tbaa !9
  %2079 = load ptr, ptr %19, align 8, !tbaa !5
  %2080 = load i64, ptr %2079, align 8, !tbaa !9
  %2081 = sub nsw i64 %2078, %2080
  %2082 = getelementptr inbounds float, ptr %2077, i64 %2081
  %2083 = load ptr, ptr %27, align 8, !tbaa !5
  %2084 = load i64, ptr %65, align 8, !tbaa !9
  %2085 = load ptr, ptr %19, align 8, !tbaa !5
  %2086 = load i64, ptr %2085, align 8, !tbaa !9
  %2087 = sub nsw i64 %2084, %2086
  %2088 = getelementptr inbounds %struct.complex, ptr %2083, i64 %2087
  %2089 = call i32 @clartv_(ptr noundef %76, ptr noundef %2065, ptr noundef %77, ptr noundef %2076, ptr noundef %77, ptr noundef %2082, ptr noundef %2088, ptr noundef %69)
  br label %2090

2090:                                             ; preds = %2055, %2041
  br label %2091

2091:                                             ; preds = %2090
  %2092 = load i64, ptr %58, align 8, !tbaa !9
  %2093 = add nsw i64 %2092, -1
  store i64 %2093, ptr %58, align 8, !tbaa !9
  br label %2038, !llvm.loop !29

2094:                                             ; preds = %2038
  %2095 = load ptr, ptr %18, align 8, !tbaa !5
  %2096 = load i64, ptr %2095, align 8, !tbaa !9
  %2097 = load i64, ptr %65, align 8, !tbaa !9
  %2098 = sub nsw i64 %2096, %2097
  %2099 = load ptr, ptr %19, align 8, !tbaa !5
  %2100 = load i64, ptr %2099, align 8, !tbaa !9
  %2101 = add nsw i64 %2098, %2100
  %2102 = load i64, ptr %69, align 8, !tbaa !9
  %2103 = sdiv i64 %2101, %2102
  store i64 %2103, ptr %67, align 8, !tbaa !9
  %2104 = load i64, ptr %65, align 8, !tbaa !9
  %2105 = load i64, ptr %67, align 8, !tbaa !9
  %2106 = sub nsw i64 %2105, 1
  %2107 = load i64, ptr %69, align 8, !tbaa !9
  %2108 = mul nsw i64 %2106, %2107
  %2109 = add nsw i64 %2104, %2108
  store i64 %2109, ptr %64, align 8, !tbaa !9
  %2110 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %2110, ptr %38, align 8, !tbaa !9
  %2111 = load i64, ptr %69, align 8, !tbaa !9
  %2112 = sub nsw i64 0, %2111
  store i64 %2112, ptr %37, align 8, !tbaa !9
  %2113 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %2113, ptr %56, align 8, !tbaa !9
  br label %2114

2114:                                             ; preds = %2164, %2094
  %2115 = load i64, ptr %37, align 8, !tbaa !9
  %2116 = icmp slt i64 %2115, 0
  br i1 %2116, label %2117, label %2122

2117:                                             ; preds = %2114
  %2118 = load i64, ptr %56, align 8, !tbaa !9
  %2119 = load i64, ptr %38, align 8, !tbaa !9
  %2120 = icmp sge i64 %2118, %2119
  %2121 = zext i1 %2120 to i32
  br label %2127

2122:                                             ; preds = %2114
  %2123 = load i64, ptr %56, align 8, !tbaa !9
  %2124 = load i64, ptr %38, align 8, !tbaa !9
  %2125 = icmp sle i64 %2123, %2124
  %2126 = zext i1 %2125 to i32
  br label %2127

2127:                                             ; preds = %2122, %2117
  %2128 = phi i32 [ %2121, %2117 ], [ %2126, %2122 ]
  %2129 = icmp ne i32 %2128, 0
  br i1 %2129, label %2130, label %2168

2130:                                             ; preds = %2127
  %2131 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %2131, ptr %39, align 8, !tbaa !9
  %2132 = load i64, ptr %56, align 8, !tbaa !9
  %2133 = load ptr, ptr %19, align 8, !tbaa !5
  %2134 = load i64, ptr %2133, align 8, !tbaa !9
  %2135 = sub nsw i64 %2132, %2134
  store i64 %2135, ptr %36, align 8, !tbaa !9
  %2136 = load ptr, ptr %27, align 8, !tbaa !5
  %2137 = load i64, ptr %36, align 8, !tbaa !9
  %2138 = getelementptr inbounds %struct.complex, ptr %2136, i64 %2137
  %2139 = getelementptr inbounds %struct.complex, ptr %2138, i32 0, i32 0
  %2140 = load float, ptr %2139, align 4, !tbaa !11
  %2141 = load ptr, ptr %27, align 8, !tbaa !5
  %2142 = load i64, ptr %39, align 8, !tbaa !9
  %2143 = getelementptr inbounds %struct.complex, ptr %2141, i64 %2142
  %2144 = getelementptr inbounds %struct.complex, ptr %2143, i32 0, i32 0
  store float %2140, ptr %2144, align 4, !tbaa !11
  %2145 = load ptr, ptr %27, align 8, !tbaa !5
  %2146 = load i64, ptr %36, align 8, !tbaa !9
  %2147 = getelementptr inbounds %struct.complex, ptr %2145, i64 %2146
  %2148 = getelementptr inbounds %struct.complex, ptr %2147, i32 0, i32 1
  %2149 = load float, ptr %2148, align 4, !tbaa !15
  %2150 = load ptr, ptr %27, align 8, !tbaa !5
  %2151 = load i64, ptr %39, align 8, !tbaa !9
  %2152 = getelementptr inbounds %struct.complex, ptr %2150, i64 %2151
  %2153 = getelementptr inbounds %struct.complex, ptr %2152, i32 0, i32 1
  store float %2149, ptr %2153, align 4, !tbaa !15
  %2154 = load ptr, ptr %28, align 8, !tbaa !5
  %2155 = load i64, ptr %56, align 8, !tbaa !9
  %2156 = load ptr, ptr %19, align 8, !tbaa !5
  %2157 = load i64, ptr %2156, align 8, !tbaa !9
  %2158 = sub nsw i64 %2155, %2157
  %2159 = getelementptr inbounds float, ptr %2154, i64 %2158
  %2160 = load float, ptr %2159, align 4, !tbaa !14
  %2161 = load ptr, ptr %28, align 8, !tbaa !5
  %2162 = load i64, ptr %56, align 8, !tbaa !9
  %2163 = getelementptr inbounds float, ptr %2161, i64 %2162
  store float %2160, ptr %2163, align 4, !tbaa !14
  br label %2164

2164:                                             ; preds = %2130
  %2165 = load i64, ptr %37, align 8, !tbaa !9
  %2166 = load i64, ptr %56, align 8, !tbaa !9
  %2167 = add nsw i64 %2166, %2165
  store i64 %2167, ptr %56, align 8, !tbaa !9
  br label %2114, !llvm.loop !30

2168:                                             ; preds = %2127
  %2169 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %2169, ptr %37, align 8, !tbaa !9
  %2170 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %2170, ptr %38, align 8, !tbaa !9
  %2171 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %2171, ptr %56, align 8, !tbaa !9
  br label %2172

2172:                                             ; preds = %2300, %2168
  %2173 = load i64, ptr %38, align 8, !tbaa !9
  %2174 = icmp slt i64 %2173, 0
  br i1 %2174, label %2175, label %2180

2175:                                             ; preds = %2172
  %2176 = load i64, ptr %56, align 8, !tbaa !9
  %2177 = load i64, ptr %37, align 8, !tbaa !9
  %2178 = icmp sge i64 %2176, %2177
  %2179 = zext i1 %2178 to i32
  br label %2185

2180:                                             ; preds = %2172
  %2181 = load i64, ptr %56, align 8, !tbaa !9
  %2182 = load i64, ptr %37, align 8, !tbaa !9
  %2183 = icmp sle i64 %2181, %2182
  %2184 = zext i1 %2183 to i32
  br label %2185

2185:                                             ; preds = %2180, %2175
  %2186 = phi i32 [ %2179, %2175 ], [ %2184, %2180 ]
  %2187 = icmp ne i32 %2186, 0
  br i1 %2187, label %2188, label %2304

2188:                                             ; preds = %2185
  %2189 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %2189, ptr %39, align 8, !tbaa !9
  %2190 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %2190, ptr %36, align 8, !tbaa !9
  %2191 = load i64, ptr %56, align 8, !tbaa !9
  %2192 = add nsw i64 %2191, 1
  %2193 = load i64, ptr %30, align 8, !tbaa !9
  %2194 = mul nsw i64 %2192, %2193
  %2195 = add nsw i64 %2194, 1
  store i64 %2195, ptr %40, align 8, !tbaa !9
  %2196 = load ptr, ptr %27, align 8, !tbaa !5
  %2197 = load i64, ptr %36, align 8, !tbaa !9
  %2198 = getelementptr inbounds %struct.complex, ptr %2196, i64 %2197
  %2199 = getelementptr inbounds %struct.complex, ptr %2198, i32 0, i32 0
  %2200 = load float, ptr %2199, align 4, !tbaa !11
  %2201 = load ptr, ptr %21, align 8, !tbaa !5
  %2202 = load i64, ptr %40, align 8, !tbaa !9
  %2203 = getelementptr inbounds %struct.complex, ptr %2201, i64 %2202
  %2204 = getelementptr inbounds %struct.complex, ptr %2203, i32 0, i32 0
  %2205 = load float, ptr %2204, align 4, !tbaa !11
  %2206 = load ptr, ptr %27, align 8, !tbaa !5
  %2207 = load i64, ptr %36, align 8, !tbaa !9
  %2208 = getelementptr inbounds %struct.complex, ptr %2206, i64 %2207
  %2209 = getelementptr inbounds %struct.complex, ptr %2208, i32 0, i32 1
  %2210 = load float, ptr %2209, align 4, !tbaa !15
  %2211 = load ptr, ptr %21, align 8, !tbaa !5
  %2212 = load i64, ptr %40, align 8, !tbaa !9
  %2213 = getelementptr inbounds %struct.complex, ptr %2211, i64 %2212
  %2214 = getelementptr inbounds %struct.complex, ptr %2213, i32 0, i32 1
  %2215 = load float, ptr %2214, align 4, !tbaa !15
  %2216 = fmul float %2210, %2215
  %2217 = fneg float %2216
  %2218 = call float @llvm.fmuladd.f32(float %2200, float %2205, float %2217)
  %2219 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2218, ptr %2219, align 4, !tbaa !11
  %2220 = load ptr, ptr %27, align 8, !tbaa !5
  %2221 = load i64, ptr %36, align 8, !tbaa !9
  %2222 = getelementptr inbounds %struct.complex, ptr %2220, i64 %2221
  %2223 = getelementptr inbounds %struct.complex, ptr %2222, i32 0, i32 0
  %2224 = load float, ptr %2223, align 4, !tbaa !11
  %2225 = load ptr, ptr %21, align 8, !tbaa !5
  %2226 = load i64, ptr %40, align 8, !tbaa !9
  %2227 = getelementptr inbounds %struct.complex, ptr %2225, i64 %2226
  %2228 = getelementptr inbounds %struct.complex, ptr %2227, i32 0, i32 1
  %2229 = load float, ptr %2228, align 4, !tbaa !15
  %2230 = load ptr, ptr %27, align 8, !tbaa !5
  %2231 = load i64, ptr %36, align 8, !tbaa !9
  %2232 = getelementptr inbounds %struct.complex, ptr %2230, i64 %2231
  %2233 = getelementptr inbounds %struct.complex, ptr %2232, i32 0, i32 1
  %2234 = load float, ptr %2233, align 4, !tbaa !15
  %2235 = load ptr, ptr %21, align 8, !tbaa !5
  %2236 = load i64, ptr %40, align 8, !tbaa !9
  %2237 = getelementptr inbounds %struct.complex, ptr %2235, i64 %2236
  %2238 = getelementptr inbounds %struct.complex, ptr %2237, i32 0, i32 0
  %2239 = load float, ptr %2238, align 4, !tbaa !11
  %2240 = fmul float %2234, %2239
  %2241 = call float @llvm.fmuladd.f32(float %2224, float %2229, float %2240)
  %2242 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2241, ptr %2242, align 4, !tbaa !15
  %2243 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2244 = load float, ptr %2243, align 4, !tbaa !11
  %2245 = load ptr, ptr %27, align 8, !tbaa !5
  %2246 = load i64, ptr %39, align 8, !tbaa !9
  %2247 = getelementptr inbounds %struct.complex, ptr %2245, i64 %2246
  %2248 = getelementptr inbounds %struct.complex, ptr %2247, i32 0, i32 0
  store float %2244, ptr %2248, align 4, !tbaa !11
  %2249 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2250 = load float, ptr %2249, align 4, !tbaa !15
  %2251 = load ptr, ptr %27, align 8, !tbaa !5
  %2252 = load i64, ptr %39, align 8, !tbaa !9
  %2253 = getelementptr inbounds %struct.complex, ptr %2251, i64 %2252
  %2254 = getelementptr inbounds %struct.complex, ptr %2253, i32 0, i32 1
  store float %2250, ptr %2254, align 4, !tbaa !15
  %2255 = load i64, ptr %56, align 8, !tbaa !9
  %2256 = add nsw i64 %2255, 1
  %2257 = load i64, ptr %30, align 8, !tbaa !9
  %2258 = mul nsw i64 %2256, %2257
  %2259 = add nsw i64 %2258, 1
  store i64 %2259, ptr %39, align 8, !tbaa !9
  %2260 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %2260, ptr %36, align 8, !tbaa !9
  %2261 = load i64, ptr %56, align 8, !tbaa !9
  %2262 = add nsw i64 %2261, 1
  %2263 = load i64, ptr %30, align 8, !tbaa !9
  %2264 = mul nsw i64 %2262, %2263
  %2265 = add nsw i64 %2264, 1
  store i64 %2265, ptr %40, align 8, !tbaa !9
  %2266 = load ptr, ptr %28, align 8, !tbaa !5
  %2267 = load i64, ptr %36, align 8, !tbaa !9
  %2268 = getelementptr inbounds float, ptr %2266, i64 %2267
  %2269 = load float, ptr %2268, align 4, !tbaa !14
  %2270 = load ptr, ptr %21, align 8, !tbaa !5
  %2271 = load i64, ptr %40, align 8, !tbaa !9
  %2272 = getelementptr inbounds %struct.complex, ptr %2270, i64 %2271
  %2273 = getelementptr inbounds %struct.complex, ptr %2272, i32 0, i32 0
  %2274 = load float, ptr %2273, align 4, !tbaa !11
  %2275 = fmul float %2269, %2274
  %2276 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2275, ptr %2276, align 4, !tbaa !11
  %2277 = load ptr, ptr %28, align 8, !tbaa !5
  %2278 = load i64, ptr %36, align 8, !tbaa !9
  %2279 = getelementptr inbounds float, ptr %2277, i64 %2278
  %2280 = load float, ptr %2279, align 4, !tbaa !14
  %2281 = load ptr, ptr %21, align 8, !tbaa !5
  %2282 = load i64, ptr %40, align 8, !tbaa !9
  %2283 = getelementptr inbounds %struct.complex, ptr %2281, i64 %2282
  %2284 = getelementptr inbounds %struct.complex, ptr %2283, i32 0, i32 1
  %2285 = load float, ptr %2284, align 4, !tbaa !15
  %2286 = fmul float %2280, %2285
  %2287 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2286, ptr %2287, align 4, !tbaa !15
  %2288 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2289 = load float, ptr %2288, align 4, !tbaa !11
  %2290 = load ptr, ptr %21, align 8, !tbaa !5
  %2291 = load i64, ptr %39, align 8, !tbaa !9
  %2292 = getelementptr inbounds %struct.complex, ptr %2290, i64 %2291
  %2293 = getelementptr inbounds %struct.complex, ptr %2292, i32 0, i32 0
  store float %2289, ptr %2293, align 4, !tbaa !11
  %2294 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2295 = load float, ptr %2294, align 4, !tbaa !15
  %2296 = load ptr, ptr %21, align 8, !tbaa !5
  %2297 = load i64, ptr %39, align 8, !tbaa !9
  %2298 = getelementptr inbounds %struct.complex, ptr %2296, i64 %2297
  %2299 = getelementptr inbounds %struct.complex, ptr %2298, i32 0, i32 1
  store float %2295, ptr %2299, align 4, !tbaa !15
  br label %2300

2300:                                             ; preds = %2188
  %2301 = load i64, ptr %38, align 8, !tbaa !9
  %2302 = load i64, ptr %56, align 8, !tbaa !9
  %2303 = add nsw i64 %2302, %2301
  store i64 %2303, ptr %56, align 8, !tbaa !9
  br label %2172, !llvm.loop !31

2304:                                             ; preds = %2185
  %2305 = load i64, ptr %80, align 8, !tbaa !9
  %2306 = icmp ne i64 %2305, 0
  br i1 %2306, label %2307, label %2350

2307:                                             ; preds = %2304
  %2308 = load i64, ptr %55, align 8, !tbaa !9
  %2309 = load i64, ptr %57, align 8, !tbaa !9
  %2310 = sub nsw i64 %2308, %2309
  %2311 = load ptr, ptr %18, align 8, !tbaa !5
  %2312 = load i64, ptr %2311, align 8, !tbaa !9
  %2313 = load ptr, ptr %19, align 8, !tbaa !5
  %2314 = load i64, ptr %2313, align 8, !tbaa !9
  %2315 = sub nsw i64 %2312, %2314
  %2316 = icmp slt i64 %2310, %2315
  br i1 %2316, label %2317, label %2349

2317:                                             ; preds = %2307
  %2318 = load i64, ptr %57, align 8, !tbaa !9
  %2319 = load i64, ptr %75, align 8, !tbaa !9
  %2320 = icmp sle i64 %2318, %2319
  br i1 %2320, label %2321, label %2349

2321:                                             ; preds = %2317
  %2322 = load i64, ptr %55, align 8, !tbaa !9
  %2323 = load i64, ptr %57, align 8, !tbaa !9
  %2324 = sub nsw i64 %2322, %2323
  %2325 = load ptr, ptr %19, align 8, !tbaa !5
  %2326 = load i64, ptr %2325, align 8, !tbaa !9
  %2327 = add nsw i64 %2324, %2326
  store i64 %2327, ptr %38, align 8, !tbaa !9
  %2328 = load i64, ptr %55, align 8, !tbaa !9
  %2329 = load i64, ptr %57, align 8, !tbaa !9
  %2330 = sub nsw i64 %2328, %2329
  store i64 %2330, ptr %37, align 8, !tbaa !9
  %2331 = load ptr, ptr %27, align 8, !tbaa !5
  %2332 = load i64, ptr %37, align 8, !tbaa !9
  %2333 = getelementptr inbounds %struct.complex, ptr %2331, i64 %2332
  %2334 = getelementptr inbounds %struct.complex, ptr %2333, i32 0, i32 0
  %2335 = load float, ptr %2334, align 4, !tbaa !11
  %2336 = load ptr, ptr %27, align 8, !tbaa !5
  %2337 = load i64, ptr %38, align 8, !tbaa !9
  %2338 = getelementptr inbounds %struct.complex, ptr %2336, i64 %2337
  %2339 = getelementptr inbounds %struct.complex, ptr %2338, i32 0, i32 0
  store float %2335, ptr %2339, align 4, !tbaa !11
  %2340 = load ptr, ptr %27, align 8, !tbaa !5
  %2341 = load i64, ptr %37, align 8, !tbaa !9
  %2342 = getelementptr inbounds %struct.complex, ptr %2340, i64 %2341
  %2343 = getelementptr inbounds %struct.complex, ptr %2342, i32 0, i32 1
  %2344 = load float, ptr %2343, align 4, !tbaa !15
  %2345 = load ptr, ptr %27, align 8, !tbaa !5
  %2346 = load i64, ptr %38, align 8, !tbaa !9
  %2347 = getelementptr inbounds %struct.complex, ptr %2345, i64 %2346
  %2348 = getelementptr inbounds %struct.complex, ptr %2347, i32 0, i32 1
  store float %2344, ptr %2348, align 4, !tbaa !15
  br label %2349

2349:                                             ; preds = %2321, %2317, %2307
  br label %2350

2350:                                             ; preds = %2349, %2304
  br label %2351

2351:                                             ; preds = %2350
  %2352 = load i64, ptr %57, align 8, !tbaa !9
  %2353 = add nsw i64 %2352, -1
  store i64 %2353, ptr %57, align 8, !tbaa !9
  br label %1985, !llvm.loop !32

2354:                                             ; preds = %1985
  %2355 = load ptr, ptr %20, align 8, !tbaa !5
  %2356 = load i64, ptr %2355, align 8, !tbaa !9
  store i64 %2356, ptr %57, align 8, !tbaa !9
  br label %2357

2357:                                             ; preds = %2603, %2354
  %2358 = load i64, ptr %57, align 8, !tbaa !9
  %2359 = icmp sge i64 %2358, 1
  br i1 %2359, label %2360, label %2606

2360:                                             ; preds = %2357
  store i64 1, ptr %38, align 8, !tbaa !9
  %2361 = load i64, ptr %57, align 8, !tbaa !9
  %2362 = load i64, ptr %61, align 8, !tbaa !9
  %2363 = sub nsw i64 %2361, %2362
  %2364 = add nsw i64 %2363, 1
  store i64 %2364, ptr %37, align 8, !tbaa !9
  %2365 = load i64, ptr %55, align 8, !tbaa !9
  %2366 = load i64, ptr %57, align 8, !tbaa !9
  %2367 = sub nsw i64 %2365, %2366
  %2368 = sub nsw i64 %2367, 1
  %2369 = load i64, ptr %38, align 8, !tbaa !9
  %2370 = load i64, ptr %37, align 8, !tbaa !9
  %2371 = icmp sge i64 %2369, %2370
  br i1 %2371, label %2372, label %2374

2372:                                             ; preds = %2360
  %2373 = load i64, ptr %38, align 8, !tbaa !9
  br label %2376

2374:                                             ; preds = %2360
  %2375 = load i64, ptr %37, align 8, !tbaa !9
  br label %2376

2376:                                             ; preds = %2374, %2372
  %2377 = phi i64 [ %2373, %2372 ], [ %2375, %2374 ]
  %2378 = load i64, ptr %69, align 8, !tbaa !9
  %2379 = mul nsw i64 %2377, %2378
  %2380 = add nsw i64 %2368, %2379
  store i64 %2380, ptr %65, align 8, !tbaa !9
  %2381 = load ptr, ptr %18, align 8, !tbaa !5
  %2382 = load i64, ptr %2381, align 8, !tbaa !9
  %2383 = load i64, ptr %65, align 8, !tbaa !9
  %2384 = sub nsw i64 %2382, %2383
  %2385 = load ptr, ptr %19, align 8, !tbaa !5
  %2386 = load i64, ptr %2385, align 8, !tbaa !9
  %2387 = add nsw i64 %2384, %2386
  %2388 = load i64, ptr %69, align 8, !tbaa !9
  %2389 = sdiv i64 %2387, %2388
  store i64 %2389, ptr %67, align 8, !tbaa !9
  %2390 = load i64, ptr %65, align 8, !tbaa !9
  %2391 = load i64, ptr %67, align 8, !tbaa !9
  %2392 = sub nsw i64 %2391, 1
  %2393 = load i64, ptr %69, align 8, !tbaa !9
  %2394 = mul nsw i64 %2392, %2393
  %2395 = add nsw i64 %2390, %2394
  store i64 %2395, ptr %64, align 8, !tbaa !9
  %2396 = load i64, ptr %67, align 8, !tbaa !9
  %2397 = icmp sgt i64 %2396, 0
  br i1 %2397, label %2398, label %2486

2398:                                             ; preds = %2376
  %2399 = load ptr, ptr %21, align 8, !tbaa !5
  %2400 = load i64, ptr %65, align 8, !tbaa !9
  %2401 = load i64, ptr %30, align 8, !tbaa !9
  %2402 = mul nsw i64 %2400, %2401
  %2403 = add nsw i64 %2402, 1
  %2404 = getelementptr inbounds %struct.complex, ptr %2399, i64 %2403
  %2405 = load ptr, ptr %27, align 8, !tbaa !5
  %2406 = load i64, ptr %65, align 8, !tbaa !9
  %2407 = getelementptr inbounds %struct.complex, ptr %2405, i64 %2406
  %2408 = load ptr, ptr %28, align 8, !tbaa !5
  %2409 = load i64, ptr %65, align 8, !tbaa !9
  %2410 = getelementptr inbounds float, ptr %2408, i64 %2409
  %2411 = call i32 @clargv_(ptr noundef %67, ptr noundef %2404, ptr noundef %77, ptr noundef %2407, ptr noundef %69, ptr noundef %2410, ptr noundef %69)
  %2412 = load ptr, ptr %19, align 8, !tbaa !5
  %2413 = load i64, ptr %2412, align 8, !tbaa !9
  %2414 = sub nsw i64 %2413, 1
  store i64 %2414, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %2415

2415:                                             ; preds = %2447, %2398
  %2416 = load i64, ptr %58, align 8, !tbaa !9
  %2417 = load i64, ptr %38, align 8, !tbaa !9
  %2418 = icmp sle i64 %2416, %2417
  br i1 %2418, label %2419, label %2450

2419:                                             ; preds = %2415
  %2420 = load ptr, ptr %21, align 8, !tbaa !5
  %2421 = load i64, ptr %69, align 8, !tbaa !9
  %2422 = load i64, ptr %58, align 8, !tbaa !9
  %2423 = sub nsw i64 %2421, %2422
  %2424 = load i64, ptr %65, align 8, !tbaa !9
  %2425 = load i64, ptr %30, align 8, !tbaa !9
  %2426 = mul nsw i64 %2424, %2425
  %2427 = add nsw i64 %2423, %2426
  %2428 = getelementptr inbounds %struct.complex, ptr %2420, i64 %2427
  %2429 = load ptr, ptr %21, align 8, !tbaa !5
  %2430 = load ptr, ptr %19, align 8, !tbaa !5
  %2431 = load i64, ptr %2430, align 8, !tbaa !9
  %2432 = load i64, ptr %58, align 8, !tbaa !9
  %2433 = sub nsw i64 %2431, %2432
  %2434 = load i64, ptr %65, align 8, !tbaa !9
  %2435 = add nsw i64 %2434, 1
  %2436 = load i64, ptr %30, align 8, !tbaa !9
  %2437 = mul nsw i64 %2435, %2436
  %2438 = add nsw i64 %2433, %2437
  %2439 = getelementptr inbounds %struct.complex, ptr %2429, i64 %2438
  %2440 = load ptr, ptr %28, align 8, !tbaa !5
  %2441 = load i64, ptr %65, align 8, !tbaa !9
  %2442 = getelementptr inbounds float, ptr %2440, i64 %2441
  %2443 = load ptr, ptr %27, align 8, !tbaa !5
  %2444 = load i64, ptr %65, align 8, !tbaa !9
  %2445 = getelementptr inbounds %struct.complex, ptr %2443, i64 %2444
  %2446 = call i32 @clartv_(ptr noundef %67, ptr noundef %2428, ptr noundef %77, ptr noundef %2439, ptr noundef %77, ptr noundef %2442, ptr noundef %2445, ptr noundef %69)
  br label %2447

2447:                                             ; preds = %2419
  %2448 = load i64, ptr %58, align 8, !tbaa !9
  %2449 = add nsw i64 %2448, 1
  store i64 %2449, ptr %58, align 8, !tbaa !9
  br label %2415, !llvm.loop !33

2450:                                             ; preds = %2415
  %2451 = load ptr, ptr %21, align 8, !tbaa !5
  %2452 = load i64, ptr %69, align 8, !tbaa !9
  %2453 = load i64, ptr %65, align 8, !tbaa !9
  %2454 = load i64, ptr %30, align 8, !tbaa !9
  %2455 = mul nsw i64 %2453, %2454
  %2456 = add nsw i64 %2452, %2455
  %2457 = getelementptr inbounds %struct.complex, ptr %2451, i64 %2456
  %2458 = load ptr, ptr %21, align 8, !tbaa !5
  %2459 = load i64, ptr %69, align 8, !tbaa !9
  %2460 = load i64, ptr %65, align 8, !tbaa !9
  %2461 = add nsw i64 %2460, 1
  %2462 = load i64, ptr %30, align 8, !tbaa !9
  %2463 = mul nsw i64 %2461, %2462
  %2464 = add nsw i64 %2459, %2463
  %2465 = getelementptr inbounds %struct.complex, ptr %2458, i64 %2464
  %2466 = load ptr, ptr %21, align 8, !tbaa !5
  %2467 = load ptr, ptr %19, align 8, !tbaa !5
  %2468 = load i64, ptr %2467, align 8, !tbaa !9
  %2469 = load i64, ptr %65, align 8, !tbaa !9
  %2470 = add nsw i64 %2469, 1
  %2471 = load i64, ptr %30, align 8, !tbaa !9
  %2472 = mul nsw i64 %2470, %2471
  %2473 = add nsw i64 %2468, %2472
  %2474 = getelementptr inbounds %struct.complex, ptr %2466, i64 %2473
  %2475 = load ptr, ptr %28, align 8, !tbaa !5
  %2476 = load i64, ptr %65, align 8, !tbaa !9
  %2477 = getelementptr inbounds float, ptr %2475, i64 %2476
  %2478 = load ptr, ptr %27, align 8, !tbaa !5
  %2479 = load i64, ptr %65, align 8, !tbaa !9
  %2480 = getelementptr inbounds %struct.complex, ptr %2478, i64 %2479
  %2481 = call i32 @clar2v_(ptr noundef %67, ptr noundef %2457, ptr noundef %2465, ptr noundef %2474, ptr noundef %77, ptr noundef %2477, ptr noundef %2480, ptr noundef %69)
  %2482 = load ptr, ptr %27, align 8, !tbaa !5
  %2483 = load i64, ptr %65, align 8, !tbaa !9
  %2484 = getelementptr inbounds %struct.complex, ptr %2482, i64 %2483
  %2485 = call i32 @clacgv_(ptr noundef %67, ptr noundef %2484, ptr noundef %69)
  br label %2486

2486:                                             ; preds = %2450, %2376
  %2487 = load ptr, ptr %20, align 8, !tbaa !5
  %2488 = load i64, ptr %2487, align 8, !tbaa !9
  %2489 = load i64, ptr %57, align 8, !tbaa !9
  %2490 = sub nsw i64 %2488, %2489
  %2491 = add nsw i64 %2490, 1
  store i64 %2491, ptr %38, align 8, !tbaa !9
  %2492 = load ptr, ptr %19, align 8, !tbaa !5
  %2493 = load i64, ptr %2492, align 8, !tbaa !9
  %2494 = sub nsw i64 %2493, 1
  store i64 %2494, ptr %58, align 8, !tbaa !9
  br label %2495

2495:                                             ; preds = %2542, %2486
  %2496 = load i64, ptr %58, align 8, !tbaa !9
  %2497 = load i64, ptr %38, align 8, !tbaa !9
  %2498 = icmp sge i64 %2496, %2497
  br i1 %2498, label %2499, label %2545

2499:                                             ; preds = %2495
  %2500 = load ptr, ptr %18, align 8, !tbaa !5
  %2501 = load i64, ptr %2500, align 8, !tbaa !9
  %2502 = load i64, ptr %65, align 8, !tbaa !9
  %2503 = sub nsw i64 %2501, %2502
  %2504 = load i64, ptr %58, align 8, !tbaa !9
  %2505 = add nsw i64 %2503, %2504
  %2506 = load i64, ptr %69, align 8, !tbaa !9
  %2507 = sdiv i64 %2505, %2506
  store i64 %2507, ptr %76, align 8, !tbaa !9
  %2508 = load i64, ptr %76, align 8, !tbaa !9
  %2509 = icmp sgt i64 %2508, 0
  br i1 %2509, label %2510, label %2541

2510:                                             ; preds = %2499
  %2511 = load ptr, ptr %21, align 8, !tbaa !5
  %2512 = load i64, ptr %58, align 8, !tbaa !9
  %2513 = load i64, ptr %65, align 8, !tbaa !9
  %2514 = load i64, ptr %69, align 8, !tbaa !9
  %2515 = add nsw i64 %2513, %2514
  %2516 = load i64, ptr %58, align 8, !tbaa !9
  %2517 = sub nsw i64 %2515, %2516
  %2518 = load i64, ptr %30, align 8, !tbaa !9
  %2519 = mul nsw i64 %2517, %2518
  %2520 = add nsw i64 %2512, %2519
  %2521 = getelementptr inbounds %struct.complex, ptr %2511, i64 %2520
  %2522 = load ptr, ptr %21, align 8, !tbaa !5
  %2523 = load i64, ptr %58, align 8, !tbaa !9
  %2524 = add nsw i64 %2523, 1
  %2525 = load i64, ptr %65, align 8, !tbaa !9
  %2526 = load i64, ptr %69, align 8, !tbaa !9
  %2527 = add nsw i64 %2525, %2526
  %2528 = load i64, ptr %58, align 8, !tbaa !9
  %2529 = sub nsw i64 %2527, %2528
  %2530 = load i64, ptr %30, align 8, !tbaa !9
  %2531 = mul nsw i64 %2529, %2530
  %2532 = add nsw i64 %2524, %2531
  %2533 = getelementptr inbounds %struct.complex, ptr %2522, i64 %2532
  %2534 = load ptr, ptr %28, align 8, !tbaa !5
  %2535 = load i64, ptr %65, align 8, !tbaa !9
  %2536 = getelementptr inbounds float, ptr %2534, i64 %2535
  %2537 = load ptr, ptr %27, align 8, !tbaa !5
  %2538 = load i64, ptr %65, align 8, !tbaa !9
  %2539 = getelementptr inbounds %struct.complex, ptr %2537, i64 %2538
  %2540 = call i32 @clartv_(ptr noundef %76, ptr noundef %2521, ptr noundef %77, ptr noundef %2533, ptr noundef %77, ptr noundef %2536, ptr noundef %2539, ptr noundef %69)
  br label %2541

2541:                                             ; preds = %2510, %2499
  br label %2542

2542:                                             ; preds = %2541
  %2543 = load i64, ptr %58, align 8, !tbaa !9
  %2544 = add nsw i64 %2543, -1
  store i64 %2544, ptr %58, align 8, !tbaa !9
  br label %2495, !llvm.loop !34

2545:                                             ; preds = %2495
  %2546 = load i64, ptr %79, align 8, !tbaa !9
  %2547 = icmp ne i64 %2546, 0
  br i1 %2547, label %2548, label %2602

2548:                                             ; preds = %2545
  %2549 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %2549, ptr %38, align 8, !tbaa !9
  %2550 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %2550, ptr %37, align 8, !tbaa !9
  %2551 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %2551, ptr %56, align 8, !tbaa !9
  br label %2552

2552:                                             ; preds = %2597, %2548
  %2553 = load i64, ptr %37, align 8, !tbaa !9
  %2554 = icmp slt i64 %2553, 0
  br i1 %2554, label %2555, label %2560

2555:                                             ; preds = %2552
  %2556 = load i64, ptr %56, align 8, !tbaa !9
  %2557 = load i64, ptr %38, align 8, !tbaa !9
  %2558 = icmp sge i64 %2556, %2557
  %2559 = zext i1 %2558 to i32
  br label %2565

2560:                                             ; preds = %2552
  %2561 = load i64, ptr %56, align 8, !tbaa !9
  %2562 = load i64, ptr %38, align 8, !tbaa !9
  %2563 = icmp sle i64 %2561, %2562
  %2564 = zext i1 %2563 to i32
  br label %2565

2565:                                             ; preds = %2560, %2555
  %2566 = phi i32 [ %2559, %2555 ], [ %2564, %2560 ]
  %2567 = icmp ne i32 %2566, 0
  br i1 %2567, label %2568, label %2601

2568:                                             ; preds = %2565
  %2569 = load ptr, ptr %18, align 8, !tbaa !5
  %2570 = load i64, ptr %2569, align 8, !tbaa !9
  %2571 = load i64, ptr %59, align 8, !tbaa !9
  %2572 = sub nsw i64 %2570, %2571
  store i64 %2572, ptr %39, align 8, !tbaa !9
  %2573 = load ptr, ptr %27, align 8, !tbaa !5
  %2574 = load i64, ptr %56, align 8, !tbaa !9
  %2575 = getelementptr inbounds %struct.complex, ptr %2573, i64 %2574
  call void @r_cnjg(ptr noundef %45, ptr noundef %2575)
  %2576 = load ptr, ptr %25, align 8, !tbaa !5
  %2577 = load i64, ptr %59, align 8, !tbaa !9
  %2578 = add nsw i64 %2577, 1
  %2579 = load i64, ptr %56, align 8, !tbaa !9
  %2580 = load i64, ptr %34, align 8, !tbaa !9
  %2581 = mul nsw i64 %2579, %2580
  %2582 = add nsw i64 %2578, %2581
  %2583 = getelementptr inbounds %struct.complex, ptr %2576, i64 %2582
  %2584 = load ptr, ptr %25, align 8, !tbaa !5
  %2585 = load i64, ptr %59, align 8, !tbaa !9
  %2586 = add nsw i64 %2585, 1
  %2587 = load i64, ptr %56, align 8, !tbaa !9
  %2588 = add nsw i64 %2587, 1
  %2589 = load i64, ptr %34, align 8, !tbaa !9
  %2590 = mul nsw i64 %2588, %2589
  %2591 = add nsw i64 %2586, %2590
  %2592 = getelementptr inbounds %struct.complex, ptr %2584, i64 %2591
  %2593 = load ptr, ptr %28, align 8, !tbaa !5
  %2594 = load i64, ptr %56, align 8, !tbaa !9
  %2595 = getelementptr inbounds float, ptr %2593, i64 %2594
  %2596 = call i32 @crot_(ptr noundef %39, ptr noundef %2583, ptr noundef @c__1, ptr noundef %2592, ptr noundef @c__1, ptr noundef %2595, ptr noundef %45)
  br label %2597

2597:                                             ; preds = %2568
  %2598 = load i64, ptr %37, align 8, !tbaa !9
  %2599 = load i64, ptr %56, align 8, !tbaa !9
  %2600 = add nsw i64 %2599, %2598
  store i64 %2600, ptr %56, align 8, !tbaa !9
  br label %2552, !llvm.loop !35

2601:                                             ; preds = %2565
  br label %2602

2602:                                             ; preds = %2601, %2545
  br label %2603

2603:                                             ; preds = %2602
  %2604 = load i64, ptr %57, align 8, !tbaa !9
  %2605 = add nsw i64 %2604, -1
  store i64 %2605, ptr %57, align 8, !tbaa !9
  br label %2357, !llvm.loop !36

2606:                                             ; preds = %2357
  %2607 = load ptr, ptr %20, align 8, !tbaa !5
  %2608 = load i64, ptr %2607, align 8, !tbaa !9
  %2609 = sub nsw i64 %2608, 1
  store i64 %2609, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %2610

2610:                                             ; preds = %2693, %2606
  %2611 = load i64, ptr %57, align 8, !tbaa !9
  %2612 = load i64, ptr %37, align 8, !tbaa !9
  %2613 = icmp sle i64 %2611, %2612
  br i1 %2613, label %2614, label %2696

2614:                                             ; preds = %2610
  store i64 1, ptr %38, align 8, !tbaa !9
  %2615 = load i64, ptr %57, align 8, !tbaa !9
  %2616 = load i64, ptr %61, align 8, !tbaa !9
  %2617 = sub nsw i64 %2615, %2616
  %2618 = add nsw i64 %2617, 2
  store i64 %2618, ptr %39, align 8, !tbaa !9
  %2619 = load i64, ptr %55, align 8, !tbaa !9
  %2620 = load i64, ptr %57, align 8, !tbaa !9
  %2621 = sub nsw i64 %2619, %2620
  %2622 = sub nsw i64 %2621, 1
  %2623 = load i64, ptr %38, align 8, !tbaa !9
  %2624 = load i64, ptr %39, align 8, !tbaa !9
  %2625 = icmp sge i64 %2623, %2624
  br i1 %2625, label %2626, label %2628

2626:                                             ; preds = %2614
  %2627 = load i64, ptr %38, align 8, !tbaa !9
  br label %2630

2628:                                             ; preds = %2614
  %2629 = load i64, ptr %39, align 8, !tbaa !9
  br label %2630

2630:                                             ; preds = %2628, %2626
  %2631 = phi i64 [ %2627, %2626 ], [ %2629, %2628 ]
  %2632 = load i64, ptr %69, align 8, !tbaa !9
  %2633 = mul nsw i64 %2631, %2632
  %2634 = add nsw i64 %2622, %2633
  store i64 %2634, ptr %65, align 8, !tbaa !9
  %2635 = load ptr, ptr %20, align 8, !tbaa !5
  %2636 = load i64, ptr %2635, align 8, !tbaa !9
  %2637 = load i64, ptr %57, align 8, !tbaa !9
  %2638 = sub nsw i64 %2636, %2637
  store i64 %2638, ptr %58, align 8, !tbaa !9
  br label %2639

2639:                                             ; preds = %2689, %2630
  %2640 = load i64, ptr %58, align 8, !tbaa !9
  %2641 = icmp sge i64 %2640, 1
  br i1 %2641, label %2642, label %2692

2642:                                             ; preds = %2639
  %2643 = load ptr, ptr %18, align 8, !tbaa !5
  %2644 = load i64, ptr %2643, align 8, !tbaa !9
  %2645 = load i64, ptr %65, align 8, !tbaa !9
  %2646 = sub nsw i64 %2644, %2645
  %2647 = load i64, ptr %58, align 8, !tbaa !9
  %2648 = add nsw i64 %2646, %2647
  %2649 = load i64, ptr %69, align 8, !tbaa !9
  %2650 = sdiv i64 %2648, %2649
  store i64 %2650, ptr %76, align 8, !tbaa !9
  %2651 = load i64, ptr %76, align 8, !tbaa !9
  %2652 = icmp sgt i64 %2651, 0
  br i1 %2652, label %2653, label %2688

2653:                                             ; preds = %2642
  %2654 = load ptr, ptr %21, align 8, !tbaa !5
  %2655 = load i64, ptr %58, align 8, !tbaa !9
  %2656 = load i64, ptr %65, align 8, !tbaa !9
  %2657 = load i64, ptr %69, align 8, !tbaa !9
  %2658 = add nsw i64 %2656, %2657
  %2659 = load i64, ptr %58, align 8, !tbaa !9
  %2660 = sub nsw i64 %2658, %2659
  %2661 = load i64, ptr %30, align 8, !tbaa !9
  %2662 = mul nsw i64 %2660, %2661
  %2663 = add nsw i64 %2655, %2662
  %2664 = getelementptr inbounds %struct.complex, ptr %2654, i64 %2663
  %2665 = load ptr, ptr %21, align 8, !tbaa !5
  %2666 = load i64, ptr %58, align 8, !tbaa !9
  %2667 = add nsw i64 %2666, 1
  %2668 = load i64, ptr %65, align 8, !tbaa !9
  %2669 = load i64, ptr %69, align 8, !tbaa !9
  %2670 = add nsw i64 %2668, %2669
  %2671 = load i64, ptr %58, align 8, !tbaa !9
  %2672 = sub nsw i64 %2670, %2671
  %2673 = load i64, ptr %30, align 8, !tbaa !9
  %2674 = mul nsw i64 %2672, %2673
  %2675 = add nsw i64 %2667, %2674
  %2676 = getelementptr inbounds %struct.complex, ptr %2665, i64 %2675
  %2677 = load ptr, ptr %28, align 8, !tbaa !5
  %2678 = load i64, ptr %65, align 8, !tbaa !9
  %2679 = load i64, ptr %59, align 8, !tbaa !9
  %2680 = sub nsw i64 %2678, %2679
  %2681 = getelementptr inbounds float, ptr %2677, i64 %2680
  %2682 = load ptr, ptr %27, align 8, !tbaa !5
  %2683 = load i64, ptr %65, align 8, !tbaa !9
  %2684 = load i64, ptr %59, align 8, !tbaa !9
  %2685 = sub nsw i64 %2683, %2684
  %2686 = getelementptr inbounds %struct.complex, ptr %2682, i64 %2685
  %2687 = call i32 @clartv_(ptr noundef %76, ptr noundef %2664, ptr noundef %77, ptr noundef %2676, ptr noundef %77, ptr noundef %2681, ptr noundef %2686, ptr noundef %69)
  br label %2688

2688:                                             ; preds = %2653, %2642
  br label %2689

2689:                                             ; preds = %2688
  %2690 = load i64, ptr %58, align 8, !tbaa !9
  %2691 = add nsw i64 %2690, -1
  store i64 %2691, ptr %58, align 8, !tbaa !9
  br label %2639, !llvm.loop !37

2692:                                             ; preds = %2639
  br label %2693

2693:                                             ; preds = %2692
  %2694 = load i64, ptr %57, align 8, !tbaa !9
  %2695 = add nsw i64 %2694, 1
  store i64 %2695, ptr %57, align 8, !tbaa !9
  br label %2610, !llvm.loop !38

2696:                                             ; preds = %2610
  %2697 = load ptr, ptr %20, align 8, !tbaa !5
  %2698 = load i64, ptr %2697, align 8, !tbaa !9
  %2699 = icmp sgt i64 %2698, 1
  br i1 %2699, label %2700, label %2758

2700:                                             ; preds = %2696
  %2701 = load i64, ptr %63, align 8, !tbaa !9
  %2702 = load ptr, ptr %19, align 8, !tbaa !5
  %2703 = load i64, ptr %2702, align 8, !tbaa !9
  %2704 = add nsw i64 %2701, %2703
  store i64 %2704, ptr %37, align 8, !tbaa !9
  %2705 = load ptr, ptr %18, align 8, !tbaa !5
  %2706 = load i64, ptr %2705, align 8, !tbaa !9
  %2707 = sub nsw i64 %2706, 1
  store i64 %2707, ptr %56, align 8, !tbaa !9
  br label %2708

2708:                                             ; preds = %2754, %2700
  %2709 = load i64, ptr %56, align 8, !tbaa !9
  %2710 = load i64, ptr %37, align 8, !tbaa !9
  %2711 = icmp sge i64 %2709, %2710
  br i1 %2711, label %2712, label %2757

2712:                                             ; preds = %2708
  %2713 = load ptr, ptr %28, align 8, !tbaa !5
  %2714 = load i64, ptr %56, align 8, !tbaa !9
  %2715 = load ptr, ptr %19, align 8, !tbaa !5
  %2716 = load i64, ptr %2715, align 8, !tbaa !9
  %2717 = sub nsw i64 %2714, %2716
  %2718 = load i64, ptr %59, align 8, !tbaa !9
  %2719 = sub nsw i64 %2717, %2718
  %2720 = getelementptr inbounds float, ptr %2713, i64 %2719
  %2721 = load float, ptr %2720, align 4, !tbaa !14
  %2722 = load ptr, ptr %28, align 8, !tbaa !5
  %2723 = load i64, ptr %56, align 8, !tbaa !9
  %2724 = load i64, ptr %59, align 8, !tbaa !9
  %2725 = sub nsw i64 %2723, %2724
  %2726 = getelementptr inbounds float, ptr %2722, i64 %2725
  store float %2721, ptr %2726, align 4, !tbaa !14
  %2727 = load i64, ptr %56, align 8, !tbaa !9
  %2728 = load i64, ptr %59, align 8, !tbaa !9
  %2729 = sub nsw i64 %2727, %2728
  store i64 %2729, ptr %38, align 8, !tbaa !9
  %2730 = load i64, ptr %56, align 8, !tbaa !9
  %2731 = load ptr, ptr %19, align 8, !tbaa !5
  %2732 = load i64, ptr %2731, align 8, !tbaa !9
  %2733 = sub nsw i64 %2730, %2732
  %2734 = load i64, ptr %59, align 8, !tbaa !9
  %2735 = sub nsw i64 %2733, %2734
  store i64 %2735, ptr %39, align 8, !tbaa !9
  %2736 = load ptr, ptr %27, align 8, !tbaa !5
  %2737 = load i64, ptr %39, align 8, !tbaa !9
  %2738 = getelementptr inbounds %struct.complex, ptr %2736, i64 %2737
  %2739 = getelementptr inbounds %struct.complex, ptr %2738, i32 0, i32 0
  %2740 = load float, ptr %2739, align 4, !tbaa !11
  %2741 = load ptr, ptr %27, align 8, !tbaa !5
  %2742 = load i64, ptr %38, align 8, !tbaa !9
  %2743 = getelementptr inbounds %struct.complex, ptr %2741, i64 %2742
  %2744 = getelementptr inbounds %struct.complex, ptr %2743, i32 0, i32 0
  store float %2740, ptr %2744, align 4, !tbaa !11
  %2745 = load ptr, ptr %27, align 8, !tbaa !5
  %2746 = load i64, ptr %39, align 8, !tbaa !9
  %2747 = getelementptr inbounds %struct.complex, ptr %2745, i64 %2746
  %2748 = getelementptr inbounds %struct.complex, ptr %2747, i32 0, i32 1
  %2749 = load float, ptr %2748, align 4, !tbaa !15
  %2750 = load ptr, ptr %27, align 8, !tbaa !5
  %2751 = load i64, ptr %38, align 8, !tbaa !9
  %2752 = getelementptr inbounds %struct.complex, ptr %2750, i64 %2751
  %2753 = getelementptr inbounds %struct.complex, ptr %2752, i32 0, i32 1
  store float %2749, ptr %2753, align 4, !tbaa !15
  br label %2754

2754:                                             ; preds = %2712
  %2755 = load i64, ptr %56, align 8, !tbaa !9
  %2756 = add nsw i64 %2755, -1
  store i64 %2756, ptr %56, align 8, !tbaa !9
  br label %2708, !llvm.loop !39

2757:                                             ; preds = %2708
  br label %2758

2758:                                             ; preds = %2757, %2696
  br label %5189

2759:                                             ; preds = %315
  %2760 = load i64, ptr %80, align 8, !tbaa !9
  %2761 = icmp ne i64 %2760, 0
  br i1 %2761, label %2762, label %3545

2762:                                             ; preds = %2759
  %2763 = load i64, ptr %55, align 8, !tbaa !9
  %2764 = load i64, ptr %32, align 8, !tbaa !9
  %2765 = mul nsw i64 %2763, %2764
  %2766 = add nsw i64 %2765, 1
  store i64 %2766, ptr %37, align 8, !tbaa !9
  %2767 = load ptr, ptr %23, align 8, !tbaa !5
  %2768 = load i64, ptr %37, align 8, !tbaa !9
  %2769 = getelementptr inbounds %struct.complex, ptr %2767, i64 %2768
  %2770 = getelementptr inbounds %struct.complex, ptr %2769, i32 0, i32 0
  %2771 = load float, ptr %2770, align 4, !tbaa !11
  store float %2771, ptr %74, align 4, !tbaa !14
  %2772 = load i64, ptr %55, align 8, !tbaa !9
  %2773 = load i64, ptr %30, align 8, !tbaa !9
  %2774 = mul nsw i64 %2772, %2773
  %2775 = add nsw i64 %2774, 1
  store i64 %2775, ptr %37, align 8, !tbaa !9
  %2776 = load i64, ptr %55, align 8, !tbaa !9
  %2777 = load i64, ptr %30, align 8, !tbaa !9
  %2778 = mul nsw i64 %2776, %2777
  %2779 = add nsw i64 %2778, 1
  store i64 %2779, ptr %38, align 8, !tbaa !9
  %2780 = load ptr, ptr %21, align 8, !tbaa !5
  %2781 = load i64, ptr %38, align 8, !tbaa !9
  %2782 = getelementptr inbounds %struct.complex, ptr %2780, i64 %2781
  %2783 = getelementptr inbounds %struct.complex, ptr %2782, i32 0, i32 0
  %2784 = load float, ptr %2783, align 4, !tbaa !11
  %2785 = load float, ptr %74, align 4, !tbaa !14
  %2786 = fdiv float %2784, %2785
  %2787 = load float, ptr %74, align 4, !tbaa !14
  %2788 = fdiv float %2786, %2787
  store float %2788, ptr %44, align 4, !tbaa !14
  %2789 = load float, ptr %44, align 4, !tbaa !14
  %2790 = load ptr, ptr %21, align 8, !tbaa !5
  %2791 = load i64, ptr %37, align 8, !tbaa !9
  %2792 = getelementptr inbounds %struct.complex, ptr %2790, i64 %2791
  %2793 = getelementptr inbounds %struct.complex, ptr %2792, i32 0, i32 0
  store float %2789, ptr %2793, align 4, !tbaa !11
  %2794 = load ptr, ptr %21, align 8, !tbaa !5
  %2795 = load i64, ptr %37, align 8, !tbaa !9
  %2796 = getelementptr inbounds %struct.complex, ptr %2794, i64 %2795
  %2797 = getelementptr inbounds %struct.complex, ptr %2796, i32 0, i32 1
  store float 0.000000e+00, ptr %2797, align 4, !tbaa !15
  %2798 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %2798, ptr %37, align 8, !tbaa !9
  %2799 = load i64, ptr %55, align 8, !tbaa !9
  %2800 = add nsw i64 %2799, 1
  store i64 %2800, ptr %56, align 8, !tbaa !9
  br label %2801

2801:                                             ; preds = %2850, %2762
  %2802 = load i64, ptr %56, align 8, !tbaa !9
  %2803 = load i64, ptr %37, align 8, !tbaa !9
  %2804 = icmp sle i64 %2802, %2803
  br i1 %2804, label %2805, label %2853

2805:                                             ; preds = %2801
  %2806 = load i64, ptr %56, align 8, !tbaa !9
  %2807 = load i64, ptr %55, align 8, !tbaa !9
  %2808 = sub nsw i64 %2806, %2807
  %2809 = add nsw i64 %2808, 1
  %2810 = load i64, ptr %55, align 8, !tbaa !9
  %2811 = load i64, ptr %30, align 8, !tbaa !9
  %2812 = mul nsw i64 %2810, %2811
  %2813 = add nsw i64 %2809, %2812
  store i64 %2813, ptr %38, align 8, !tbaa !9
  %2814 = load i64, ptr %56, align 8, !tbaa !9
  %2815 = load i64, ptr %55, align 8, !tbaa !9
  %2816 = sub nsw i64 %2814, %2815
  %2817 = add nsw i64 %2816, 1
  %2818 = load i64, ptr %55, align 8, !tbaa !9
  %2819 = load i64, ptr %30, align 8, !tbaa !9
  %2820 = mul nsw i64 %2818, %2819
  %2821 = add nsw i64 %2817, %2820
  store i64 %2821, ptr %39, align 8, !tbaa !9
  %2822 = load ptr, ptr %21, align 8, !tbaa !5
  %2823 = load i64, ptr %39, align 8, !tbaa !9
  %2824 = getelementptr inbounds %struct.complex, ptr %2822, i64 %2823
  %2825 = getelementptr inbounds %struct.complex, ptr %2824, i32 0, i32 0
  %2826 = load float, ptr %2825, align 4, !tbaa !11
  %2827 = load float, ptr %74, align 4, !tbaa !14
  %2828 = fdiv float %2826, %2827
  %2829 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2828, ptr %2829, align 4, !tbaa !11
  %2830 = load ptr, ptr %21, align 8, !tbaa !5
  %2831 = load i64, ptr %39, align 8, !tbaa !9
  %2832 = getelementptr inbounds %struct.complex, ptr %2830, i64 %2831
  %2833 = getelementptr inbounds %struct.complex, ptr %2832, i32 0, i32 1
  %2834 = load float, ptr %2833, align 4, !tbaa !15
  %2835 = load float, ptr %74, align 4, !tbaa !14
  %2836 = fdiv float %2834, %2835
  %2837 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2836, ptr %2837, align 4, !tbaa !15
  %2838 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2839 = load float, ptr %2838, align 4, !tbaa !11
  %2840 = load ptr, ptr %21, align 8, !tbaa !5
  %2841 = load i64, ptr %38, align 8, !tbaa !9
  %2842 = getelementptr inbounds %struct.complex, ptr %2840, i64 %2841
  %2843 = getelementptr inbounds %struct.complex, ptr %2842, i32 0, i32 0
  store float %2839, ptr %2843, align 4, !tbaa !11
  %2844 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2845 = load float, ptr %2844, align 4, !tbaa !15
  %2846 = load ptr, ptr %21, align 8, !tbaa !5
  %2847 = load i64, ptr %38, align 8, !tbaa !9
  %2848 = getelementptr inbounds %struct.complex, ptr %2846, i64 %2847
  %2849 = getelementptr inbounds %struct.complex, ptr %2848, i32 0, i32 1
  store float %2845, ptr %2849, align 4, !tbaa !15
  br label %2850

2850:                                             ; preds = %2805
  %2851 = load i64, ptr %56, align 8, !tbaa !9
  %2852 = add nsw i64 %2851, 1
  store i64 %2852, ptr %56, align 8, !tbaa !9
  br label %2801, !llvm.loop !40

2853:                                             ; preds = %2801
  store i64 1, ptr %37, align 8, !tbaa !9
  %2854 = load i64, ptr %55, align 8, !tbaa !9
  %2855 = load ptr, ptr %19, align 8, !tbaa !5
  %2856 = load i64, ptr %2855, align 8, !tbaa !9
  %2857 = sub nsw i64 %2854, %2856
  store i64 %2857, ptr %38, align 8, !tbaa !9
  %2858 = load i64, ptr %55, align 8, !tbaa !9
  %2859 = sub nsw i64 %2858, 1
  store i64 %2859, ptr %39, align 8, !tbaa !9
  %2860 = load i64, ptr %37, align 8, !tbaa !9
  %2861 = load i64, ptr %38, align 8, !tbaa !9
  %2862 = icmp sge i64 %2860, %2861
  br i1 %2862, label %2863, label %2865

2863:                                             ; preds = %2853
  %2864 = load i64, ptr %37, align 8, !tbaa !9
  br label %2867

2865:                                             ; preds = %2853
  %2866 = load i64, ptr %38, align 8, !tbaa !9
  br label %2867

2867:                                             ; preds = %2865, %2863
  %2868 = phi i64 [ %2864, %2863 ], [ %2866, %2865 ]
  store i64 %2868, ptr %56, align 8, !tbaa !9
  br label %2869

2869:                                             ; preds = %2918, %2867
  %2870 = load i64, ptr %56, align 8, !tbaa !9
  %2871 = load i64, ptr %39, align 8, !tbaa !9
  %2872 = icmp sle i64 %2870, %2871
  br i1 %2872, label %2873, label %2921

2873:                                             ; preds = %2869
  %2874 = load i64, ptr %55, align 8, !tbaa !9
  %2875 = load i64, ptr %56, align 8, !tbaa !9
  %2876 = sub nsw i64 %2874, %2875
  %2877 = add nsw i64 %2876, 1
  %2878 = load i64, ptr %56, align 8, !tbaa !9
  %2879 = load i64, ptr %30, align 8, !tbaa !9
  %2880 = mul nsw i64 %2878, %2879
  %2881 = add nsw i64 %2877, %2880
  store i64 %2881, ptr %37, align 8, !tbaa !9
  %2882 = load i64, ptr %55, align 8, !tbaa !9
  %2883 = load i64, ptr %56, align 8, !tbaa !9
  %2884 = sub nsw i64 %2882, %2883
  %2885 = add nsw i64 %2884, 1
  %2886 = load i64, ptr %56, align 8, !tbaa !9
  %2887 = load i64, ptr %30, align 8, !tbaa !9
  %2888 = mul nsw i64 %2886, %2887
  %2889 = add nsw i64 %2885, %2888
  store i64 %2889, ptr %38, align 8, !tbaa !9
  %2890 = load ptr, ptr %21, align 8, !tbaa !5
  %2891 = load i64, ptr %38, align 8, !tbaa !9
  %2892 = getelementptr inbounds %struct.complex, ptr %2890, i64 %2891
  %2893 = getelementptr inbounds %struct.complex, ptr %2892, i32 0, i32 0
  %2894 = load float, ptr %2893, align 4, !tbaa !11
  %2895 = load float, ptr %74, align 4, !tbaa !14
  %2896 = fdiv float %2894, %2895
  %2897 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2896, ptr %2897, align 4, !tbaa !11
  %2898 = load ptr, ptr %21, align 8, !tbaa !5
  %2899 = load i64, ptr %38, align 8, !tbaa !9
  %2900 = getelementptr inbounds %struct.complex, ptr %2898, i64 %2899
  %2901 = getelementptr inbounds %struct.complex, ptr %2900, i32 0, i32 1
  %2902 = load float, ptr %2901, align 4, !tbaa !15
  %2903 = load float, ptr %74, align 4, !tbaa !14
  %2904 = fdiv float %2902, %2903
  %2905 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2904, ptr %2905, align 4, !tbaa !15
  %2906 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2907 = load float, ptr %2906, align 4, !tbaa !11
  %2908 = load ptr, ptr %21, align 8, !tbaa !5
  %2909 = load i64, ptr %37, align 8, !tbaa !9
  %2910 = getelementptr inbounds %struct.complex, ptr %2908, i64 %2909
  %2911 = getelementptr inbounds %struct.complex, ptr %2910, i32 0, i32 0
  store float %2907, ptr %2911, align 4, !tbaa !11
  %2912 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2913 = load float, ptr %2912, align 4, !tbaa !15
  %2914 = load ptr, ptr %21, align 8, !tbaa !5
  %2915 = load i64, ptr %37, align 8, !tbaa !9
  %2916 = getelementptr inbounds %struct.complex, ptr %2914, i64 %2915
  %2917 = getelementptr inbounds %struct.complex, ptr %2916, i32 0, i32 1
  store float %2913, ptr %2917, align 4, !tbaa !15
  br label %2918

2918:                                             ; preds = %2873
  %2919 = load i64, ptr %56, align 8, !tbaa !9
  %2920 = add nsw i64 %2919, 1
  store i64 %2920, ptr %56, align 8, !tbaa !9
  br label %2869, !llvm.loop !41

2921:                                             ; preds = %2869
  %2922 = load i64, ptr %55, align 8, !tbaa !9
  %2923 = sub nsw i64 %2922, 1
  store i64 %2923, ptr %39, align 8, !tbaa !9
  %2924 = load i64, ptr %55, align 8, !tbaa !9
  %2925 = load i64, ptr %75, align 8, !tbaa !9
  %2926 = sub nsw i64 %2924, %2925
  store i64 %2926, ptr %57, align 8, !tbaa !9
  br label %2927

2927:                                             ; preds = %3312, %2921
  %2928 = load i64, ptr %57, align 8, !tbaa !9
  %2929 = load i64, ptr %39, align 8, !tbaa !9
  %2930 = icmp sle i64 %2928, %2929
  br i1 %2930, label %2931, label %3315

2931:                                             ; preds = %2927
  %2932 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %2932, ptr %37, align 8, !tbaa !9
  %2933 = load i64, ptr %55, align 8, !tbaa !9
  %2934 = load i64, ptr %75, align 8, !tbaa !9
  %2935 = sub nsw i64 %2933, %2934
  store i64 %2935, ptr %56, align 8, !tbaa !9
  br label %2936

2936:                                             ; preds = %3183, %2931
  %2937 = load i64, ptr %56, align 8, !tbaa !9
  %2938 = load i64, ptr %37, align 8, !tbaa !9
  %2939 = icmp sle i64 %2937, %2938
  br i1 %2939, label %2940, label %3186

2940:                                             ; preds = %2936
  %2941 = load i64, ptr %57, align 8, !tbaa !9
  %2942 = load i64, ptr %56, align 8, !tbaa !9
  %2943 = sub nsw i64 %2941, %2942
  %2944 = add nsw i64 %2943, 1
  %2945 = load i64, ptr %56, align 8, !tbaa !9
  %2946 = load i64, ptr %30, align 8, !tbaa !9
  %2947 = mul nsw i64 %2945, %2946
  %2948 = add nsw i64 %2944, %2947
  store i64 %2948, ptr %38, align 8, !tbaa !9
  %2949 = load i64, ptr %57, align 8, !tbaa !9
  %2950 = load i64, ptr %56, align 8, !tbaa !9
  %2951 = sub nsw i64 %2949, %2950
  %2952 = add nsw i64 %2951, 1
  %2953 = load i64, ptr %56, align 8, !tbaa !9
  %2954 = load i64, ptr %30, align 8, !tbaa !9
  %2955 = mul nsw i64 %2953, %2954
  %2956 = add nsw i64 %2952, %2955
  store i64 %2956, ptr %36, align 8, !tbaa !9
  %2957 = load i64, ptr %55, align 8, !tbaa !9
  %2958 = load i64, ptr %56, align 8, !tbaa !9
  %2959 = sub nsw i64 %2957, %2958
  %2960 = add nsw i64 %2959, 1
  %2961 = load i64, ptr %56, align 8, !tbaa !9
  %2962 = load i64, ptr %32, align 8, !tbaa !9
  %2963 = mul nsw i64 %2961, %2962
  %2964 = add nsw i64 %2960, %2963
  store i64 %2964, ptr %40, align 8, !tbaa !9
  %2965 = load ptr, ptr %21, align 8, !tbaa !5
  %2966 = load i64, ptr %55, align 8, !tbaa !9
  %2967 = load i64, ptr %57, align 8, !tbaa !9
  %2968 = sub nsw i64 %2966, %2967
  %2969 = add nsw i64 %2968, 1
  %2970 = load i64, ptr %57, align 8, !tbaa !9
  %2971 = load i64, ptr %30, align 8, !tbaa !9
  %2972 = mul nsw i64 %2970, %2971
  %2973 = add nsw i64 %2969, %2972
  %2974 = getelementptr inbounds %struct.complex, ptr %2965, i64 %2973
  call void @r_cnjg(ptr noundef %49, ptr noundef %2974)
  %2975 = load ptr, ptr %23, align 8, !tbaa !5
  %2976 = load i64, ptr %40, align 8, !tbaa !9
  %2977 = getelementptr inbounds %struct.complex, ptr %2975, i64 %2976
  %2978 = getelementptr inbounds %struct.complex, ptr %2977, i32 0, i32 0
  %2979 = load float, ptr %2978, align 4, !tbaa !11
  %2980 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2981 = load float, ptr %2980, align 4, !tbaa !11
  %2982 = load ptr, ptr %23, align 8, !tbaa !5
  %2983 = load i64, ptr %40, align 8, !tbaa !9
  %2984 = getelementptr inbounds %struct.complex, ptr %2982, i64 %2983
  %2985 = getelementptr inbounds %struct.complex, ptr %2984, i32 0, i32 1
  %2986 = load float, ptr %2985, align 4, !tbaa !15
  %2987 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2988 = load float, ptr %2987, align 4, !tbaa !15
  %2989 = fmul float %2986, %2988
  %2990 = fneg float %2989
  %2991 = call float @llvm.fmuladd.f32(float %2979, float %2981, float %2990)
  %2992 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %2991, ptr %2992, align 4, !tbaa !11
  %2993 = load ptr, ptr %23, align 8, !tbaa !5
  %2994 = load i64, ptr %40, align 8, !tbaa !9
  %2995 = getelementptr inbounds %struct.complex, ptr %2993, i64 %2994
  %2996 = getelementptr inbounds %struct.complex, ptr %2995, i32 0, i32 0
  %2997 = load float, ptr %2996, align 4, !tbaa !11
  %2998 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2999 = load float, ptr %2998, align 4, !tbaa !15
  %3000 = load ptr, ptr %23, align 8, !tbaa !5
  %3001 = load i64, ptr %40, align 8, !tbaa !9
  %3002 = getelementptr inbounds %struct.complex, ptr %3000, i64 %3001
  %3003 = getelementptr inbounds %struct.complex, ptr %3002, i32 0, i32 1
  %3004 = load float, ptr %3003, align 4, !tbaa !15
  %3005 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %3006 = load float, ptr %3005, align 4, !tbaa !11
  %3007 = fmul float %3004, %3006
  %3008 = call float @llvm.fmuladd.f32(float %2997, float %2999, float %3007)
  %3009 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %3008, ptr %3009, align 4, !tbaa !15
  %3010 = load ptr, ptr %21, align 8, !tbaa !5
  %3011 = load i64, ptr %36, align 8, !tbaa !9
  %3012 = getelementptr inbounds %struct.complex, ptr %3010, i64 %3011
  %3013 = getelementptr inbounds %struct.complex, ptr %3012, i32 0, i32 0
  %3014 = load float, ptr %3013, align 4, !tbaa !11
  %3015 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %3016 = load float, ptr %3015, align 4, !tbaa !11
  %3017 = fsub float %3014, %3016
  %3018 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %3017, ptr %3018, align 4, !tbaa !11
  %3019 = load ptr, ptr %21, align 8, !tbaa !5
  %3020 = load i64, ptr %36, align 8, !tbaa !9
  %3021 = getelementptr inbounds %struct.complex, ptr %3019, i64 %3020
  %3022 = getelementptr inbounds %struct.complex, ptr %3021, i32 0, i32 1
  %3023 = load float, ptr %3022, align 4, !tbaa !15
  %3024 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %3025 = load float, ptr %3024, align 4, !tbaa !15
  %3026 = fsub float %3023, %3025
  %3027 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %3026, ptr %3027, align 4, !tbaa !15
  %3028 = load ptr, ptr %23, align 8, !tbaa !5
  %3029 = load i64, ptr %55, align 8, !tbaa !9
  %3030 = load i64, ptr %57, align 8, !tbaa !9
  %3031 = sub nsw i64 %3029, %3030
  %3032 = add nsw i64 %3031, 1
  %3033 = load i64, ptr %57, align 8, !tbaa !9
  %3034 = load i64, ptr %32, align 8, !tbaa !9
  %3035 = mul nsw i64 %3033, %3034
  %3036 = add nsw i64 %3032, %3035
  %3037 = getelementptr inbounds %struct.complex, ptr %3028, i64 %3036
  call void @r_cnjg(ptr noundef %51, ptr noundef %3037)
  %3038 = load i64, ptr %55, align 8, !tbaa !9
  %3039 = load i64, ptr %56, align 8, !tbaa !9
  %3040 = sub nsw i64 %3038, %3039
  %3041 = add nsw i64 %3040, 1
  %3042 = load i64, ptr %56, align 8, !tbaa !9
  %3043 = load i64, ptr %30, align 8, !tbaa !9
  %3044 = mul nsw i64 %3042, %3043
  %3045 = add nsw i64 %3041, %3044
  store i64 %3045, ptr %41, align 8, !tbaa !9
  %3046 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %3047 = load float, ptr %3046, align 4, !tbaa !11
  %3048 = load ptr, ptr %21, align 8, !tbaa !5
  %3049 = load i64, ptr %41, align 8, !tbaa !9
  %3050 = getelementptr inbounds %struct.complex, ptr %3048, i64 %3049
  %3051 = getelementptr inbounds %struct.complex, ptr %3050, i32 0, i32 0
  %3052 = load float, ptr %3051, align 4, !tbaa !11
  %3053 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %3054 = load float, ptr %3053, align 4, !tbaa !15
  %3055 = load ptr, ptr %21, align 8, !tbaa !5
  %3056 = load i64, ptr %41, align 8, !tbaa !9
  %3057 = getelementptr inbounds %struct.complex, ptr %3055, i64 %3056
  %3058 = getelementptr inbounds %struct.complex, ptr %3057, i32 0, i32 1
  %3059 = load float, ptr %3058, align 4, !tbaa !15
  %3060 = fmul float %3054, %3059
  %3061 = fneg float %3060
  %3062 = call float @llvm.fmuladd.f32(float %3047, float %3052, float %3061)
  %3063 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %3062, ptr %3063, align 4, !tbaa !11
  %3064 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %3065 = load float, ptr %3064, align 4, !tbaa !11
  %3066 = load ptr, ptr %21, align 8, !tbaa !5
  %3067 = load i64, ptr %41, 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 !15
  %3071 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %3072 = load float, ptr %3071, align 4, !tbaa !15
  %3073 = load ptr, ptr %21, align 8, !tbaa !5
  %3074 = load i64, ptr %41, align 8, !tbaa !9
  %3075 = getelementptr inbounds %struct.complex, ptr %3073, i64 %3074
  %3076 = getelementptr inbounds %struct.complex, ptr %3075, i32 0, i32 0
  %3077 = load float, ptr %3076, align 4, !tbaa !11
  %3078 = fmul float %3072, %3077
  %3079 = call float @llvm.fmuladd.f32(float %3065, float %3070, float %3078)
  %3080 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %3079, ptr %3080, align 4, !tbaa !15
  %3081 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %3082 = load float, ptr %3081, align 4, !tbaa !11
  %3083 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %3084 = load float, ptr %3083, align 4, !tbaa !11
  %3085 = fsub float %3082, %3084
  %3086 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3085, ptr %3086, align 4, !tbaa !11
  %3087 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %3088 = load float, ptr %3087, align 4, !tbaa !15
  %3089 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %3090 = load float, ptr %3089, align 4, !tbaa !15
  %3091 = fsub float %3088, %3090
  %3092 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3091, ptr %3092, align 4, !tbaa !15
  %3093 = load i64, ptr %55, align 8, !tbaa !9
  %3094 = load i64, ptr %30, align 8, !tbaa !9
  %3095 = mul nsw i64 %3093, %3094
  %3096 = add nsw i64 %3095, 1
  store i64 %3096, ptr %42, align 8, !tbaa !9
  %3097 = load ptr, ptr %21, align 8, !tbaa !5
  %3098 = load i64, ptr %42, align 8, !tbaa !9
  %3099 = getelementptr inbounds %struct.complex, ptr %3097, i64 %3098
  %3100 = getelementptr inbounds %struct.complex, ptr %3099, i32 0, i32 0
  %3101 = load float, ptr %3100, align 4, !tbaa !11
  store float %3101, ptr %44, align 4, !tbaa !14
  %3102 = load i64, ptr %55, align 8, !tbaa !9
  %3103 = load i64, ptr %56, align 8, !tbaa !9
  %3104 = sub nsw i64 %3102, %3103
  %3105 = add nsw i64 %3104, 1
  %3106 = load i64, ptr %56, align 8, !tbaa !9
  %3107 = load i64, ptr %32, align 8, !tbaa !9
  %3108 = mul nsw i64 %3106, %3107
  %3109 = add nsw i64 %3105, %3108
  store i64 %3109, ptr %43, align 8, !tbaa !9
  %3110 = load float, ptr %44, align 4, !tbaa !14
  %3111 = load ptr, ptr %23, align 8, !tbaa !5
  %3112 = load i64, ptr %43, align 8, !tbaa !9
  %3113 = getelementptr inbounds %struct.complex, ptr %3111, i64 %3112
  %3114 = getelementptr inbounds %struct.complex, ptr %3113, i32 0, i32 0
  %3115 = load float, ptr %3114, align 4, !tbaa !11
  %3116 = fmul float %3110, %3115
  %3117 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  store float %3116, ptr %3117, align 4, !tbaa !11
  %3118 = load float, ptr %44, align 4, !tbaa !14
  %3119 = load ptr, ptr %23, align 8, !tbaa !5
  %3120 = load i64, ptr %43, align 8, !tbaa !9
  %3121 = getelementptr inbounds %struct.complex, ptr %3119, i64 %3120
  %3122 = getelementptr inbounds %struct.complex, ptr %3121, i32 0, i32 1
  %3123 = load float, ptr %3122, align 4, !tbaa !15
  %3124 = fmul float %3118, %3123
  %3125 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  store float %3124, ptr %3125, align 4, !tbaa !15
  %3126 = load ptr, ptr %23, align 8, !tbaa !5
  %3127 = load i64, ptr %55, align 8, !tbaa !9
  %3128 = load i64, ptr %57, align 8, !tbaa !9
  %3129 = sub nsw i64 %3127, %3128
  %3130 = add nsw i64 %3129, 1
  %3131 = load i64, ptr %57, align 8, !tbaa !9
  %3132 = load i64, ptr %32, align 8, !tbaa !9
  %3133 = mul nsw i64 %3131, %3132
  %3134 = add nsw i64 %3130, %3133
  %3135 = getelementptr inbounds %struct.complex, ptr %3126, i64 %3134
  call void @r_cnjg(ptr noundef %54, ptr noundef %3135)
  %3136 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %3137 = load float, ptr %3136, align 4, !tbaa !11
  %3138 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %3139 = load float, ptr %3138, align 4, !tbaa !11
  %3140 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %3141 = load float, ptr %3140, align 4, !tbaa !15
  %3142 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %3143 = load float, ptr %3142, align 4, !tbaa !15
  %3144 = fmul float %3141, %3143
  %3145 = fneg float %3144
  %3146 = call float @llvm.fmuladd.f32(float %3137, float %3139, float %3145)
  %3147 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %3146, ptr %3147, align 4, !tbaa !11
  %3148 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %3149 = load float, ptr %3148, align 4, !tbaa !11
  %3150 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %3151 = load float, ptr %3150, align 4, !tbaa !15
  %3152 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %3153 = load float, ptr %3152, align 4, !tbaa !15
  %3154 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %3155 = load float, ptr %3154, align 4, !tbaa !11
  %3156 = fmul float %3153, %3155
  %3157 = call float @llvm.fmuladd.f32(float %3149, float %3151, float %3156)
  %3158 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %3157, ptr %3158, align 4, !tbaa !15
  %3159 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3160 = load float, ptr %3159, align 4, !tbaa !11
  %3161 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %3162 = load float, ptr %3161, align 4, !tbaa !11
  %3163 = fadd float %3160, %3162
  %3164 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3163, ptr %3164, align 4, !tbaa !11
  %3165 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3166 = load float, ptr %3165, align 4, !tbaa !15
  %3167 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %3168 = load float, ptr %3167, align 4, !tbaa !15
  %3169 = fadd float %3166, %3168
  %3170 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3169, ptr %3170, align 4, !tbaa !15
  %3171 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3172 = load float, ptr %3171, align 4, !tbaa !11
  %3173 = load ptr, ptr %21, align 8, !tbaa !5
  %3174 = load i64, ptr %38, align 8, !tbaa !9
  %3175 = getelementptr inbounds %struct.complex, ptr %3173, i64 %3174
  %3176 = getelementptr inbounds %struct.complex, ptr %3175, i32 0, i32 0
  store float %3172, ptr %3176, align 4, !tbaa !11
  %3177 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3178 = load float, ptr %3177, align 4, !tbaa !15
  %3179 = load ptr, ptr %21, align 8, !tbaa !5
  %3180 = load i64, ptr %38, align 8, !tbaa !9
  %3181 = getelementptr inbounds %struct.complex, ptr %3179, i64 %3180
  %3182 = getelementptr inbounds %struct.complex, ptr %3181, i32 0, i32 1
  store float %3178, ptr %3182, align 4, !tbaa !15
  br label %3183

3183:                                             ; preds = %2940
  %3184 = load i64, ptr %56, align 8, !tbaa !9
  %3185 = add nsw i64 %3184, 1
  store i64 %3185, ptr %56, align 8, !tbaa !9
  br label %2936, !llvm.loop !42

3186:                                             ; preds = %2936
  store i64 1, ptr %37, align 8, !tbaa !9
  %3187 = load i64, ptr %55, align 8, !tbaa !9
  %3188 = load ptr, ptr %19, align 8, !tbaa !5
  %3189 = load i64, ptr %3188, align 8, !tbaa !9
  %3190 = sub nsw i64 %3187, %3189
  store i64 %3190, ptr %38, align 8, !tbaa !9
  %3191 = load i64, ptr %55, align 8, !tbaa !9
  %3192 = load i64, ptr %75, align 8, !tbaa !9
  %3193 = sub nsw i64 %3191, %3192
  %3194 = sub nsw i64 %3193, 1
  store i64 %3194, ptr %36, align 8, !tbaa !9
  %3195 = load i64, ptr %37, align 8, !tbaa !9
  %3196 = load i64, ptr %38, align 8, !tbaa !9
  %3197 = icmp sge i64 %3195, %3196
  br i1 %3197, label %3198, label %3200

3198:                                             ; preds = %3186
  %3199 = load i64, ptr %37, align 8, !tbaa !9
  br label %3202

3200:                                             ; preds = %3186
  %3201 = load i64, ptr %38, align 8, !tbaa !9
  br label %3202

3202:                                             ; preds = %3200, %3198
  %3203 = phi i64 [ %3199, %3198 ], [ %3201, %3200 ]
  store i64 %3203, ptr %56, align 8, !tbaa !9
  br label %3204

3204:                                             ; preds = %3308, %3202
  %3205 = load i64, ptr %56, align 8, !tbaa !9
  %3206 = load i64, ptr %36, align 8, !tbaa !9
  %3207 = icmp sle i64 %3205, %3206
  br i1 %3207, label %3208, label %3311

3208:                                             ; preds = %3204
  %3209 = load i64, ptr %57, align 8, !tbaa !9
  %3210 = load i64, ptr %56, align 8, !tbaa !9
  %3211 = sub nsw i64 %3209, %3210
  %3212 = add nsw i64 %3211, 1
  %3213 = load i64, ptr %56, align 8, !tbaa !9
  %3214 = load i64, ptr %30, align 8, !tbaa !9
  %3215 = mul nsw i64 %3213, %3214
  %3216 = add nsw i64 %3212, %3215
  store i64 %3216, ptr %37, align 8, !tbaa !9
  %3217 = load i64, ptr %57, align 8, !tbaa !9
  %3218 = load i64, ptr %56, align 8, !tbaa !9
  %3219 = sub nsw i64 %3217, %3218
  %3220 = add nsw i64 %3219, 1
  %3221 = load i64, ptr %56, align 8, !tbaa !9
  %3222 = load i64, ptr %30, align 8, !tbaa !9
  %3223 = mul nsw i64 %3221, %3222
  %3224 = add nsw i64 %3220, %3223
  store i64 %3224, ptr %38, align 8, !tbaa !9
  %3225 = load ptr, ptr %23, align 8, !tbaa !5
  %3226 = load i64, ptr %55, align 8, !tbaa !9
  %3227 = load i64, ptr %57, align 8, !tbaa !9
  %3228 = sub nsw i64 %3226, %3227
  %3229 = add nsw i64 %3228, 1
  %3230 = load i64, ptr %57, align 8, !tbaa !9
  %3231 = load i64, ptr %32, align 8, !tbaa !9
  %3232 = mul nsw i64 %3230, %3231
  %3233 = add nsw i64 %3229, %3232
  %3234 = getelementptr inbounds %struct.complex, ptr %3225, i64 %3233
  call void @r_cnjg(ptr noundef %47, ptr noundef %3234)
  %3235 = load i64, ptr %55, align 8, !tbaa !9
  %3236 = load i64, ptr %56, align 8, !tbaa !9
  %3237 = sub nsw i64 %3235, %3236
  %3238 = add nsw i64 %3237, 1
  %3239 = load i64, ptr %56, align 8, !tbaa !9
  %3240 = load i64, ptr %30, align 8, !tbaa !9
  %3241 = mul nsw i64 %3239, %3240
  %3242 = add nsw i64 %3238, %3241
  store i64 %3242, ptr %40, align 8, !tbaa !9
  %3243 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %3244 = load float, ptr %3243, align 4, !tbaa !11
  %3245 = load ptr, ptr %21, align 8, !tbaa !5
  %3246 = load i64, ptr %40, align 8, !tbaa !9
  %3247 = getelementptr inbounds %struct.complex, ptr %3245, i64 %3246
  %3248 = getelementptr inbounds %struct.complex, ptr %3247, i32 0, i32 0
  %3249 = load float, ptr %3248, align 4, !tbaa !11
  %3250 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %3251 = load float, ptr %3250, align 4, !tbaa !15
  %3252 = load ptr, ptr %21, align 8, !tbaa !5
  %3253 = load i64, ptr %40, align 8, !tbaa !9
  %3254 = getelementptr inbounds %struct.complex, ptr %3252, i64 %3253
  %3255 = getelementptr inbounds %struct.complex, ptr %3254, i32 0, i32 1
  %3256 = load float, ptr %3255, align 4, !tbaa !15
  %3257 = fmul float %3251, %3256
  %3258 = fneg float %3257
  %3259 = call float @llvm.fmuladd.f32(float %3244, float %3249, float %3258)
  %3260 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3259, ptr %3260, align 4, !tbaa !11
  %3261 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %3262 = load float, ptr %3261, align 4, !tbaa !11
  %3263 = load ptr, ptr %21, align 8, !tbaa !5
  %3264 = load i64, ptr %40, 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 !15
  %3268 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %3269 = load float, ptr %3268, align 4, !tbaa !15
  %3270 = load ptr, ptr %21, align 8, !tbaa !5
  %3271 = load i64, ptr %40, align 8, !tbaa !9
  %3272 = getelementptr inbounds %struct.complex, ptr %3270, i64 %3271
  %3273 = getelementptr inbounds %struct.complex, ptr %3272, i32 0, i32 0
  %3274 = load float, ptr %3273, align 4, !tbaa !11
  %3275 = fmul float %3269, %3274
  %3276 = call float @llvm.fmuladd.f32(float %3262, float %3267, float %3275)
  %3277 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3276, ptr %3277, align 4, !tbaa !15
  %3278 = load ptr, ptr %21, align 8, !tbaa !5
  %3279 = load i64, ptr %38, align 8, !tbaa !9
  %3280 = getelementptr inbounds %struct.complex, ptr %3278, i64 %3279
  %3281 = getelementptr inbounds %struct.complex, ptr %3280, i32 0, i32 0
  %3282 = load float, ptr %3281, align 4, !tbaa !11
  %3283 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3284 = load float, ptr %3283, align 4, !tbaa !11
  %3285 = fsub float %3282, %3284
  %3286 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3285, ptr %3286, align 4, !tbaa !11
  %3287 = load ptr, ptr %21, align 8, !tbaa !5
  %3288 = load i64, ptr %38, align 8, !tbaa !9
  %3289 = getelementptr inbounds %struct.complex, ptr %3287, i64 %3288
  %3290 = getelementptr inbounds %struct.complex, ptr %3289, i32 0, i32 1
  %3291 = load float, ptr %3290, align 4, !tbaa !15
  %3292 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3293 = load float, ptr %3292, align 4, !tbaa !15
  %3294 = fsub float %3291, %3293
  %3295 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3294, ptr %3295, align 4, !tbaa !15
  %3296 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3297 = load float, ptr %3296, align 4, !tbaa !11
  %3298 = load ptr, ptr %21, align 8, !tbaa !5
  %3299 = load i64, ptr %37, align 8, !tbaa !9
  %3300 = getelementptr inbounds %struct.complex, ptr %3298, i64 %3299
  %3301 = getelementptr inbounds %struct.complex, ptr %3300, i32 0, i32 0
  store float %3297, ptr %3301, align 4, !tbaa !11
  %3302 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3303 = load float, ptr %3302, align 4, !tbaa !15
  %3304 = load ptr, ptr %21, align 8, !tbaa !5
  %3305 = load i64, ptr %37, align 8, !tbaa !9
  %3306 = getelementptr inbounds %struct.complex, ptr %3304, i64 %3305
  %3307 = getelementptr inbounds %struct.complex, ptr %3306, i32 0, i32 1
  store float %3303, ptr %3307, align 4, !tbaa !15
  br label %3308

3308:                                             ; preds = %3208
  %3309 = load i64, ptr %56, align 8, !tbaa !9
  %3310 = add nsw i64 %3309, 1
  store i64 %3310, ptr %56, align 8, !tbaa !9
  br label %3204, !llvm.loop !43

3311:                                             ; preds = %3204
  br label %3312

3312:                                             ; preds = %3311
  %3313 = load i64, ptr %57, align 8, !tbaa !9
  %3314 = add nsw i64 %3313, 1
  store i64 %3314, ptr %57, align 8, !tbaa !9
  br label %2927, !llvm.loop !44

3315:                                             ; preds = %2927
  %3316 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %3316, ptr %39, align 8, !tbaa !9
  %3317 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %3317, ptr %56, align 8, !tbaa !9
  br label %3318

3318:                                             ; preds = %3459, %3315
  %3319 = load i64, ptr %56, align 8, !tbaa !9
  %3320 = load i64, ptr %39, align 8, !tbaa !9
  %3321 = icmp sle i64 %3319, %3320
  br i1 %3321, label %3322, label %3462

3322:                                             ; preds = %3318
  %3323 = load i64, ptr %56, align 8, !tbaa !9
  %3324 = load ptr, ptr %19, align 8, !tbaa !5
  %3325 = load i64, ptr %3324, align 8, !tbaa !9
  %3326 = sub nsw i64 %3323, %3325
  store i64 %3326, ptr %36, align 8, !tbaa !9
  %3327 = load i64, ptr %55, align 8, !tbaa !9
  %3328 = load i64, ptr %75, align 8, !tbaa !9
  %3329 = sub nsw i64 %3327, %3328
  store i64 %3329, ptr %37, align 8, !tbaa !9
  %3330 = load i64, ptr %55, align 8, !tbaa !9
  %3331 = sub nsw i64 %3330, 1
  store i64 %3331, ptr %38, align 8, !tbaa !9
  %3332 = load i64, ptr %36, align 8, !tbaa !9
  %3333 = load i64, ptr %37, align 8, !tbaa !9
  %3334 = icmp sge i64 %3332, %3333
  br i1 %3334, label %3335, label %3337

3335:                                             ; preds = %3322
  %3336 = load i64, ptr %36, align 8, !tbaa !9
  br label %3339

3337:                                             ; preds = %3322
  %3338 = load i64, ptr %37, align 8, !tbaa !9
  br label %3339

3339:                                             ; preds = %3337, %3335
  %3340 = phi i64 [ %3336, %3335 ], [ %3338, %3337 ]
  store i64 %3340, ptr %57, align 8, !tbaa !9
  br label %3341

3341:                                             ; preds = %3455, %3339
  %3342 = load i64, ptr %57, align 8, !tbaa !9
  %3343 = load i64, ptr %38, align 8, !tbaa !9
  %3344 = icmp sle i64 %3342, %3343
  br i1 %3344, label %3345, label %3458

3345:                                             ; preds = %3341
  %3346 = load i64, ptr %56, align 8, !tbaa !9
  %3347 = load i64, ptr %57, align 8, !tbaa !9
  %3348 = sub nsw i64 %3346, %3347
  %3349 = add nsw i64 %3348, 1
  %3350 = load i64, ptr %57, align 8, !tbaa !9
  %3351 = load i64, ptr %30, align 8, !tbaa !9
  %3352 = mul nsw i64 %3350, %3351
  %3353 = add nsw i64 %3349, %3352
  store i64 %3353, ptr %36, align 8, !tbaa !9
  %3354 = load i64, ptr %56, align 8, !tbaa !9
  %3355 = load i64, ptr %57, align 8, !tbaa !9
  %3356 = sub nsw i64 %3354, %3355
  %3357 = add nsw i64 %3356, 1
  %3358 = load i64, ptr %57, align 8, !tbaa !9
  %3359 = load i64, ptr %30, align 8, !tbaa !9
  %3360 = mul nsw i64 %3358, %3359
  %3361 = add nsw i64 %3357, %3360
  store i64 %3361, ptr %37, align 8, !tbaa !9
  %3362 = load i64, ptr %55, align 8, !tbaa !9
  %3363 = load i64, ptr %57, align 8, !tbaa !9
  %3364 = sub nsw i64 %3362, %3363
  %3365 = add nsw i64 %3364, 1
  %3366 = load i64, ptr %57, align 8, !tbaa !9
  %3367 = load i64, ptr %32, align 8, !tbaa !9
  %3368 = mul nsw i64 %3366, %3367
  %3369 = add nsw i64 %3365, %3368
  store i64 %3369, ptr %40, align 8, !tbaa !9
  %3370 = load i64, ptr %56, align 8, !tbaa !9
  %3371 = load i64, ptr %55, align 8, !tbaa !9
  %3372 = sub nsw i64 %3370, %3371
  %3373 = add nsw i64 %3372, 1
  %3374 = load i64, ptr %55, align 8, !tbaa !9
  %3375 = load i64, ptr %30, align 8, !tbaa !9
  %3376 = mul nsw i64 %3374, %3375
  %3377 = add nsw i64 %3373, %3376
  store i64 %3377, ptr %41, align 8, !tbaa !9
  %3378 = load ptr, ptr %23, align 8, !tbaa !5
  %3379 = load i64, ptr %40, align 8, !tbaa !9
  %3380 = getelementptr inbounds %struct.complex, ptr %3378, i64 %3379
  %3381 = getelementptr inbounds %struct.complex, ptr %3380, i32 0, i32 0
  %3382 = load float, ptr %3381, align 4, !tbaa !11
  %3383 = load ptr, ptr %21, align 8, !tbaa !5
  %3384 = load i64, ptr %41, align 8, !tbaa !9
  %3385 = getelementptr inbounds %struct.complex, ptr %3383, i64 %3384
  %3386 = getelementptr inbounds %struct.complex, ptr %3385, i32 0, i32 0
  %3387 = load float, ptr %3386, align 4, !tbaa !11
  %3388 = load ptr, ptr %23, align 8, !tbaa !5
  %3389 = load i64, ptr %40, align 8, !tbaa !9
  %3390 = getelementptr inbounds %struct.complex, ptr %3388, i64 %3389
  %3391 = getelementptr inbounds %struct.complex, ptr %3390, i32 0, i32 1
  %3392 = load float, ptr %3391, align 4, !tbaa !15
  %3393 = load ptr, ptr %21, align 8, !tbaa !5
  %3394 = load i64, ptr %41, align 8, !tbaa !9
  %3395 = getelementptr inbounds %struct.complex, ptr %3393, i64 %3394
  %3396 = getelementptr inbounds %struct.complex, ptr %3395, i32 0, i32 1
  %3397 = load float, ptr %3396, align 4, !tbaa !15
  %3398 = fmul float %3392, %3397
  %3399 = fneg float %3398
  %3400 = call float @llvm.fmuladd.f32(float %3382, float %3387, float %3399)
  %3401 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3400, ptr %3401, align 4, !tbaa !11
  %3402 = load ptr, ptr %23, align 8, !tbaa !5
  %3403 = load i64, ptr %40, align 8, !tbaa !9
  %3404 = getelementptr inbounds %struct.complex, ptr %3402, i64 %3403
  %3405 = getelementptr inbounds %struct.complex, ptr %3404, i32 0, i32 0
  %3406 = load float, ptr %3405, align 4, !tbaa !11
  %3407 = load ptr, ptr %21, align 8, !tbaa !5
  %3408 = load i64, ptr %41, align 8, !tbaa !9
  %3409 = getelementptr inbounds %struct.complex, ptr %3407, i64 %3408
  %3410 = getelementptr inbounds %struct.complex, ptr %3409, i32 0, i32 1
  %3411 = load float, ptr %3410, align 4, !tbaa !15
  %3412 = load ptr, ptr %23, align 8, !tbaa !5
  %3413 = load i64, ptr %40, align 8, !tbaa !9
  %3414 = getelementptr inbounds %struct.complex, ptr %3412, i64 %3413
  %3415 = getelementptr inbounds %struct.complex, ptr %3414, i32 0, i32 1
  %3416 = load float, ptr %3415, align 4, !tbaa !15
  %3417 = load ptr, ptr %21, align 8, !tbaa !5
  %3418 = load i64, ptr %41, align 8, !tbaa !9
  %3419 = getelementptr inbounds %struct.complex, ptr %3417, i64 %3418
  %3420 = getelementptr inbounds %struct.complex, ptr %3419, i32 0, i32 0
  %3421 = load float, ptr %3420, align 4, !tbaa !11
  %3422 = fmul float %3416, %3421
  %3423 = call float @llvm.fmuladd.f32(float %3406, float %3411, float %3422)
  %3424 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3423, ptr %3424, align 4, !tbaa !15
  %3425 = load ptr, ptr %21, align 8, !tbaa !5
  %3426 = load i64, ptr %37, align 8, !tbaa !9
  %3427 = getelementptr inbounds %struct.complex, ptr %3425, i64 %3426
  %3428 = getelementptr inbounds %struct.complex, ptr %3427, i32 0, i32 0
  %3429 = load float, ptr %3428, align 4, !tbaa !11
  %3430 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3431 = load float, ptr %3430, align 4, !tbaa !11
  %3432 = fsub float %3429, %3431
  %3433 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3432, ptr %3433, align 4, !tbaa !11
  %3434 = load ptr, ptr %21, align 8, !tbaa !5
  %3435 = load i64, ptr %37, align 8, !tbaa !9
  %3436 = getelementptr inbounds %struct.complex, ptr %3434, i64 %3435
  %3437 = getelementptr inbounds %struct.complex, ptr %3436, i32 0, i32 1
  %3438 = load float, ptr %3437, align 4, !tbaa !15
  %3439 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3440 = load float, ptr %3439, align 4, !tbaa !15
  %3441 = fsub float %3438, %3440
  %3442 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3441, ptr %3442, align 4, !tbaa !15
  %3443 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3444 = load float, ptr %3443, align 4, !tbaa !11
  %3445 = load ptr, ptr %21, align 8, !tbaa !5
  %3446 = load i64, ptr %36, align 8, !tbaa !9
  %3447 = getelementptr inbounds %struct.complex, ptr %3445, i64 %3446
  %3448 = getelementptr inbounds %struct.complex, ptr %3447, i32 0, i32 0
  store float %3444, ptr %3448, align 4, !tbaa !11
  %3449 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3450 = load float, ptr %3449, align 4, !tbaa !15
  %3451 = load ptr, ptr %21, align 8, !tbaa !5
  %3452 = load i64, ptr %36, align 8, !tbaa !9
  %3453 = getelementptr inbounds %struct.complex, ptr %3451, i64 %3452
  %3454 = getelementptr inbounds %struct.complex, ptr %3453, i32 0, i32 1
  store float %3450, ptr %3454, align 4, !tbaa !15
  br label %3455

3455:                                             ; preds = %3345
  %3456 = load i64, ptr %57, align 8, !tbaa !9
  %3457 = add nsw i64 %3456, 1
  store i64 %3457, ptr %57, align 8, !tbaa !9
  br label %3341, !llvm.loop !45

3458:                                             ; preds = %3341
  br label %3459

3459:                                             ; preds = %3458
  %3460 = load i64, ptr %56, align 8, !tbaa !9
  %3461 = add nsw i64 %3460, 1
  store i64 %3461, ptr %56, align 8, !tbaa !9
  br label %3318, !llvm.loop !46

3462:                                             ; preds = %3318
  %3463 = load i64, ptr %79, align 8, !tbaa !9
  %3464 = icmp ne i64 %3463, 0
  br i1 %3464, label %3465, label %3524

3465:                                             ; preds = %3462
  %3466 = load ptr, ptr %18, align 8, !tbaa !5
  %3467 = load i64, ptr %3466, align 8, !tbaa !9
  %3468 = load i64, ptr %59, align 8, !tbaa !9
  %3469 = sub nsw i64 %3467, %3468
  store i64 %3469, ptr %39, align 8, !tbaa !9
  %3470 = load float, ptr %74, align 4, !tbaa !14
  %3471 = fdiv float 1.000000e+00, %3470
  store float %3471, ptr %44, align 4, !tbaa !14
  %3472 = load ptr, ptr %25, align 8, !tbaa !5
  %3473 = load i64, ptr %59, align 8, !tbaa !9
  %3474 = add nsw i64 %3473, 1
  %3475 = load i64, ptr %55, align 8, !tbaa !9
  %3476 = load i64, ptr %34, align 8, !tbaa !9
  %3477 = mul nsw i64 %3475, %3476
  %3478 = add nsw i64 %3474, %3477
  %3479 = getelementptr inbounds %struct.complex, ptr %3472, i64 %3478
  %3480 = call i32 @f2c_csscal(ptr noundef %39, ptr noundef %44, ptr noundef %3479, ptr noundef @c__1)
  %3481 = load i64, ptr %75, align 8, !tbaa !9
  %3482 = icmp sgt i64 %3481, 0
  br i1 %3482, label %3483, label %3523

3483:                                             ; preds = %3465
  %3484 = load ptr, ptr %18, align 8, !tbaa !5
  %3485 = load i64, ptr %3484, align 8, !tbaa !9
  %3486 = load i64, ptr %59, align 8, !tbaa !9
  %3487 = sub nsw i64 %3485, %3486
  store i64 %3487, ptr %39, align 8, !tbaa !9
  %3488 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float -1.000000e+00, ptr %3488, align 4, !tbaa !11
  %3489 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float -0.000000e+00, ptr %3489, align 4, !tbaa !15
  %3490 = load ptr, ptr %24, align 8, !tbaa !5
  %3491 = load i64, ptr %3490, align 8, !tbaa !9
  %3492 = sub nsw i64 %3491, 1
  store i64 %3492, ptr %38, align 8, !tbaa !9
  %3493 = load ptr, ptr %25, align 8, !tbaa !5
  %3494 = load i64, ptr %59, align 8, !tbaa !9
  %3495 = add nsw i64 %3494, 1
  %3496 = load i64, ptr %55, align 8, !tbaa !9
  %3497 = load i64, ptr %34, align 8, !tbaa !9
  %3498 = mul nsw i64 %3496, %3497
  %3499 = add nsw i64 %3495, %3498
  %3500 = getelementptr inbounds %struct.complex, ptr %3493, i64 %3499
  %3501 = load ptr, ptr %23, align 8, !tbaa !5
  %3502 = load i64, ptr %75, align 8, !tbaa !9
  %3503 = add nsw i64 %3502, 1
  %3504 = load i64, ptr %55, align 8, !tbaa !9
  %3505 = load i64, ptr %75, align 8, !tbaa !9
  %3506 = sub nsw i64 %3504, %3505
  %3507 = load i64, ptr %32, align 8, !tbaa !9
  %3508 = mul nsw i64 %3506, %3507
  %3509 = add nsw i64 %3503, %3508
  %3510 = getelementptr inbounds %struct.complex, ptr %3501, i64 %3509
  %3511 = load ptr, ptr %25, align 8, !tbaa !5
  %3512 = load i64, ptr %59, align 8, !tbaa !9
  %3513 = add nsw i64 %3512, 1
  %3514 = load i64, ptr %55, align 8, !tbaa !9
  %3515 = load i64, ptr %75, align 8, !tbaa !9
  %3516 = sub nsw i64 %3514, %3515
  %3517 = load i64, ptr %34, align 8, !tbaa !9
  %3518 = mul nsw i64 %3516, %3517
  %3519 = add nsw i64 %3513, %3518
  %3520 = getelementptr inbounds %struct.complex, ptr %3511, i64 %3519
  %3521 = load ptr, ptr %26, align 8, !tbaa !5
  %3522 = call i32 @f2c_cgeru(ptr noundef %39, ptr noundef %75, ptr noundef %45, ptr noundef %3500, ptr noundef @c__1, ptr noundef %3510, ptr noundef %38, ptr noundef %3520, ptr noundef %3521)
  br label %3523

3523:                                             ; preds = %3483, %3465
  br label %3524

3524:                                             ; preds = %3523, %3462
  %3525 = load i64, ptr %62, align 8, !tbaa !9
  %3526 = load i64, ptr %55, align 8, !tbaa !9
  %3527 = sub nsw i64 %3525, %3526
  %3528 = add nsw i64 %3527, 1
  %3529 = load i64, ptr %55, align 8, !tbaa !9
  %3530 = load i64, ptr %30, align 8, !tbaa !9
  %3531 = mul nsw i64 %3529, %3530
  %3532 = add nsw i64 %3528, %3531
  store i64 %3532, ptr %39, align 8, !tbaa !9
  %3533 = load ptr, ptr %21, align 8, !tbaa !5
  %3534 = load i64, ptr %39, align 8, !tbaa !9
  %3535 = getelementptr inbounds %struct.complex, ptr %3533, i64 %3534
  %3536 = getelementptr inbounds %struct.complex, ptr %3535, i32 0, i32 0
  %3537 = load float, ptr %3536, align 4, !tbaa !11
  %3538 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %3537, ptr %3538, align 4, !tbaa !11
  %3539 = load ptr, ptr %21, align 8, !tbaa !5
  %3540 = load i64, ptr %39, align 8, !tbaa !9
  %3541 = getelementptr inbounds %struct.complex, ptr %3539, i64 %3540
  %3542 = getelementptr inbounds %struct.complex, ptr %3541, i32 0, i32 1
  %3543 = load float, ptr %3542, align 4, !tbaa !15
  %3544 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %3543, ptr %3544, align 4, !tbaa !15
  br label %3545

3545:                                             ; preds = %3524, %2759
  %3546 = load ptr, ptr %20, align 8, !tbaa !5
  %3547 = load i64, ptr %3546, align 8, !tbaa !9
  %3548 = sub nsw i64 %3547, 1
  store i64 %3548, ptr %39, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %3549

3549:                                             ; preds = %4326, %3545
  %3550 = load i64, ptr %57, align 8, !tbaa !9
  %3551 = load i64, ptr %39, align 8, !tbaa !9
  %3552 = icmp sle i64 %3550, %3551
  br i1 %3552, label %3553, label %4329

3553:                                             ; preds = %3549
  %3554 = load i64, ptr %80, align 8, !tbaa !9
  %3555 = icmp ne i64 %3554, 0
  br i1 %3555, label %3556, label %3874

3556:                                             ; preds = %3553
  %3557 = load i64, ptr %55, align 8, !tbaa !9
  %3558 = load i64, ptr %57, align 8, !tbaa !9
  %3559 = sub nsw i64 %3557, %3558
  %3560 = load ptr, ptr %19, align 8, !tbaa !5
  %3561 = load i64, ptr %3560, align 8, !tbaa !9
  %3562 = add nsw i64 %3559, %3561
  %3563 = load ptr, ptr %18, align 8, !tbaa !5
  %3564 = load i64, ptr %3563, align 8, !tbaa !9
  %3565 = icmp slt i64 %3562, %3564
  br i1 %3565, label %3566, label %3873

3566:                                             ; preds = %3556
  %3567 = load i64, ptr %55, align 8, !tbaa !9
  %3568 = load i64, ptr %57, align 8, !tbaa !9
  %3569 = sub nsw i64 %3567, %3568
  %3570 = icmp sgt i64 %3569, 1
  br i1 %3570, label %3571, label %3873

3571:                                             ; preds = %3566
  %3572 = load ptr, ptr %21, align 8, !tbaa !5
  %3573 = load i64, ptr %69, align 8, !tbaa !9
  %3574 = load i64, ptr %57, align 8, !tbaa !9
  %3575 = sub nsw i64 %3573, %3574
  %3576 = load i64, ptr %55, align 8, !tbaa !9
  %3577 = load i64, ptr %30, align 8, !tbaa !9
  %3578 = mul nsw i64 %3576, %3577
  %3579 = add nsw i64 %3575, %3578
  %3580 = getelementptr inbounds %struct.complex, ptr %3572, i64 %3579
  %3581 = load ptr, ptr %28, align 8, !tbaa !5
  %3582 = load i64, ptr %55, align 8, !tbaa !9
  %3583 = load i64, ptr %57, align 8, !tbaa !9
  %3584 = sub nsw i64 %3582, %3583
  %3585 = load ptr, ptr %19, align 8, !tbaa !5
  %3586 = load i64, ptr %3585, align 8, !tbaa !9
  %3587 = add nsw i64 %3584, %3586
  %3588 = load i64, ptr %59, align 8, !tbaa !9
  %3589 = sub nsw i64 %3587, %3588
  %3590 = getelementptr inbounds float, ptr %3581, i64 %3589
  %3591 = load ptr, ptr %27, align 8, !tbaa !5
  %3592 = load i64, ptr %55, align 8, !tbaa !9
  %3593 = load i64, ptr %57, align 8, !tbaa !9
  %3594 = sub nsw i64 %3592, %3593
  %3595 = load ptr, ptr %19, align 8, !tbaa !5
  %3596 = load i64, ptr %3595, align 8, !tbaa !9
  %3597 = add nsw i64 %3594, %3596
  %3598 = load i64, ptr %59, align 8, !tbaa !9
  %3599 = sub nsw i64 %3597, %3598
  %3600 = getelementptr inbounds %struct.complex, ptr %3591, i64 %3599
  %3601 = call i32 @clartg_(ptr noundef %3580, ptr noundef %71, ptr noundef %3590, ptr noundef %3600, ptr noundef %66)
  %3602 = load i64, ptr %57, align 8, !tbaa !9
  %3603 = add nsw i64 %3602, 1
  %3604 = load i64, ptr %55, align 8, !tbaa !9
  %3605 = load i64, ptr %57, align 8, !tbaa !9
  %3606 = sub nsw i64 %3604, %3605
  %3607 = load i64, ptr %32, align 8, !tbaa !9
  %3608 = mul nsw i64 %3606, %3607
  %3609 = add nsw i64 %3603, %3608
  store i64 %3609, ptr %38, align 8, !tbaa !9
  %3610 = load ptr, ptr %23, align 8, !tbaa !5
  %3611 = load i64, ptr %38, align 8, !tbaa !9
  %3612 = getelementptr inbounds %struct.complex, ptr %3610, i64 %3611
  %3613 = getelementptr inbounds %struct.complex, ptr %3612, i32 0, i32 0
  %3614 = load float, ptr %3613, align 4, !tbaa !11
  %3615 = fneg float %3614
  %3616 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3615, ptr %3616, align 4, !tbaa !11
  %3617 = load ptr, ptr %23, align 8, !tbaa !5
  %3618 = load i64, ptr %38, align 8, !tbaa !9
  %3619 = getelementptr inbounds %struct.complex, ptr %3617, i64 %3618
  %3620 = getelementptr inbounds %struct.complex, ptr %3619, i32 0, i32 1
  %3621 = load float, ptr %3620, align 4, !tbaa !15
  %3622 = fneg float %3621
  %3623 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3622, ptr %3623, align 4, !tbaa !15
  %3624 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3625 = load float, ptr %3624, align 4, !tbaa !11
  %3626 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %3627 = load float, ptr %3626, align 4, !tbaa !11
  %3628 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3629 = load float, ptr %3628, align 4, !tbaa !15
  %3630 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %3631 = load float, ptr %3630, align 4, !tbaa !15
  %3632 = fmul float %3629, %3631
  %3633 = fneg float %3632
  %3634 = call float @llvm.fmuladd.f32(float %3625, float %3627, float %3633)
  %3635 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3634, ptr %3635, align 4, !tbaa !11
  %3636 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3637 = load float, ptr %3636, align 4, !tbaa !11
  %3638 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %3639 = load float, ptr %3638, align 4, !tbaa !15
  %3640 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3641 = load float, ptr %3640, align 4, !tbaa !15
  %3642 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %3643 = load float, ptr %3642, align 4, !tbaa !11
  %3644 = fmul float %3641, %3643
  %3645 = call float @llvm.fmuladd.f32(float %3637, float %3639, float %3644)
  %3646 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3645, ptr %3646, align 4, !tbaa !15
  %3647 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3648 = load float, ptr %3647, align 4, !tbaa !11
  %3649 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %3648, ptr %3649, align 4, !tbaa !11
  %3650 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3651 = load float, ptr %3650, align 4, !tbaa !15
  %3652 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %3651, ptr %3652, align 4, !tbaa !15
  %3653 = load i64, ptr %55, align 8, !tbaa !9
  %3654 = load i64, ptr %57, align 8, !tbaa !9
  %3655 = sub nsw i64 %3653, %3654
  store i64 %3655, ptr %38, align 8, !tbaa !9
  %3656 = load i64, ptr %55, align 8, !tbaa !9
  %3657 = load i64, ptr %57, align 8, !tbaa !9
  %3658 = sub nsw i64 %3656, %3657
  %3659 = load ptr, ptr %19, align 8, !tbaa !5
  %3660 = load i64, ptr %3659, align 8, !tbaa !9
  %3661 = add nsw i64 %3658, %3660
  %3662 = load i64, ptr %59, align 8, !tbaa !9
  %3663 = sub nsw i64 %3661, %3662
  store i64 %3663, ptr %36, align 8, !tbaa !9
  %3664 = load ptr, ptr %28, align 8, !tbaa !5
  %3665 = load i64, ptr %36, align 8, !tbaa !9
  %3666 = getelementptr inbounds float, ptr %3664, i64 %3665
  %3667 = load float, ptr %3666, align 4, !tbaa !14
  %3668 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %3669 = load float, ptr %3668, align 4, !tbaa !11
  %3670 = fmul float %3667, %3669
  %3671 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3670, ptr %3671, align 4, !tbaa !11
  %3672 = load ptr, ptr %28, align 8, !tbaa !5
  %3673 = load i64, ptr %36, align 8, !tbaa !9
  %3674 = getelementptr inbounds float, ptr %3672, i64 %3673
  %3675 = load float, ptr %3674, align 4, !tbaa !14
  %3676 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %3677 = load float, ptr %3676, align 4, !tbaa !15
  %3678 = fmul float %3675, %3677
  %3679 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3678, ptr %3679, align 4, !tbaa !15
  %3680 = load ptr, ptr %27, align 8, !tbaa !5
  %3681 = load i64, ptr %55, align 8, !tbaa !9
  %3682 = load i64, ptr %57, align 8, !tbaa !9
  %3683 = sub nsw i64 %3681, %3682
  %3684 = load ptr, ptr %19, align 8, !tbaa !5
  %3685 = load i64, ptr %3684, align 8, !tbaa !9
  %3686 = add nsw i64 %3683, %3685
  %3687 = load i64, ptr %59, align 8, !tbaa !9
  %3688 = sub nsw i64 %3686, %3687
  %3689 = getelementptr inbounds %struct.complex, ptr %3680, i64 %3688
  call void @r_cnjg(ptr noundef %48, ptr noundef %3689)
  %3690 = load i64, ptr %69, align 8, !tbaa !9
  %3691 = load i64, ptr %55, align 8, !tbaa !9
  %3692 = load i64, ptr %57, align 8, !tbaa !9
  %3693 = sub nsw i64 %3691, %3692
  %3694 = load i64, ptr %30, align 8, !tbaa !9
  %3695 = mul nsw i64 %3693, %3694
  %3696 = add nsw i64 %3690, %3695
  store i64 %3696, ptr %37, align 8, !tbaa !9
  %3697 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %3698 = load float, ptr %3697, align 4, !tbaa !11
  %3699 = load ptr, ptr %21, align 8, !tbaa !5
  %3700 = load i64, ptr %37, align 8, !tbaa !9
  %3701 = getelementptr inbounds %struct.complex, ptr %3699, i64 %3700
  %3702 = getelementptr inbounds %struct.complex, ptr %3701, i32 0, i32 0
  %3703 = load float, ptr %3702, align 4, !tbaa !11
  %3704 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %3705 = load float, ptr %3704, align 4, !tbaa !15
  %3706 = load ptr, ptr %21, align 8, !tbaa !5
  %3707 = load i64, ptr %37, align 8, !tbaa !9
  %3708 = getelementptr inbounds %struct.complex, ptr %3706, i64 %3707
  %3709 = getelementptr inbounds %struct.complex, ptr %3708, i32 0, i32 1
  %3710 = load float, ptr %3709, align 4, !tbaa !15
  %3711 = fmul float %3705, %3710
  %3712 = fneg float %3711
  %3713 = call float @llvm.fmuladd.f32(float %3698, float %3703, float %3712)
  %3714 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %3713, ptr %3714, align 4, !tbaa !11
  %3715 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %3716 = load float, ptr %3715, align 4, !tbaa !11
  %3717 = load ptr, ptr %21, align 8, !tbaa !5
  %3718 = load i64, ptr %37, align 8, !tbaa !9
  %3719 = getelementptr inbounds %struct.complex, ptr %3717, i64 %3718
  %3720 = getelementptr inbounds %struct.complex, ptr %3719, i32 0, i32 1
  %3721 = load float, ptr %3720, align 4, !tbaa !15
  %3722 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %3723 = load float, ptr %3722, align 4, !tbaa !15
  %3724 = load ptr, ptr %21, align 8, !tbaa !5
  %3725 = load i64, ptr %37, align 8, !tbaa !9
  %3726 = getelementptr inbounds %struct.complex, ptr %3724, i64 %3725
  %3727 = getelementptr inbounds %struct.complex, ptr %3726, i32 0, i32 0
  %3728 = load float, ptr %3727, align 4, !tbaa !11
  %3729 = fmul float %3723, %3728
  %3730 = call float @llvm.fmuladd.f32(float %3716, float %3721, float %3729)
  %3731 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %3730, ptr %3731, align 4, !tbaa !15
  %3732 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3733 = load float, ptr %3732, align 4, !tbaa !11
  %3734 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %3735 = load float, ptr %3734, align 4, !tbaa !11
  %3736 = fsub float %3733, %3735
  %3737 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3736, ptr %3737, align 4, !tbaa !11
  %3738 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3739 = load float, ptr %3738, align 4, !tbaa !15
  %3740 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %3741 = load float, ptr %3740, align 4, !tbaa !15
  %3742 = fsub float %3739, %3741
  %3743 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3742, ptr %3743, align 4, !tbaa !15
  %3744 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3745 = load float, ptr %3744, align 4, !tbaa !11
  %3746 = load ptr, ptr %27, align 8, !tbaa !5
  %3747 = load i64, ptr %38, align 8, !tbaa !9
  %3748 = getelementptr inbounds %struct.complex, ptr %3746, i64 %3747
  %3749 = getelementptr inbounds %struct.complex, ptr %3748, i32 0, i32 0
  store float %3745, ptr %3749, align 4, !tbaa !11
  %3750 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3751 = load float, ptr %3750, align 4, !tbaa !15
  %3752 = load ptr, ptr %27, align 8, !tbaa !5
  %3753 = load i64, ptr %38, align 8, !tbaa !9
  %3754 = getelementptr inbounds %struct.complex, ptr %3752, i64 %3753
  %3755 = getelementptr inbounds %struct.complex, ptr %3754, i32 0, i32 1
  store float %3751, ptr %3755, align 4, !tbaa !15
  %3756 = load i64, ptr %69, align 8, !tbaa !9
  %3757 = load i64, ptr %55, align 8, !tbaa !9
  %3758 = load i64, ptr %57, align 8, !tbaa !9
  %3759 = sub nsw i64 %3757, %3758
  %3760 = load i64, ptr %30, align 8, !tbaa !9
  %3761 = mul nsw i64 %3759, %3760
  %3762 = add nsw i64 %3756, %3761
  store i64 %3762, ptr %38, align 8, !tbaa !9
  %3763 = load i64, ptr %55, align 8, !tbaa !9
  %3764 = load i64, ptr %57, align 8, !tbaa !9
  %3765 = sub nsw i64 %3763, %3764
  %3766 = load ptr, ptr %19, align 8, !tbaa !5
  %3767 = load i64, ptr %3766, align 8, !tbaa !9
  %3768 = add nsw i64 %3765, %3767
  %3769 = load i64, ptr %59, align 8, !tbaa !9
  %3770 = sub nsw i64 %3768, %3769
  store i64 %3770, ptr %36, align 8, !tbaa !9
  %3771 = load ptr, ptr %27, align 8, !tbaa !5
  %3772 = load i64, ptr %36, align 8, !tbaa !9
  %3773 = getelementptr inbounds %struct.complex, ptr %3771, i64 %3772
  %3774 = getelementptr inbounds %struct.complex, ptr %3773, i32 0, i32 0
  %3775 = load float, ptr %3774, align 4, !tbaa !11
  %3776 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %3777 = load float, ptr %3776, align 4, !tbaa !11
  %3778 = load ptr, ptr %27, align 8, !tbaa !5
  %3779 = load i64, ptr %36, align 8, !tbaa !9
  %3780 = getelementptr inbounds %struct.complex, ptr %3778, i64 %3779
  %3781 = getelementptr inbounds %struct.complex, ptr %3780, i32 0, i32 1
  %3782 = load float, ptr %3781, align 4, !tbaa !15
  %3783 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %3784 = load float, ptr %3783, align 4, !tbaa !15
  %3785 = fmul float %3782, %3784
  %3786 = fneg float %3785
  %3787 = call float @llvm.fmuladd.f32(float %3775, float %3777, float %3786)
  %3788 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %3787, ptr %3788, align 4, !tbaa !11
  %3789 = load ptr, ptr %27, align 8, !tbaa !5
  %3790 = load i64, ptr %36, align 8, !tbaa !9
  %3791 = getelementptr inbounds %struct.complex, ptr %3789, i64 %3790
  %3792 = getelementptr inbounds %struct.complex, ptr %3791, i32 0, i32 0
  %3793 = load float, ptr %3792, align 4, !tbaa !11
  %3794 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %3795 = load float, ptr %3794, align 4, !tbaa !15
  %3796 = load ptr, ptr %27, align 8, !tbaa !5
  %3797 = load i64, ptr %36, align 8, !tbaa !9
  %3798 = getelementptr inbounds %struct.complex, ptr %3796, i64 %3797
  %3799 = getelementptr inbounds %struct.complex, ptr %3798, i32 0, i32 1
  %3800 = load float, ptr %3799, align 4, !tbaa !15
  %3801 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %3802 = load float, ptr %3801, align 4, !tbaa !11
  %3803 = fmul float %3800, %3802
  %3804 = call float @llvm.fmuladd.f32(float %3793, float %3795, float %3803)
  %3805 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %3804, ptr %3805, align 4, !tbaa !15
  %3806 = load i64, ptr %55, align 8, !tbaa !9
  %3807 = load i64, ptr %57, align 8, !tbaa !9
  %3808 = sub nsw i64 %3806, %3807
  %3809 = load ptr, ptr %19, align 8, !tbaa !5
  %3810 = load i64, ptr %3809, align 8, !tbaa !9
  %3811 = add nsw i64 %3808, %3810
  %3812 = load i64, ptr %59, align 8, !tbaa !9
  %3813 = sub nsw i64 %3811, %3812
  store i64 %3813, ptr %37, align 8, !tbaa !9
  %3814 = load i64, ptr %69, align 8, !tbaa !9
  %3815 = load i64, ptr %55, align 8, !tbaa !9
  %3816 = load i64, ptr %57, align 8, !tbaa !9
  %3817 = sub nsw i64 %3815, %3816
  %3818 = load i64, ptr %30, align 8, !tbaa !9
  %3819 = mul nsw i64 %3817, %3818
  %3820 = add nsw i64 %3814, %3819
  store i64 %3820, ptr %40, align 8, !tbaa !9
  %3821 = load ptr, ptr %28, align 8, !tbaa !5
  %3822 = load i64, ptr %37, align 8, !tbaa !9
  %3823 = getelementptr inbounds float, ptr %3821, i64 %3822
  %3824 = load float, ptr %3823, align 4, !tbaa !14
  %3825 = load ptr, ptr %21, align 8, !tbaa !5
  %3826 = load i64, ptr %40, align 8, !tbaa !9
  %3827 = getelementptr inbounds %struct.complex, ptr %3825, i64 %3826
  %3828 = getelementptr inbounds %struct.complex, ptr %3827, i32 0, i32 0
  %3829 = load float, ptr %3828, align 4, !tbaa !11
  %3830 = fmul float %3824, %3829
  %3831 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %3830, ptr %3831, align 4, !tbaa !11
  %3832 = load ptr, ptr %28, align 8, !tbaa !5
  %3833 = load i64, ptr %37, align 8, !tbaa !9
  %3834 = getelementptr inbounds float, ptr %3832, i64 %3833
  %3835 = load float, ptr %3834, align 4, !tbaa !14
  %3836 = load ptr, ptr %21, align 8, !tbaa !5
  %3837 = load i64, ptr %40, align 8, !tbaa !9
  %3838 = getelementptr inbounds %struct.complex, ptr %3836, i64 %3837
  %3839 = getelementptr inbounds %struct.complex, ptr %3838, i32 0, i32 1
  %3840 = load float, ptr %3839, align 4, !tbaa !15
  %3841 = fmul float %3835, %3840
  %3842 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %3841, ptr %3842, align 4, !tbaa !15
  %3843 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %3844 = load float, ptr %3843, align 4, !tbaa !11
  %3845 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %3846 = load float, ptr %3845, align 4, !tbaa !11
  %3847 = fadd float %3844, %3846
  %3848 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %3847, ptr %3848, align 4, !tbaa !11
  %3849 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %3850 = load float, ptr %3849, align 4, !tbaa !15
  %3851 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %3852 = load float, ptr %3851, align 4, !tbaa !15
  %3853 = fadd float %3850, %3852
  %3854 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %3853, ptr %3854, align 4, !tbaa !15
  %3855 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %3856 = load float, ptr %3855, align 4, !tbaa !11
  %3857 = load ptr, ptr %21, align 8, !tbaa !5
  %3858 = load i64, ptr %38, align 8, !tbaa !9
  %3859 = getelementptr inbounds %struct.complex, ptr %3857, i64 %3858
  %3860 = getelementptr inbounds %struct.complex, ptr %3859, i32 0, i32 0
  store float %3856, ptr %3860, align 4, !tbaa !11
  %3861 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %3862 = load float, ptr %3861, align 4, !tbaa !15
  %3863 = load ptr, ptr %21, align 8, !tbaa !5
  %3864 = load i64, ptr %38, align 8, !tbaa !9
  %3865 = getelementptr inbounds %struct.complex, ptr %3863, i64 %3864
  %3866 = getelementptr inbounds %struct.complex, ptr %3865, i32 0, i32 1
  store float %3862, ptr %3866, align 4, !tbaa !15
  %3867 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %3868 = load float, ptr %3867, align 4, !tbaa !11
  %3869 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %3868, ptr %3869, align 4, !tbaa !11
  %3870 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %3871 = load float, ptr %3870, align 4, !tbaa !15
  %3872 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %3871, ptr %3872, align 4, !tbaa !15
  br label %3873

3873:                                             ; preds = %3571, %3566, %3556
  br label %3874

3874:                                             ; preds = %3873, %3553
  store i64 1, ptr %38, align 8, !tbaa !9
  %3875 = load i64, ptr %57, align 8, !tbaa !9
  %3876 = load i64, ptr %61, align 8, !tbaa !9
  %3877 = sub nsw i64 %3875, %3876
  %3878 = add nsw i64 %3877, 2
  store i64 %3878, ptr %36, align 8, !tbaa !9
  %3879 = load i64, ptr %55, align 8, !tbaa !9
  %3880 = load i64, ptr %57, align 8, !tbaa !9
  %3881 = sub nsw i64 %3879, %3880
  %3882 = sub nsw i64 %3881, 1
  %3883 = load i64, ptr %38, align 8, !tbaa !9
  %3884 = load i64, ptr %36, align 8, !tbaa !9
  %3885 = icmp sge i64 %3883, %3884
  br i1 %3885, label %3886, label %3888

3886:                                             ; preds = %3874
  %3887 = load i64, ptr %38, align 8, !tbaa !9
  br label %3890

3888:                                             ; preds = %3874
  %3889 = load i64, ptr %36, align 8, !tbaa !9
  br label %3890

3890:                                             ; preds = %3888, %3886
  %3891 = phi i64 [ %3887, %3886 ], [ %3889, %3888 ]
  %3892 = load i64, ptr %69, align 8, !tbaa !9
  %3893 = mul nsw i64 %3891, %3892
  %3894 = add nsw i64 %3882, %3893
  store i64 %3894, ptr %65, align 8, !tbaa !9
  %3895 = load ptr, ptr %18, align 8, !tbaa !5
  %3896 = load i64, ptr %3895, align 8, !tbaa !9
  %3897 = load i64, ptr %65, align 8, !tbaa !9
  %3898 = sub nsw i64 %3896, %3897
  %3899 = load ptr, ptr %19, align 8, !tbaa !5
  %3900 = load i64, ptr %3899, align 8, !tbaa !9
  %3901 = add nsw i64 %3898, %3900
  %3902 = load i64, ptr %69, align 8, !tbaa !9
  %3903 = sdiv i64 %3901, %3902
  store i64 %3903, ptr %67, align 8, !tbaa !9
  %3904 = load i64, ptr %65, align 8, !tbaa !9
  %3905 = load i64, ptr %67, align 8, !tbaa !9
  %3906 = sub nsw i64 %3905, 1
  %3907 = load i64, ptr %69, align 8, !tbaa !9
  %3908 = mul nsw i64 %3906, %3907
  %3909 = add nsw i64 %3904, %3908
  store i64 %3909, ptr %64, align 8, !tbaa !9
  %3910 = load i64, ptr %80, align 8, !tbaa !9
  %3911 = icmp ne i64 %3910, 0
  br i1 %3911, label %3912, label %3931

3912:                                             ; preds = %3890
  %3913 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %3913, ptr %38, align 8, !tbaa !9
  %3914 = load i64, ptr %55, align 8, !tbaa !9
  %3915 = load ptr, ptr %19, align 8, !tbaa !5
  %3916 = load i64, ptr %3915, align 8, !tbaa !9
  %3917 = shl i64 %3916, 1
  %3918 = add nsw i64 %3914, %3917
  %3919 = load i64, ptr %57, align 8, !tbaa !9
  %3920 = sub nsw i64 %3918, %3919
  %3921 = add nsw i64 %3920, 1
  store i64 %3921, ptr %36, align 8, !tbaa !9
  %3922 = load i64, ptr %38, align 8, !tbaa !9
  %3923 = load i64, ptr %36, align 8, !tbaa !9
  %3924 = icmp sge i64 %3922, %3923
  br i1 %3924, label %3925, label %3927

3925:                                             ; preds = %3912
  %3926 = load i64, ptr %38, align 8, !tbaa !9
  br label %3929

3927:                                             ; preds = %3912
  %3928 = load i64, ptr %36, align 8, !tbaa !9
  br label %3929

3929:                                             ; preds = %3927, %3925
  %3930 = phi i64 [ %3926, %3925 ], [ %3928, %3927 ]
  store i64 %3930, ptr %73, align 8, !tbaa !9
  br label %3933

3931:                                             ; preds = %3890
  %3932 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %3932, ptr %73, align 8, !tbaa !9
  br label %3933

3933:                                             ; preds = %3931, %3929
  %3934 = load ptr, ptr %18, align 8, !tbaa !5
  %3935 = load i64, ptr %3934, align 8, !tbaa !9
  %3936 = load i64, ptr %73, align 8, !tbaa !9
  %3937 = sub nsw i64 %3935, %3936
  %3938 = load ptr, ptr %19, align 8, !tbaa !5
  %3939 = load i64, ptr %3938, align 8, !tbaa !9
  %3940 = add nsw i64 %3937, %3939
  %3941 = load i64, ptr %69, align 8, !tbaa !9
  %3942 = sdiv i64 %3940, %3941
  store i64 %3942, ptr %76, align 8, !tbaa !9
  %3943 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %3943, ptr %38, align 8, !tbaa !9
  %3944 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %3944, ptr %36, align 8, !tbaa !9
  %3945 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %3945, ptr %56, align 8, !tbaa !9
  br label %3946

3946:                                             ; preds = %4092, %3933
  %3947 = load i64, ptr %36, align 8, !tbaa !9
  %3948 = icmp slt i64 %3947, 0
  br i1 %3948, label %3949, label %3954

3949:                                             ; preds = %3946
  %3950 = load i64, ptr %56, align 8, !tbaa !9
  %3951 = load i64, ptr %38, align 8, !tbaa !9
  %3952 = icmp sge i64 %3950, %3951
  %3953 = zext i1 %3952 to i32
  br label %3959

3954:                                             ; preds = %3946
  %3955 = load i64, ptr %56, align 8, !tbaa !9
  %3956 = load i64, ptr %38, align 8, !tbaa !9
  %3957 = icmp sle i64 %3955, %3956
  %3958 = zext i1 %3957 to i32
  br label %3959

3959:                                             ; preds = %3954, %3949
  %3960 = phi i32 [ %3953, %3949 ], [ %3958, %3954 ]
  %3961 = icmp ne i32 %3960, 0
  br i1 %3961, label %3962, label %4096

3962:                                             ; preds = %3959
  %3963 = load i64, ptr %56, align 8, !tbaa !9
  %3964 = load i64, ptr %59, align 8, !tbaa !9
  %3965 = sub nsw i64 %3963, %3964
  store i64 %3965, ptr %37, align 8, !tbaa !9
  %3966 = load i64, ptr %56, align 8, !tbaa !9
  %3967 = load i64, ptr %59, align 8, !tbaa !9
  %3968 = sub nsw i64 %3966, %3967
  store i64 %3968, ptr %40, align 8, !tbaa !9
  %3969 = load i64, ptr %69, align 8, !tbaa !9
  %3970 = load i64, ptr %56, align 8, !tbaa !9
  %3971 = load ptr, ptr %19, align 8, !tbaa !5
  %3972 = load i64, ptr %3971, align 8, !tbaa !9
  %3973 = sub nsw i64 %3970, %3972
  %3974 = add nsw i64 %3973, 1
  %3975 = load i64, ptr %30, align 8, !tbaa !9
  %3976 = mul nsw i64 %3974, %3975
  %3977 = add nsw i64 %3969, %3976
  store i64 %3977, ptr %41, align 8, !tbaa !9
  %3978 = load ptr, ptr %27, align 8, !tbaa !5
  %3979 = load i64, ptr %40, align 8, !tbaa !9
  %3980 = getelementptr inbounds %struct.complex, ptr %3978, i64 %3979
  %3981 = getelementptr inbounds %struct.complex, ptr %3980, i32 0, i32 0
  %3982 = load float, ptr %3981, align 4, !tbaa !11
  %3983 = load ptr, ptr %21, align 8, !tbaa !5
  %3984 = load i64, ptr %41, align 8, !tbaa !9
  %3985 = getelementptr inbounds %struct.complex, ptr %3983, i64 %3984
  %3986 = getelementptr inbounds %struct.complex, ptr %3985, i32 0, i32 0
  %3987 = load float, ptr %3986, align 4, !tbaa !11
  %3988 = load ptr, ptr %27, align 8, !tbaa !5
  %3989 = load i64, ptr %40, align 8, !tbaa !9
  %3990 = getelementptr inbounds %struct.complex, ptr %3988, i64 %3989
  %3991 = getelementptr inbounds %struct.complex, ptr %3990, i32 0, i32 1
  %3992 = load float, ptr %3991, align 4, !tbaa !15
  %3993 = load ptr, ptr %21, align 8, !tbaa !5
  %3994 = load i64, ptr %41, align 8, !tbaa !9
  %3995 = getelementptr inbounds %struct.complex, ptr %3993, i64 %3994
  %3996 = getelementptr inbounds %struct.complex, ptr %3995, i32 0, i32 1
  %3997 = load float, ptr %3996, align 4, !tbaa !15
  %3998 = fmul float %3992, %3997
  %3999 = fneg float %3998
  %4000 = call float @llvm.fmuladd.f32(float %3982, float %3987, float %3999)
  %4001 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %4000, ptr %4001, align 4, !tbaa !11
  %4002 = load ptr, ptr %27, align 8, !tbaa !5
  %4003 = load i64, ptr %40, align 8, !tbaa !9
  %4004 = getelementptr inbounds %struct.complex, ptr %4002, i64 %4003
  %4005 = getelementptr inbounds %struct.complex, ptr %4004, i32 0, i32 0
  %4006 = load float, ptr %4005, align 4, !tbaa !11
  %4007 = load ptr, ptr %21, align 8, !tbaa !5
  %4008 = load i64, ptr %41, align 8, !tbaa !9
  %4009 = getelementptr inbounds %struct.complex, ptr %4007, i64 %4008
  %4010 = getelementptr inbounds %struct.complex, ptr %4009, i32 0, i32 1
  %4011 = load float, ptr %4010, align 4, !tbaa !15
  %4012 = load ptr, ptr %27, align 8, !tbaa !5
  %4013 = load i64, ptr %40, align 8, !tbaa !9
  %4014 = getelementptr inbounds %struct.complex, ptr %4012, i64 %4013
  %4015 = getelementptr inbounds %struct.complex, ptr %4014, i32 0, i32 1
  %4016 = load float, ptr %4015, align 4, !tbaa !15
  %4017 = load ptr, ptr %21, align 8, !tbaa !5
  %4018 = load i64, ptr %41, align 8, !tbaa !9
  %4019 = getelementptr inbounds %struct.complex, ptr %4017, i64 %4018
  %4020 = getelementptr inbounds %struct.complex, ptr %4019, i32 0, i32 0
  %4021 = load float, ptr %4020, align 4, !tbaa !11
  %4022 = fmul float %4016, %4021
  %4023 = call float @llvm.fmuladd.f32(float %4006, float %4011, float %4022)
  %4024 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %4023, ptr %4024, align 4, !tbaa !15
  %4025 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %4026 = load float, ptr %4025, align 4, !tbaa !11
  %4027 = load ptr, ptr %27, align 8, !tbaa !5
  %4028 = load i64, ptr %37, align 8, !tbaa !9
  %4029 = getelementptr inbounds %struct.complex, ptr %4027, i64 %4028
  %4030 = getelementptr inbounds %struct.complex, ptr %4029, i32 0, i32 0
  store float %4026, ptr %4030, align 4, !tbaa !11
  %4031 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %4032 = load float, ptr %4031, align 4, !tbaa !15
  %4033 = load ptr, ptr %27, align 8, !tbaa !5
  %4034 = load i64, ptr %37, align 8, !tbaa !9
  %4035 = getelementptr inbounds %struct.complex, ptr %4033, i64 %4034
  %4036 = getelementptr inbounds %struct.complex, ptr %4035, i32 0, i32 1
  store float %4032, ptr %4036, align 4, !tbaa !15
  %4037 = load i64, ptr %69, align 8, !tbaa !9
  %4038 = load i64, ptr %56, align 8, !tbaa !9
  %4039 = load ptr, ptr %19, align 8, !tbaa !5
  %4040 = load i64, ptr %4039, align 8, !tbaa !9
  %4041 = sub nsw i64 %4038, %4040
  %4042 = add nsw i64 %4041, 1
  %4043 = load i64, ptr %30, align 8, !tbaa !9
  %4044 = mul nsw i64 %4042, %4043
  %4045 = add nsw i64 %4037, %4044
  store i64 %4045, ptr %37, align 8, !tbaa !9
  %4046 = load i64, ptr %56, align 8, !tbaa !9
  %4047 = load i64, ptr %59, align 8, !tbaa !9
  %4048 = sub nsw i64 %4046, %4047
  store i64 %4048, ptr %40, align 8, !tbaa !9
  %4049 = load i64, ptr %69, align 8, !tbaa !9
  %4050 = load i64, ptr %56, align 8, !tbaa !9
  %4051 = load ptr, ptr %19, align 8, !tbaa !5
  %4052 = load i64, ptr %4051, align 8, !tbaa !9
  %4053 = sub nsw i64 %4050, %4052
  %4054 = add nsw i64 %4053, 1
  %4055 = load i64, ptr %30, align 8, !tbaa !9
  %4056 = mul nsw i64 %4054, %4055
  %4057 = add nsw i64 %4049, %4056
  store i64 %4057, ptr %41, align 8, !tbaa !9
  %4058 = load ptr, ptr %28, align 8, !tbaa !5
  %4059 = load i64, ptr %40, align 8, !tbaa !9
  %4060 = getelementptr inbounds float, ptr %4058, i64 %4059
  %4061 = load float, ptr %4060, align 4, !tbaa !14
  %4062 = load ptr, ptr %21, align 8, !tbaa !5
  %4063 = load i64, ptr %41, align 8, !tbaa !9
  %4064 = getelementptr inbounds %struct.complex, ptr %4062, i64 %4063
  %4065 = getelementptr inbounds %struct.complex, ptr %4064, i32 0, i32 0
  %4066 = load float, ptr %4065, align 4, !tbaa !11
  %4067 = fmul float %4061, %4066
  %4068 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %4067, ptr %4068, align 4, !tbaa !11
  %4069 = load ptr, ptr %28, align 8, !tbaa !5
  %4070 = load i64, ptr %40, align 8, !tbaa !9
  %4071 = getelementptr inbounds float, ptr %4069, i64 %4070
  %4072 = load float, ptr %4071, align 4, !tbaa !14
  %4073 = load ptr, ptr %21, align 8, !tbaa !5
  %4074 = load i64, ptr %41, align 8, !tbaa !9
  %4075 = getelementptr inbounds %struct.complex, ptr %4073, i64 %4074
  %4076 = getelementptr inbounds %struct.complex, ptr %4075, i32 0, i32 1
  %4077 = load float, ptr %4076, align 4, !tbaa !15
  %4078 = fmul float %4072, %4077
  %4079 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %4078, ptr %4079, align 4, !tbaa !15
  %4080 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %4081 = load float, ptr %4080, align 4, !tbaa !11
  %4082 = load ptr, ptr %21, align 8, !tbaa !5
  %4083 = load i64, ptr %37, align 8, !tbaa !9
  %4084 = getelementptr inbounds %struct.complex, ptr %4082, i64 %4083
  %4085 = getelementptr inbounds %struct.complex, ptr %4084, i32 0, i32 0
  store float %4081, ptr %4085, align 4, !tbaa !11
  %4086 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %4087 = load float, ptr %4086, align 4, !tbaa !15
  %4088 = load ptr, ptr %21, align 8, !tbaa !5
  %4089 = load i64, ptr %37, align 8, !tbaa !9
  %4090 = getelementptr inbounds %struct.complex, ptr %4088, i64 %4089
  %4091 = getelementptr inbounds %struct.complex, ptr %4090, i32 0, i32 1
  store float %4087, ptr %4091, align 4, !tbaa !15
  br label %4092

4092:                                             ; preds = %3962
  %4093 = load i64, ptr %36, align 8, !tbaa !9
  %4094 = load i64, ptr %56, align 8, !tbaa !9
  %4095 = add nsw i64 %4094, %4093
  store i64 %4095, ptr %56, align 8, !tbaa !9
  br label %3946, !llvm.loop !47

4096:                                             ; preds = %3959
  %4097 = load i64, ptr %76, align 8, !tbaa !9
  %4098 = icmp sgt i64 %4097, 0
  br i1 %4098, label %4099, label %4121

4099:                                             ; preds = %4096
  %4100 = load ptr, ptr %21, align 8, !tbaa !5
  %4101 = load i64, ptr %69, align 8, !tbaa !9
  %4102 = load i64, ptr %73, align 8, !tbaa !9
  %4103 = load ptr, ptr %19, align 8, !tbaa !5
  %4104 = load i64, ptr %4103, align 8, !tbaa !9
  %4105 = sub nsw i64 %4102, %4104
  %4106 = load i64, ptr %30, align 8, !tbaa !9
  %4107 = mul nsw i64 %4105, %4106
  %4108 = add nsw i64 %4101, %4107
  %4109 = getelementptr inbounds %struct.complex, ptr %4100, i64 %4108
  %4110 = load ptr, ptr %27, align 8, !tbaa !5
  %4111 = load i64, ptr %73, align 8, !tbaa !9
  %4112 = load i64, ptr %59, align 8, !tbaa !9
  %4113 = sub nsw i64 %4111, %4112
  %4114 = getelementptr inbounds %struct.complex, ptr %4110, i64 %4113
  %4115 = load ptr, ptr %28, align 8, !tbaa !5
  %4116 = load i64, ptr %73, align 8, !tbaa !9
  %4117 = load i64, ptr %59, align 8, !tbaa !9
  %4118 = sub nsw i64 %4116, %4117
  %4119 = getelementptr inbounds float, ptr %4115, i64 %4118
  %4120 = call i32 @clargv_(ptr noundef %76, ptr noundef %4109, ptr noundef %77, ptr noundef %4114, ptr noundef %69, ptr noundef %4119, ptr noundef %69)
  br label %4121

4121:                                             ; preds = %4099, %4096
  %4122 = load i64, ptr %67, align 8, !tbaa !9
  %4123 = icmp sgt i64 %4122, 0
  br i1 %4123, label %4124, label %4204

4124:                                             ; preds = %4121
  %4125 = load ptr, ptr %19, align 8, !tbaa !5
  %4126 = load i64, ptr %4125, align 8, !tbaa !9
  %4127 = sub nsw i64 %4126, 1
  store i64 %4127, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %4128

4128:                                             ; preds = %4164, %4124
  %4129 = load i64, ptr %58, align 8, !tbaa !9
  %4130 = load i64, ptr %36, align 8, !tbaa !9
  %4131 = icmp sle i64 %4129, %4130
  br i1 %4131, label %4132, label %4167

4132:                                             ; preds = %4128
  %4133 = load ptr, ptr %21, align 8, !tbaa !5
  %4134 = load i64, ptr %58, align 8, !tbaa !9
  %4135 = add nsw i64 %4134, 1
  %4136 = load i64, ptr %65, align 8, !tbaa !9
  %4137 = load i64, ptr %58, align 8, !tbaa !9
  %4138 = sub nsw i64 %4136, %4137
  %4139 = load i64, ptr %30, align 8, !tbaa !9
  %4140 = mul nsw i64 %4138, %4139
  %4141 = add nsw i64 %4135, %4140
  %4142 = getelementptr inbounds %struct.complex, ptr %4133, i64 %4141
  %4143 = load ptr, ptr %21, align 8, !tbaa !5
  %4144 = load i64, ptr %58, align 8, !tbaa !9
  %4145 = add nsw i64 %4144, 2
  %4146 = load i64, ptr %65, align 8, !tbaa !9
  %4147 = load i64, ptr %58, align 8, !tbaa !9
  %4148 = sub nsw i64 %4146, %4147
  %4149 = load i64, ptr %30, align 8, !tbaa !9
  %4150 = mul nsw i64 %4148, %4149
  %4151 = add nsw i64 %4145, %4150
  %4152 = getelementptr inbounds %struct.complex, ptr %4143, i64 %4151
  %4153 = load ptr, ptr %28, align 8, !tbaa !5
  %4154 = load i64, ptr %65, align 8, !tbaa !9
  %4155 = load i64, ptr %59, align 8, !tbaa !9
  %4156 = sub nsw i64 %4154, %4155
  %4157 = getelementptr inbounds float, ptr %4153, i64 %4156
  %4158 = load ptr, ptr %27, align 8, !tbaa !5
  %4159 = load i64, ptr %65, align 8, !tbaa !9
  %4160 = load i64, ptr %59, align 8, !tbaa !9
  %4161 = sub nsw i64 %4159, %4160
  %4162 = getelementptr inbounds %struct.complex, ptr %4158, i64 %4161
  %4163 = call i32 @clartv_(ptr noundef %67, ptr noundef %4142, ptr noundef %77, ptr noundef %4152, ptr noundef %77, ptr noundef %4157, ptr noundef %4162, ptr noundef %69)
  br label %4164

4164:                                             ; preds = %4132
  %4165 = load i64, ptr %58, align 8, !tbaa !9
  %4166 = add nsw i64 %4165, 1
  store i64 %4166, ptr %58, align 8, !tbaa !9
  br label %4128, !llvm.loop !48

4167:                                             ; preds = %4128
  %4168 = load ptr, ptr %21, align 8, !tbaa !5
  %4169 = load i64, ptr %65, align 8, !tbaa !9
  %4170 = load i64, ptr %30, align 8, !tbaa !9
  %4171 = mul nsw i64 %4169, %4170
  %4172 = add nsw i64 %4171, 1
  %4173 = getelementptr inbounds %struct.complex, ptr %4168, i64 %4172
  %4174 = load ptr, ptr %21, align 8, !tbaa !5
  %4175 = load i64, ptr %65, align 8, !tbaa !9
  %4176 = add nsw i64 %4175, 1
  %4177 = load i64, ptr %30, align 8, !tbaa !9
  %4178 = mul nsw i64 %4176, %4177
  %4179 = add nsw i64 %4178, 1
  %4180 = getelementptr inbounds %struct.complex, ptr %4174, i64 %4179
  %4181 = load ptr, ptr %21, align 8, !tbaa !5
  %4182 = load i64, ptr %65, align 8, !tbaa !9
  %4183 = load i64, ptr %30, align 8, !tbaa !9
  %4184 = mul nsw i64 %4182, %4183
  %4185 = add nsw i64 %4184, 2
  %4186 = getelementptr inbounds %struct.complex, ptr %4181, i64 %4185
  %4187 = load ptr, ptr %28, align 8, !tbaa !5
  %4188 = load i64, ptr %65, align 8, !tbaa !9
  %4189 = load i64, ptr %59, align 8, !tbaa !9
  %4190 = sub nsw i64 %4188, %4189
  %4191 = getelementptr inbounds float, ptr %4187, i64 %4190
  %4192 = load ptr, ptr %27, align 8, !tbaa !5
  %4193 = load i64, ptr %65, align 8, !tbaa !9
  %4194 = load i64, ptr %59, align 8, !tbaa !9
  %4195 = sub nsw i64 %4193, %4194
  %4196 = getelementptr inbounds %struct.complex, ptr %4192, i64 %4195
  %4197 = call i32 @clar2v_(ptr noundef %67, ptr noundef %4173, ptr noundef %4180, ptr noundef %4186, ptr noundef %77, ptr noundef %4191, ptr noundef %4196, ptr noundef %69)
  %4198 = load ptr, ptr %27, align 8, !tbaa !5
  %4199 = load i64, ptr %65, align 8, !tbaa !9
  %4200 = load i64, ptr %59, align 8, !tbaa !9
  %4201 = sub nsw i64 %4199, %4200
  %4202 = getelementptr inbounds %struct.complex, ptr %4198, i64 %4201
  %4203 = call i32 @clacgv_(ptr noundef %67, ptr noundef %4202, ptr noundef %69)
  br label %4204

4204:                                             ; preds = %4167, %4121
  %4205 = load ptr, ptr %20, align 8, !tbaa !5
  %4206 = load i64, ptr %4205, align 8, !tbaa !9
  %4207 = load i64, ptr %57, align 8, !tbaa !9
  %4208 = sub nsw i64 %4206, %4207
  %4209 = add nsw i64 %4208, 1
  store i64 %4209, ptr %36, align 8, !tbaa !9
  %4210 = load ptr, ptr %19, align 8, !tbaa !5
  %4211 = load i64, ptr %4210, align 8, !tbaa !9
  %4212 = sub nsw i64 %4211, 1
  store i64 %4212, ptr %58, align 8, !tbaa !9
  br label %4213

4213:                                             ; preds = %4261, %4204
  %4214 = load i64, ptr %58, align 8, !tbaa !9
  %4215 = load i64, ptr %36, align 8, !tbaa !9
  %4216 = icmp sge i64 %4214, %4215
  br i1 %4216, label %4217, label %4264

4217:                                             ; preds = %4213
  %4218 = load ptr, ptr %18, align 8, !tbaa !5
  %4219 = load i64, ptr %4218, align 8, !tbaa !9
  %4220 = load i64, ptr %65, align 8, !tbaa !9
  %4221 = sub nsw i64 %4219, %4220
  %4222 = load i64, ptr %58, align 8, !tbaa !9
  %4223 = add nsw i64 %4221, %4222
  %4224 = load i64, ptr %69, align 8, !tbaa !9
  %4225 = sdiv i64 %4223, %4224
  store i64 %4225, ptr %76, align 8, !tbaa !9
  %4226 = load i64, ptr %76, align 8, !tbaa !9
  %4227 = icmp sgt i64 %4226, 0
  br i1 %4227, label %4228, label %4260

4228:                                             ; preds = %4217
  %4229 = load ptr, ptr %21, align 8, !tbaa !5
  %4230 = load i64, ptr %69, align 8, !tbaa !9
  %4231 = load i64, ptr %58, align 8, !tbaa !9
  %4232 = sub nsw i64 %4230, %4231
  %4233 = add nsw i64 %4232, 1
  %4234 = load i64, ptr %65, align 8, !tbaa !9
  %4235 = load i64, ptr %30, align 8, !tbaa !9
  %4236 = mul nsw i64 %4234, %4235
  %4237 = add nsw i64 %4233, %4236
  %4238 = getelementptr inbounds %struct.complex, ptr %4229, i64 %4237
  %4239 = load ptr, ptr %21, align 8, !tbaa !5
  %4240 = load i64, ptr %69, align 8, !tbaa !9
  %4241 = load i64, ptr %58, align 8, !tbaa !9
  %4242 = sub nsw i64 %4240, %4241
  %4243 = load i64, ptr %65, align 8, !tbaa !9
  %4244 = add nsw i64 %4243, 1
  %4245 = load i64, ptr %30, align 8, !tbaa !9
  %4246 = mul nsw i64 %4244, %4245
  %4247 = add nsw i64 %4242, %4246
  %4248 = getelementptr inbounds %struct.complex, ptr %4239, i64 %4247
  %4249 = load ptr, ptr %28, align 8, !tbaa !5
  %4250 = load i64, ptr %65, align 8, !tbaa !9
  %4251 = load i64, ptr %59, align 8, !tbaa !9
  %4252 = sub nsw i64 %4250, %4251
  %4253 = getelementptr inbounds float, ptr %4249, i64 %4252
  %4254 = load ptr, ptr %27, align 8, !tbaa !5
  %4255 = load i64, ptr %65, align 8, !tbaa !9
  %4256 = load i64, ptr %59, align 8, !tbaa !9
  %4257 = sub nsw i64 %4255, %4256
  %4258 = getelementptr inbounds %struct.complex, ptr %4254, i64 %4257
  %4259 = call i32 @clartv_(ptr noundef %76, ptr noundef %4238, ptr noundef %77, ptr noundef %4248, ptr noundef %77, ptr noundef %4253, ptr noundef %4258, ptr noundef %69)
  br label %4260

4260:                                             ; preds = %4228, %4217
  br label %4261

4261:                                             ; preds = %4260
  %4262 = load i64, ptr %58, align 8, !tbaa !9
  %4263 = add nsw i64 %4262, -1
  store i64 %4263, ptr %58, align 8, !tbaa !9
  br label %4213, !llvm.loop !49

4264:                                             ; preds = %4213
  %4265 = load i64, ptr %79, align 8, !tbaa !9
  %4266 = icmp ne i64 %4265, 0
  br i1 %4266, label %4267, label %4325

4267:                                             ; preds = %4264
  %4268 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %4268, ptr %36, align 8, !tbaa !9
  %4269 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %4269, ptr %38, align 8, !tbaa !9
  %4270 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %4270, ptr %56, align 8, !tbaa !9
  br label %4271

4271:                                             ; preds = %4320, %4267
  %4272 = load i64, ptr %38, align 8, !tbaa !9
  %4273 = icmp slt i64 %4272, 0
  br i1 %4273, label %4274, label %4279

4274:                                             ; preds = %4271
  %4275 = load i64, ptr %56, align 8, !tbaa !9
  %4276 = load i64, ptr %36, align 8, !tbaa !9
  %4277 = icmp sge i64 %4275, %4276
  %4278 = zext i1 %4277 to i32
  br label %4284

4279:                                             ; preds = %4271
  %4280 = load i64, ptr %56, align 8, !tbaa !9
  %4281 = load i64, ptr %36, align 8, !tbaa !9
  %4282 = icmp sle i64 %4280, %4281
  %4283 = zext i1 %4282 to i32
  br label %4284

4284:                                             ; preds = %4279, %4274
  %4285 = phi i32 [ %4278, %4274 ], [ %4283, %4279 ]
  %4286 = icmp ne i32 %4285, 0
  br i1 %4286, label %4287, label %4324

4287:                                             ; preds = %4284
  %4288 = load ptr, ptr %18, align 8, !tbaa !5
  %4289 = load i64, ptr %4288, align 8, !tbaa !9
  %4290 = load i64, ptr %59, align 8, !tbaa !9
  %4291 = sub nsw i64 %4289, %4290
  store i64 %4291, ptr %37, align 8, !tbaa !9
  %4292 = load ptr, ptr %25, align 8, !tbaa !5
  %4293 = load i64, ptr %59, align 8, !tbaa !9
  %4294 = add nsw i64 %4293, 1
  %4295 = load i64, ptr %56, align 8, !tbaa !9
  %4296 = load i64, ptr %34, align 8, !tbaa !9
  %4297 = mul nsw i64 %4295, %4296
  %4298 = add nsw i64 %4294, %4297
  %4299 = getelementptr inbounds %struct.complex, ptr %4292, i64 %4298
  %4300 = load ptr, ptr %25, align 8, !tbaa !5
  %4301 = load i64, ptr %59, align 8, !tbaa !9
  %4302 = add nsw i64 %4301, 1
  %4303 = load i64, ptr %56, align 8, !tbaa !9
  %4304 = add nsw i64 %4303, 1
  %4305 = load i64, ptr %34, align 8, !tbaa !9
  %4306 = mul nsw i64 %4304, %4305
  %4307 = add nsw i64 %4302, %4306
  %4308 = getelementptr inbounds %struct.complex, ptr %4300, i64 %4307
  %4309 = load ptr, ptr %28, align 8, !tbaa !5
  %4310 = load i64, ptr %56, align 8, !tbaa !9
  %4311 = load i64, ptr %59, align 8, !tbaa !9
  %4312 = sub nsw i64 %4310, %4311
  %4313 = getelementptr inbounds float, ptr %4309, i64 %4312
  %4314 = load ptr, ptr %27, align 8, !tbaa !5
  %4315 = load i64, ptr %56, align 8, !tbaa !9
  %4316 = load i64, ptr %59, align 8, !tbaa !9
  %4317 = sub nsw i64 %4315, %4316
  %4318 = getelementptr inbounds %struct.complex, ptr %4314, i64 %4317
  %4319 = call i32 @crot_(ptr noundef %37, ptr noundef %4299, ptr noundef @c__1, ptr noundef %4308, ptr noundef @c__1, ptr noundef %4313, ptr noundef %4318)
  br label %4320

4320:                                             ; preds = %4287
  %4321 = load i64, ptr %38, align 8, !tbaa !9
  %4322 = load i64, ptr %56, align 8, !tbaa !9
  %4323 = add nsw i64 %4322, %4321
  store i64 %4323, ptr %56, align 8, !tbaa !9
  br label %4271, !llvm.loop !50

4324:                                             ; preds = %4284
  br label %4325

4325:                                             ; preds = %4324, %4264
  br label %4326

4326:                                             ; preds = %4325
  %4327 = load i64, ptr %57, align 8, !tbaa !9
  %4328 = add nsw i64 %4327, 1
  store i64 %4328, ptr %57, align 8, !tbaa !9
  br label %3549, !llvm.loop !51

4329:                                             ; preds = %3549
  %4330 = load i64, ptr %80, align 8, !tbaa !9
  %4331 = icmp ne i64 %4330, 0
  br i1 %4331, label %4332, label %4402

4332:                                             ; preds = %4329
  %4333 = load i64, ptr %63, align 8, !tbaa !9
  %4334 = load ptr, ptr %18, align 8, !tbaa !5
  %4335 = load i64, ptr %4334, align 8, !tbaa !9
  %4336 = icmp sle i64 %4333, %4335
  br i1 %4336, label %4337, label %4401

4337:                                             ; preds = %4332
  %4338 = load i64, ptr %75, align 8, !tbaa !9
  %4339 = icmp sgt i64 %4338, 0
  br i1 %4339, label %4340, label %4401

4340:                                             ; preds = %4337
  %4341 = load i64, ptr %55, align 8, !tbaa !9
  %4342 = load i64, ptr %75, align 8, !tbaa !9
  %4343 = sub nsw i64 %4341, %4342
  store i64 %4343, ptr %39, align 8, !tbaa !9
  %4344 = load i64, ptr %75, align 8, !tbaa !9
  %4345 = add nsw i64 %4344, 1
  %4346 = load i64, ptr %55, align 8, !tbaa !9
  %4347 = load i64, ptr %75, align 8, !tbaa !9
  %4348 = sub nsw i64 %4346, %4347
  %4349 = load i64, ptr %32, align 8, !tbaa !9
  %4350 = mul nsw i64 %4348, %4349
  %4351 = add nsw i64 %4345, %4350
  store i64 %4351, ptr %38, align 8, !tbaa !9
  %4352 = load ptr, ptr %23, align 8, !tbaa !5
  %4353 = load i64, ptr %38, align 8, !tbaa !9
  %4354 = getelementptr inbounds %struct.complex, ptr %4352, i64 %4353
  %4355 = getelementptr inbounds %struct.complex, ptr %4354, i32 0, i32 0
  %4356 = load float, ptr %4355, align 4, !tbaa !11
  %4357 = fneg float %4356
  %4358 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %4357, ptr %4358, align 4, !tbaa !11
  %4359 = load ptr, ptr %23, align 8, !tbaa !5
  %4360 = load i64, ptr %38, align 8, !tbaa !9
  %4361 = getelementptr inbounds %struct.complex, ptr %4359, i64 %4360
  %4362 = getelementptr inbounds %struct.complex, ptr %4361, i32 0, i32 1
  %4363 = load float, ptr %4362, align 4, !tbaa !15
  %4364 = fneg float %4363
  %4365 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %4364, ptr %4365, align 4, !tbaa !15
  %4366 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %4367 = load float, ptr %4366, align 4, !tbaa !11
  %4368 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %4369 = load float, ptr %4368, align 4, !tbaa !11
  %4370 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %4371 = load float, ptr %4370, align 4, !tbaa !15
  %4372 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %4373 = load float, ptr %4372, align 4, !tbaa !15
  %4374 = fmul float %4371, %4373
  %4375 = fneg float %4374
  %4376 = call float @llvm.fmuladd.f32(float %4367, float %4369, float %4375)
  %4377 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %4376, ptr %4377, align 4, !tbaa !11
  %4378 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %4379 = load float, ptr %4378, align 4, !tbaa !11
  %4380 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %4381 = load float, ptr %4380, align 4, !tbaa !15
  %4382 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %4383 = load float, ptr %4382, align 4, !tbaa !15
  %4384 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %4385 = load float, ptr %4384, align 4, !tbaa !11
  %4386 = fmul float %4383, %4385
  %4387 = call float @llvm.fmuladd.f32(float %4379, float %4381, float %4386)
  %4388 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %4387, ptr %4388, align 4, !tbaa !15
  %4389 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %4390 = load float, ptr %4389, align 4, !tbaa !11
  %4391 = load ptr, ptr %27, align 8, !tbaa !5
  %4392 = load i64, ptr %39, align 8, !tbaa !9
  %4393 = getelementptr inbounds %struct.complex, ptr %4391, i64 %4392
  %4394 = getelementptr inbounds %struct.complex, ptr %4393, i32 0, i32 0
  store float %4390, ptr %4394, align 4, !tbaa !11
  %4395 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %4396 = load float, ptr %4395, align 4, !tbaa !15
  %4397 = load ptr, ptr %27, align 8, !tbaa !5
  %4398 = load i64, ptr %39, align 8, !tbaa !9
  %4399 = getelementptr inbounds %struct.complex, ptr %4397, i64 %4398
  %4400 = getelementptr inbounds %struct.complex, ptr %4399, i32 0, i32 1
  store float %4396, ptr %4400, align 4, !tbaa !15
  br label %4401

4401:                                             ; preds = %4340, %4337, %4332
  br label %4402

4402:                                             ; preds = %4401, %4329
  %4403 = load ptr, ptr %20, align 8, !tbaa !5
  %4404 = load i64, ptr %4403, align 8, !tbaa !9
  store i64 %4404, ptr %57, align 8, !tbaa !9
  br label %4405

4405:                                             ; preds = %4788, %4402
  %4406 = load i64, ptr %57, align 8, !tbaa !9
  %4407 = icmp sge i64 %4406, 1
  br i1 %4407, label %4408, label %4791

4408:                                             ; preds = %4405
  %4409 = load i64, ptr %80, align 8, !tbaa !9
  %4410 = icmp ne i64 %4409, 0
  br i1 %4410, label %4411, label %4432

4411:                                             ; preds = %4408
  store i64 2, ptr %39, align 8, !tbaa !9
  %4412 = load i64, ptr %57, align 8, !tbaa !9
  %4413 = load i64, ptr %61, align 8, !tbaa !9
  %4414 = sub nsw i64 %4412, %4413
  %4415 = add nsw i64 %4414, 1
  store i64 %4415, ptr %38, align 8, !tbaa !9
  %4416 = load i64, ptr %55, align 8, !tbaa !9
  %4417 = load i64, ptr %57, align 8, !tbaa !9
  %4418 = sub nsw i64 %4416, %4417
  %4419 = sub nsw i64 %4418, 1
  %4420 = load i64, ptr %39, align 8, !tbaa !9
  %4421 = load i64, ptr %38, align 8, !tbaa !9
  %4422 = icmp sge i64 %4420, %4421
  br i1 %4422, label %4423, label %4425

4423:                                             ; preds = %4411
  %4424 = load i64, ptr %39, align 8, !tbaa !9
  br label %4427

4425:                                             ; preds = %4411
  %4426 = load i64, ptr %38, align 8, !tbaa !9
  br label %4427

4427:                                             ; preds = %4425, %4423
  %4428 = phi i64 [ %4424, %4423 ], [ %4426, %4425 ]
  %4429 = load i64, ptr %69, align 8, !tbaa !9
  %4430 = mul nsw i64 %4428, %4429
  %4431 = add nsw i64 %4419, %4430
  store i64 %4431, ptr %65, align 8, !tbaa !9
  br label %4453

4432:                                             ; preds = %4408
  store i64 1, ptr %39, align 8, !tbaa !9
  %4433 = load i64, ptr %57, align 8, !tbaa !9
  %4434 = load i64, ptr %61, align 8, !tbaa !9
  %4435 = sub nsw i64 %4433, %4434
  %4436 = add nsw i64 %4435, 1
  store i64 %4436, ptr %38, align 8, !tbaa !9
  %4437 = load i64, ptr %55, align 8, !tbaa !9
  %4438 = load i64, ptr %57, align 8, !tbaa !9
  %4439 = sub nsw i64 %4437, %4438
  %4440 = sub nsw i64 %4439, 1
  %4441 = load i64, ptr %39, align 8, !tbaa !9
  %4442 = load i64, ptr %38, align 8, !tbaa !9
  %4443 = icmp sge i64 %4441, %4442
  br i1 %4443, label %4444, label %4446

4444:                                             ; preds = %4432
  %4445 = load i64, ptr %39, align 8, !tbaa !9
  br label %4448

4446:                                             ; preds = %4432
  %4447 = load i64, ptr %38, align 8, !tbaa !9
  br label %4448

4448:                                             ; preds = %4446, %4444
  %4449 = phi i64 [ %4445, %4444 ], [ %4447, %4446 ]
  %4450 = load i64, ptr %69, align 8, !tbaa !9
  %4451 = mul nsw i64 %4449, %4450
  %4452 = add nsw i64 %4440, %4451
  store i64 %4452, ptr %65, align 8, !tbaa !9
  br label %4453

4453:                                             ; preds = %4448, %4427
  %4454 = load ptr, ptr %20, align 8, !tbaa !5
  %4455 = load i64, ptr %4454, align 8, !tbaa !9
  %4456 = load i64, ptr %57, align 8, !tbaa !9
  %4457 = sub nsw i64 %4455, %4456
  store i64 %4457, ptr %58, align 8, !tbaa !9
  br label %4458

4458:                                             ; preds = %4516, %4453
  %4459 = load i64, ptr %58, align 8, !tbaa !9
  %4460 = icmp sge i64 %4459, 1
  br i1 %4460, label %4461, label %4519

4461:                                             ; preds = %4458
  %4462 = load ptr, ptr %18, align 8, !tbaa !5
  %4463 = load i64, ptr %4462, align 8, !tbaa !9
  %4464 = load i64, ptr %65, align 8, !tbaa !9
  %4465 = sub nsw i64 %4463, %4464
  %4466 = load ptr, ptr %19, align 8, !tbaa !5
  %4467 = load i64, ptr %4466, align 8, !tbaa !9
  %4468 = add nsw i64 %4465, %4467
  %4469 = load i64, ptr %58, align 8, !tbaa !9
  %4470 = add nsw i64 %4468, %4469
  %4471 = load i64, ptr %69, align 8, !tbaa !9
  %4472 = sdiv i64 %4470, %4471
  store i64 %4472, ptr %76, align 8, !tbaa !9
  %4473 = load i64, ptr %76, align 8, !tbaa !9
  %4474 = icmp sgt i64 %4473, 0
  br i1 %4474, label %4475, label %4515

4475:                                             ; preds = %4461
  %4476 = load ptr, ptr %21, align 8, !tbaa !5
  %4477 = load i64, ptr %69, align 8, !tbaa !9
  %4478 = load i64, ptr %58, align 8, !tbaa !9
  %4479 = sub nsw i64 %4477, %4478
  %4480 = add nsw i64 %4479, 1
  %4481 = load i64, ptr %65, align 8, !tbaa !9
  %4482 = load ptr, ptr %19, align 8, !tbaa !5
  %4483 = load i64, ptr %4482, align 8, !tbaa !9
  %4484 = sub nsw i64 %4481, %4483
  %4485 = load i64, ptr %30, align 8, !tbaa !9
  %4486 = mul nsw i64 %4484, %4485
  %4487 = add nsw i64 %4480, %4486
  %4488 = getelementptr inbounds %struct.complex, ptr %4476, i64 %4487
  %4489 = load ptr, ptr %21, align 8, !tbaa !5
  %4490 = load i64, ptr %69, align 8, !tbaa !9
  %4491 = load i64, ptr %58, align 8, !tbaa !9
  %4492 = sub nsw i64 %4490, %4491
  %4493 = load i64, ptr %65, align 8, !tbaa !9
  %4494 = load ptr, ptr %19, align 8, !tbaa !5
  %4495 = load i64, ptr %4494, align 8, !tbaa !9
  %4496 = sub nsw i64 %4493, %4495
  %4497 = add nsw i64 %4496, 1
  %4498 = load i64, ptr %30, align 8, !tbaa !9
  %4499 = mul nsw i64 %4497, %4498
  %4500 = add nsw i64 %4492, %4499
  %4501 = getelementptr inbounds %struct.complex, ptr %4489, i64 %4500
  %4502 = load ptr, ptr %28, align 8, !tbaa !5
  %4503 = load i64, ptr %65, align 8, !tbaa !9
  %4504 = load ptr, ptr %19, align 8, !tbaa !5
  %4505 = load i64, ptr %4504, align 8, !tbaa !9
  %4506 = sub nsw i64 %4503, %4505
  %4507 = getelementptr inbounds float, ptr %4502, i64 %4506
  %4508 = load ptr, ptr %27, align 8, !tbaa !5
  %4509 = load i64, ptr %65, align 8, !tbaa !9
  %4510 = load ptr, ptr %19, align 8, !tbaa !5
  %4511 = load i64, ptr %4510, align 8, !tbaa !9
  %4512 = sub nsw i64 %4509, %4511
  %4513 = getelementptr inbounds %struct.complex, ptr %4508, i64 %4512
  %4514 = call i32 @clartv_(ptr noundef %76, ptr noundef %4488, ptr noundef %77, ptr noundef %4501, ptr noundef %77, ptr noundef %4507, ptr noundef %4513, ptr noundef %69)
  br label %4515

4515:                                             ; preds = %4475, %4461
  br label %4516

4516:                                             ; preds = %4515
  %4517 = load i64, ptr %58, align 8, !tbaa !9
  %4518 = add nsw i64 %4517, -1
  store i64 %4518, ptr %58, align 8, !tbaa !9
  br label %4458, !llvm.loop !52

4519:                                             ; preds = %4458
  %4520 = load ptr, ptr %18, align 8, !tbaa !5
  %4521 = load i64, ptr %4520, align 8, !tbaa !9
  %4522 = load i64, ptr %65, align 8, !tbaa !9
  %4523 = sub nsw i64 %4521, %4522
  %4524 = load ptr, ptr %19, align 8, !tbaa !5
  %4525 = load i64, ptr %4524, align 8, !tbaa !9
  %4526 = add nsw i64 %4523, %4525
  %4527 = load i64, ptr %69, align 8, !tbaa !9
  %4528 = sdiv i64 %4526, %4527
  store i64 %4528, ptr %67, align 8, !tbaa !9
  %4529 = load i64, ptr %65, align 8, !tbaa !9
  %4530 = load i64, ptr %67, align 8, !tbaa !9
  %4531 = sub nsw i64 %4530, 1
  %4532 = load i64, ptr %69, align 8, !tbaa !9
  %4533 = mul nsw i64 %4531, %4532
  %4534 = add nsw i64 %4529, %4533
  store i64 %4534, ptr %64, align 8, !tbaa !9
  %4535 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %4535, ptr %39, align 8, !tbaa !9
  %4536 = load i64, ptr %69, align 8, !tbaa !9
  %4537 = sub nsw i64 0, %4536
  store i64 %4537, ptr %38, align 8, !tbaa !9
  %4538 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %4538, ptr %56, align 8, !tbaa !9
  br label %4539

4539:                                             ; preds = %4589, %4519
  %4540 = load i64, ptr %38, align 8, !tbaa !9
  %4541 = icmp slt i64 %4540, 0
  br i1 %4541, label %4542, label %4547

4542:                                             ; preds = %4539
  %4543 = load i64, ptr %56, align 8, !tbaa !9
  %4544 = load i64, ptr %39, align 8, !tbaa !9
  %4545 = icmp sge i64 %4543, %4544
  %4546 = zext i1 %4545 to i32
  br label %4552

4547:                                             ; preds = %4539
  %4548 = load i64, ptr %56, align 8, !tbaa !9
  %4549 = load i64, ptr %39, align 8, !tbaa !9
  %4550 = icmp sle i64 %4548, %4549
  %4551 = zext i1 %4550 to i32
  br label %4552

4552:                                             ; preds = %4547, %4542
  %4553 = phi i32 [ %4546, %4542 ], [ %4551, %4547 ]
  %4554 = icmp ne i32 %4553, 0
  br i1 %4554, label %4555, label %4593

4555:                                             ; preds = %4552
  %4556 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %4556, ptr %36, align 8, !tbaa !9
  %4557 = load i64, ptr %56, align 8, !tbaa !9
  %4558 = load ptr, ptr %19, align 8, !tbaa !5
  %4559 = load i64, ptr %4558, align 8, !tbaa !9
  %4560 = sub nsw i64 %4557, %4559
  store i64 %4560, ptr %37, align 8, !tbaa !9
  %4561 = load ptr, ptr %27, align 8, !tbaa !5
  %4562 = load i64, ptr %37, align 8, !tbaa !9
  %4563 = getelementptr inbounds %struct.complex, ptr %4561, i64 %4562
  %4564 = getelementptr inbounds %struct.complex, ptr %4563, i32 0, i32 0
  %4565 = load float, ptr %4564, align 4, !tbaa !11
  %4566 = load ptr, ptr %27, align 8, !tbaa !5
  %4567 = load i64, ptr %36, align 8, !tbaa !9
  %4568 = getelementptr inbounds %struct.complex, ptr %4566, i64 %4567
  %4569 = getelementptr inbounds %struct.complex, ptr %4568, i32 0, i32 0
  store float %4565, ptr %4569, align 4, !tbaa !11
  %4570 = load ptr, ptr %27, align 8, !tbaa !5
  %4571 = load i64, ptr %37, align 8, !tbaa !9
  %4572 = getelementptr inbounds %struct.complex, ptr %4570, i64 %4571
  %4573 = getelementptr inbounds %struct.complex, ptr %4572, i32 0, i32 1
  %4574 = load float, ptr %4573, align 4, !tbaa !15
  %4575 = load ptr, ptr %27, align 8, !tbaa !5
  %4576 = load i64, ptr %36, align 8, !tbaa !9
  %4577 = getelementptr inbounds %struct.complex, ptr %4575, i64 %4576
  %4578 = getelementptr inbounds %struct.complex, ptr %4577, i32 0, i32 1
  store float %4574, ptr %4578, align 4, !tbaa !15
  %4579 = load ptr, ptr %28, align 8, !tbaa !5
  %4580 = load i64, ptr %56, align 8, !tbaa !9
  %4581 = load ptr, ptr %19, align 8, !tbaa !5
  %4582 = load i64, ptr %4581, align 8, !tbaa !9
  %4583 = sub nsw i64 %4580, %4582
  %4584 = getelementptr inbounds float, ptr %4579, i64 %4583
  %4585 = load float, ptr %4584, align 4, !tbaa !14
  %4586 = load ptr, ptr %28, align 8, !tbaa !5
  %4587 = load i64, ptr %56, align 8, !tbaa !9
  %4588 = getelementptr inbounds float, ptr %4586, i64 %4587
  store float %4585, ptr %4588, align 4, !tbaa !14
  br label %4589

4589:                                             ; preds = %4555
  %4590 = load i64, ptr %38, align 8, !tbaa !9
  %4591 = load i64, ptr %56, align 8, !tbaa !9
  %4592 = add nsw i64 %4591, %4590
  store i64 %4592, ptr %56, align 8, !tbaa !9
  br label %4539, !llvm.loop !53

4593:                                             ; preds = %4552
  %4594 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %4594, ptr %38, align 8, !tbaa !9
  %4595 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %4595, ptr %39, align 8, !tbaa !9
  %4596 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %4596, ptr %56, align 8, !tbaa !9
  br label %4597

4597:                                             ; preds = %4737, %4593
  %4598 = load i64, ptr %39, align 8, !tbaa !9
  %4599 = icmp slt i64 %4598, 0
  br i1 %4599, label %4600, label %4605

4600:                                             ; preds = %4597
  %4601 = load i64, ptr %56, align 8, !tbaa !9
  %4602 = load i64, ptr %38, align 8, !tbaa !9
  %4603 = icmp sge i64 %4601, %4602
  %4604 = zext i1 %4603 to i32
  br label %4610

4605:                                             ; preds = %4597
  %4606 = load i64, ptr %56, align 8, !tbaa !9
  %4607 = load i64, ptr %38, align 8, !tbaa !9
  %4608 = icmp sle i64 %4606, %4607
  %4609 = zext i1 %4608 to i32
  br label %4610

4610:                                             ; preds = %4605, %4600
  %4611 = phi i32 [ %4604, %4600 ], [ %4609, %4605 ]
  %4612 = icmp ne i32 %4611, 0
  br i1 %4612, label %4613, label %4741

4613:                                             ; preds = %4610
  %4614 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %4614, ptr %36, align 8, !tbaa !9
  %4615 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %4615, ptr %37, align 8, !tbaa !9
  %4616 = load i64, ptr %69, align 8, !tbaa !9
  %4617 = load i64, ptr %56, align 8, !tbaa !9
  %4618 = load ptr, ptr %19, align 8, !tbaa !5
  %4619 = load i64, ptr %4618, align 8, !tbaa !9
  %4620 = sub nsw i64 %4617, %4619
  %4621 = add nsw i64 %4620, 1
  %4622 = load i64, ptr %30, align 8, !tbaa !9
  %4623 = mul nsw i64 %4621, %4622
  %4624 = add nsw i64 %4616, %4623
  store i64 %4624, ptr %40, align 8, !tbaa !9
  %4625 = load ptr, ptr %27, align 8, !tbaa !5
  %4626 = load i64, ptr %37, align 8, !tbaa !9
  %4627 = getelementptr inbounds %struct.complex, ptr %4625, i64 %4626
  %4628 = getelementptr inbounds %struct.complex, ptr %4627, i32 0, i32 0
  %4629 = load float, ptr %4628, align 4, !tbaa !11
  %4630 = load ptr, ptr %21, align 8, !tbaa !5
  %4631 = load i64, ptr %40, align 8, !tbaa !9
  %4632 = getelementptr inbounds %struct.complex, ptr %4630, i64 %4631
  %4633 = getelementptr inbounds %struct.complex, ptr %4632, i32 0, i32 0
  %4634 = load float, ptr %4633, align 4, !tbaa !11
  %4635 = load ptr, ptr %27, align 8, !tbaa !5
  %4636 = load i64, ptr %37, align 8, !tbaa !9
  %4637 = getelementptr inbounds %struct.complex, ptr %4635, i64 %4636
  %4638 = getelementptr inbounds %struct.complex, ptr %4637, i32 0, i32 1
  %4639 = load float, ptr %4638, align 4, !tbaa !15
  %4640 = load ptr, ptr %21, align 8, !tbaa !5
  %4641 = load i64, ptr %40, align 8, !tbaa !9
  %4642 = getelementptr inbounds %struct.complex, ptr %4640, i64 %4641
  %4643 = getelementptr inbounds %struct.complex, ptr %4642, i32 0, i32 1
  %4644 = load float, ptr %4643, align 4, !tbaa !15
  %4645 = fmul float %4639, %4644
  %4646 = fneg float %4645
  %4647 = call float @llvm.fmuladd.f32(float %4629, float %4634, float %4646)
  %4648 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %4647, ptr %4648, align 4, !tbaa !11
  %4649 = load ptr, ptr %27, align 8, !tbaa !5
  %4650 = load i64, ptr %37, align 8, !tbaa !9
  %4651 = getelementptr inbounds %struct.complex, ptr %4649, i64 %4650
  %4652 = getelementptr inbounds %struct.complex, ptr %4651, i32 0, i32 0
  %4653 = load float, ptr %4652, align 4, !tbaa !11
  %4654 = load ptr, ptr %21, align 8, !tbaa !5
  %4655 = load i64, ptr %40, align 8, !tbaa !9
  %4656 = getelementptr inbounds %struct.complex, ptr %4654, i64 %4655
  %4657 = getelementptr inbounds %struct.complex, ptr %4656, i32 0, i32 1
  %4658 = load float, ptr %4657, align 4, !tbaa !15
  %4659 = load ptr, ptr %27, align 8, !tbaa !5
  %4660 = load i64, ptr %37, align 8, !tbaa !9
  %4661 = getelementptr inbounds %struct.complex, ptr %4659, i64 %4660
  %4662 = getelementptr inbounds %struct.complex, ptr %4661, i32 0, i32 1
  %4663 = load float, ptr %4662, align 4, !tbaa !15
  %4664 = load ptr, ptr %21, align 8, !tbaa !5
  %4665 = load i64, ptr %40, align 8, !tbaa !9
  %4666 = getelementptr inbounds %struct.complex, ptr %4664, i64 %4665
  %4667 = getelementptr inbounds %struct.complex, ptr %4666, i32 0, i32 0
  %4668 = load float, ptr %4667, align 4, !tbaa !11
  %4669 = fmul float %4663, %4668
  %4670 = call float @llvm.fmuladd.f32(float %4653, float %4658, float %4669)
  %4671 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %4670, ptr %4671, align 4, !tbaa !15
  %4672 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %4673 = load float, ptr %4672, align 4, !tbaa !11
  %4674 = load ptr, ptr %27, align 8, !tbaa !5
  %4675 = load i64, ptr %36, align 8, !tbaa !9
  %4676 = getelementptr inbounds %struct.complex, ptr %4674, i64 %4675
  %4677 = getelementptr inbounds %struct.complex, ptr %4676, i32 0, i32 0
  store float %4673, ptr %4677, align 4, !tbaa !11
  %4678 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %4679 = load float, ptr %4678, align 4, !tbaa !15
  %4680 = load ptr, ptr %27, align 8, !tbaa !5
  %4681 = load i64, ptr %36, align 8, !tbaa !9
  %4682 = getelementptr inbounds %struct.complex, ptr %4680, i64 %4681
  %4683 = getelementptr inbounds %struct.complex, ptr %4682, i32 0, i32 1
  store float %4679, ptr %4683, align 4, !tbaa !15
  %4684 = load i64, ptr %69, align 8, !tbaa !9
  %4685 = load i64, ptr %56, align 8, !tbaa !9
  %4686 = load ptr, ptr %19, align 8, !tbaa !5
  %4687 = load i64, ptr %4686, align 8, !tbaa !9
  %4688 = sub nsw i64 %4685, %4687
  %4689 = add nsw i64 %4688, 1
  %4690 = load i64, ptr %30, align 8, !tbaa !9
  %4691 = mul nsw i64 %4689, %4690
  %4692 = add nsw i64 %4684, %4691
  store i64 %4692, ptr %36, align 8, !tbaa !9
  %4693 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %4693, ptr %37, align 8, !tbaa !9
  %4694 = load i64, ptr %69, align 8, !tbaa !9
  %4695 = load i64, ptr %56, align 8, !tbaa !9
  %4696 = load ptr, ptr %19, align 8, !tbaa !5
  %4697 = load i64, ptr %4696, align 8, !tbaa !9
  %4698 = sub nsw i64 %4695, %4697
  %4699 = add nsw i64 %4698, 1
  %4700 = load i64, ptr %30, align 8, !tbaa !9
  %4701 = mul nsw i64 %4699, %4700
  %4702 = add nsw i64 %4694, %4701
  store i64 %4702, ptr %40, align 8, !tbaa !9
  %4703 = load ptr, ptr %28, align 8, !tbaa !5
  %4704 = load i64, ptr %37, align 8, !tbaa !9
  %4705 = getelementptr inbounds float, ptr %4703, i64 %4704
  %4706 = load float, ptr %4705, align 4, !tbaa !14
  %4707 = load ptr, ptr %21, align 8, !tbaa !5
  %4708 = load i64, ptr %40, align 8, !tbaa !9
  %4709 = getelementptr inbounds %struct.complex, ptr %4707, i64 %4708
  %4710 = getelementptr inbounds %struct.complex, ptr %4709, i32 0, i32 0
  %4711 = load float, ptr %4710, align 4, !tbaa !11
  %4712 = fmul float %4706, %4711
  %4713 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %4712, ptr %4713, align 4, !tbaa !11
  %4714 = load ptr, ptr %28, align 8, !tbaa !5
  %4715 = load i64, ptr %37, align 8, !tbaa !9
  %4716 = getelementptr inbounds float, ptr %4714, i64 %4715
  %4717 = load float, ptr %4716, align 4, !tbaa !14
  %4718 = load ptr, ptr %21, align 8, !tbaa !5
  %4719 = load i64, ptr %40, align 8, !tbaa !9
  %4720 = getelementptr inbounds %struct.complex, ptr %4718, i64 %4719
  %4721 = getelementptr inbounds %struct.complex, ptr %4720, i32 0, i32 1
  %4722 = load float, ptr %4721, align 4, !tbaa !15
  %4723 = fmul float %4717, %4722
  %4724 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %4723, ptr %4724, align 4, !tbaa !15
  %4725 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %4726 = load float, ptr %4725, align 4, !tbaa !11
  %4727 = load ptr, ptr %21, align 8, !tbaa !5
  %4728 = load i64, ptr %36, align 8, !tbaa !9
  %4729 = getelementptr inbounds %struct.complex, ptr %4727, i64 %4728
  %4730 = getelementptr inbounds %struct.complex, ptr %4729, i32 0, i32 0
  store float %4726, ptr %4730, align 4, !tbaa !11
  %4731 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %4732 = load float, ptr %4731, align 4, !tbaa !15
  %4733 = load ptr, ptr %21, align 8, !tbaa !5
  %4734 = load i64, ptr %36, align 8, !tbaa !9
  %4735 = getelementptr inbounds %struct.complex, ptr %4733, i64 %4734
  %4736 = getelementptr inbounds %struct.complex, ptr %4735, i32 0, i32 1
  store float %4732, ptr %4736, align 4, !tbaa !15
  br label %4737

4737:                                             ; preds = %4613
  %4738 = load i64, ptr %39, align 8, !tbaa !9
  %4739 = load i64, ptr %56, align 8, !tbaa !9
  %4740 = add nsw i64 %4739, %4738
  store i64 %4740, ptr %56, align 8, !tbaa !9
  br label %4597, !llvm.loop !54

4741:                                             ; preds = %4610
  %4742 = load i64, ptr %80, align 8, !tbaa !9
  %4743 = icmp ne i64 %4742, 0
  br i1 %4743, label %4744, label %4787

4744:                                             ; preds = %4741
  %4745 = load i64, ptr %55, align 8, !tbaa !9
  %4746 = load i64, ptr %57, align 8, !tbaa !9
  %4747 = sub nsw i64 %4745, %4746
  %4748 = load ptr, ptr %18, align 8, !tbaa !5
  %4749 = load i64, ptr %4748, align 8, !tbaa !9
  %4750 = load ptr, ptr %19, align 8, !tbaa !5
  %4751 = load i64, ptr %4750, align 8, !tbaa !9
  %4752 = sub nsw i64 %4749, %4751
  %4753 = icmp slt i64 %4747, %4752
  br i1 %4753, label %4754, label %4786

4754:                                             ; preds = %4744
  %4755 = load i64, ptr %57, align 8, !tbaa !9
  %4756 = load i64, ptr %75, align 8, !tbaa !9
  %4757 = icmp sle i64 %4755, %4756
  br i1 %4757, label %4758, label %4786

4758:                                             ; preds = %4754
  %4759 = load i64, ptr %55, align 8, !tbaa !9
  %4760 = load i64, ptr %57, align 8, !tbaa !9
  %4761 = sub nsw i64 %4759, %4760
  %4762 = load ptr, ptr %19, align 8, !tbaa !5
  %4763 = load i64, ptr %4762, align 8, !tbaa !9
  %4764 = add nsw i64 %4761, %4763
  store i64 %4764, ptr %39, align 8, !tbaa !9
  %4765 = load i64, ptr %55, align 8, !tbaa !9
  %4766 = load i64, ptr %57, align 8, !tbaa !9
  %4767 = sub nsw i64 %4765, %4766
  store i64 %4767, ptr %38, align 8, !tbaa !9
  %4768 = load ptr, ptr %27, align 8, !tbaa !5
  %4769 = load i64, ptr %38, align 8, !tbaa !9
  %4770 = getelementptr inbounds %struct.complex, ptr %4768, i64 %4769
  %4771 = getelementptr inbounds %struct.complex, ptr %4770, i32 0, i32 0
  %4772 = load float, ptr %4771, align 4, !tbaa !11
  %4773 = load ptr, ptr %27, align 8, !tbaa !5
  %4774 = load i64, ptr %39, align 8, !tbaa !9
  %4775 = getelementptr inbounds %struct.complex, ptr %4773, i64 %4774
  %4776 = getelementptr inbounds %struct.complex, ptr %4775, i32 0, i32 0
  store float %4772, ptr %4776, align 4, !tbaa !11
  %4777 = load ptr, ptr %27, align 8, !tbaa !5
  %4778 = load i64, ptr %38, align 8, !tbaa !9
  %4779 = getelementptr inbounds %struct.complex, ptr %4777, i64 %4778
  %4780 = getelementptr inbounds %struct.complex, ptr %4779, i32 0, i32 1
  %4781 = load float, ptr %4780, align 4, !tbaa !15
  %4782 = load ptr, ptr %27, align 8, !tbaa !5
  %4783 = load i64, ptr %39, align 8, !tbaa !9
  %4784 = getelementptr inbounds %struct.complex, ptr %4782, i64 %4783
  %4785 = getelementptr inbounds %struct.complex, ptr %4784, i32 0, i32 1
  store float %4781, ptr %4785, align 4, !tbaa !15
  br label %4786

4786:                                             ; preds = %4758, %4754, %4744
  br label %4787

4787:                                             ; preds = %4786, %4741
  br label %4788

4788:                                             ; preds = %4787
  %4789 = load i64, ptr %57, align 8, !tbaa !9
  %4790 = add nsw i64 %4789, -1
  store i64 %4790, ptr %57, align 8, !tbaa !9
  br label %4405, !llvm.loop !55

4791:                                             ; preds = %4405
  %4792 = load ptr, ptr %20, align 8, !tbaa !5
  %4793 = load i64, ptr %4792, align 8, !tbaa !9
  store i64 %4793, ptr %57, align 8, !tbaa !9
  br label %4794

4794:                                             ; preds = %5036, %4791
  %4795 = load i64, ptr %57, align 8, !tbaa !9
  %4796 = icmp sge i64 %4795, 1
  br i1 %4796, label %4797, label %5039

4797:                                             ; preds = %4794
  store i64 1, ptr %39, align 8, !tbaa !9
  %4798 = load i64, ptr %57, align 8, !tbaa !9
  %4799 = load i64, ptr %61, align 8, !tbaa !9
  %4800 = sub nsw i64 %4798, %4799
  %4801 = add nsw i64 %4800, 1
  store i64 %4801, ptr %38, align 8, !tbaa !9
  %4802 = load i64, ptr %55, align 8, !tbaa !9
  %4803 = load i64, ptr %57, align 8, !tbaa !9
  %4804 = sub nsw i64 %4802, %4803
  %4805 = sub nsw i64 %4804, 1
  %4806 = load i64, ptr %39, align 8, !tbaa !9
  %4807 = load i64, ptr %38, align 8, !tbaa !9
  %4808 = icmp sge i64 %4806, %4807
  br i1 %4808, label %4809, label %4811

4809:                                             ; preds = %4797
  %4810 = load i64, ptr %39, align 8, !tbaa !9
  br label %4813

4811:                                             ; preds = %4797
  %4812 = load i64, ptr %38, align 8, !tbaa !9
  br label %4813

4813:                                             ; preds = %4811, %4809
  %4814 = phi i64 [ %4810, %4809 ], [ %4812, %4811 ]
  %4815 = load i64, ptr %69, align 8, !tbaa !9
  %4816 = mul nsw i64 %4814, %4815
  %4817 = add nsw i64 %4805, %4816
  store i64 %4817, ptr %65, align 8, !tbaa !9
  %4818 = load ptr, ptr %18, align 8, !tbaa !5
  %4819 = load i64, ptr %4818, align 8, !tbaa !9
  %4820 = load i64, ptr %65, align 8, !tbaa !9
  %4821 = sub nsw i64 %4819, %4820
  %4822 = load ptr, ptr %19, align 8, !tbaa !5
  %4823 = load i64, ptr %4822, align 8, !tbaa !9
  %4824 = add nsw i64 %4821, %4823
  %4825 = load i64, ptr %69, align 8, !tbaa !9
  %4826 = sdiv i64 %4824, %4825
  store i64 %4826, ptr %67, align 8, !tbaa !9
  %4827 = load i64, ptr %65, align 8, !tbaa !9
  %4828 = load i64, ptr %67, align 8, !tbaa !9
  %4829 = sub nsw i64 %4828, 1
  %4830 = load i64, ptr %69, align 8, !tbaa !9
  %4831 = mul nsw i64 %4829, %4830
  %4832 = add nsw i64 %4827, %4831
  store i64 %4832, ptr %64, align 8, !tbaa !9
  %4833 = load i64, ptr %67, align 8, !tbaa !9
  %4834 = icmp sgt i64 %4833, 0
  br i1 %4834, label %4835, label %4922

4835:                                             ; preds = %4813
  %4836 = load ptr, ptr %21, align 8, !tbaa !5
  %4837 = load i64, ptr %69, align 8, !tbaa !9
  %4838 = load i64, ptr %65, align 8, !tbaa !9
  %4839 = load ptr, ptr %19, align 8, !tbaa !5
  %4840 = load i64, ptr %4839, align 8, !tbaa !9
  %4841 = sub nsw i64 %4838, %4840
  %4842 = load i64, ptr %30, align 8, !tbaa !9
  %4843 = mul nsw i64 %4841, %4842
  %4844 = add nsw i64 %4837, %4843
  %4845 = getelementptr inbounds %struct.complex, ptr %4836, i64 %4844
  %4846 = load ptr, ptr %27, align 8, !tbaa !5
  %4847 = load i64, ptr %65, align 8, !tbaa !9
  %4848 = getelementptr inbounds %struct.complex, ptr %4846, i64 %4847
  %4849 = load ptr, ptr %28, align 8, !tbaa !5
  %4850 = load i64, ptr %65, align 8, !tbaa !9
  %4851 = getelementptr inbounds float, ptr %4849, i64 %4850
  %4852 = call i32 @clargv_(ptr noundef %67, ptr noundef %4845, ptr noundef %77, ptr noundef %4848, ptr noundef %69, ptr noundef %4851, ptr noundef %69)
  %4853 = load ptr, ptr %19, align 8, !tbaa !5
  %4854 = load i64, ptr %4853, align 8, !tbaa !9
  %4855 = sub nsw i64 %4854, 1
  store i64 %4855, ptr %39, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %4856

4856:                                             ; preds = %4888, %4835
  %4857 = load i64, ptr %58, align 8, !tbaa !9
  %4858 = load i64, ptr %39, align 8, !tbaa !9
  %4859 = icmp sle i64 %4857, %4858
  br i1 %4859, label %4860, label %4891

4860:                                             ; preds = %4856
  %4861 = load ptr, ptr %21, align 8, !tbaa !5
  %4862 = load i64, ptr %58, align 8, !tbaa !9
  %4863 = add nsw i64 %4862, 1
  %4864 = load i64, ptr %65, align 8, !tbaa !9
  %4865 = load i64, ptr %58, align 8, !tbaa !9
  %4866 = sub nsw i64 %4864, %4865
  %4867 = load i64, ptr %30, align 8, !tbaa !9
  %4868 = mul nsw i64 %4866, %4867
  %4869 = add nsw i64 %4863, %4868
  %4870 = getelementptr inbounds %struct.complex, ptr %4861, i64 %4869
  %4871 = load ptr, ptr %21, align 8, !tbaa !5
  %4872 = load i64, ptr %58, align 8, !tbaa !9
  %4873 = add nsw i64 %4872, 2
  %4874 = load i64, ptr %65, align 8, !tbaa !9
  %4875 = load i64, ptr %58, align 8, !tbaa !9
  %4876 = sub nsw i64 %4874, %4875
  %4877 = load i64, ptr %30, align 8, !tbaa !9
  %4878 = mul nsw i64 %4876, %4877
  %4879 = add nsw i64 %4873, %4878
  %4880 = getelementptr inbounds %struct.complex, ptr %4871, i64 %4879
  %4881 = load ptr, ptr %28, align 8, !tbaa !5
  %4882 = load i64, ptr %65, align 8, !tbaa !9
  %4883 = getelementptr inbounds float, ptr %4881, i64 %4882
  %4884 = load ptr, ptr %27, align 8, !tbaa !5
  %4885 = load i64, ptr %65, align 8, !tbaa !9
  %4886 = getelementptr inbounds %struct.complex, ptr %4884, i64 %4885
  %4887 = call i32 @clartv_(ptr noundef %67, ptr noundef %4870, ptr noundef %77, ptr noundef %4880, ptr noundef %77, ptr noundef %4883, ptr noundef %4886, ptr noundef %69)
  br label %4888

4888:                                             ; preds = %4860
  %4889 = load i64, ptr %58, align 8, !tbaa !9
  %4890 = add nsw i64 %4889, 1
  store i64 %4890, ptr %58, align 8, !tbaa !9
  br label %4856, !llvm.loop !56

4891:                                             ; preds = %4856
  %4892 = load ptr, ptr %21, align 8, !tbaa !5
  %4893 = load i64, ptr %65, align 8, !tbaa !9
  %4894 = load i64, ptr %30, align 8, !tbaa !9
  %4895 = mul nsw i64 %4893, %4894
  %4896 = add nsw i64 %4895, 1
  %4897 = getelementptr inbounds %struct.complex, ptr %4892, i64 %4896
  %4898 = load ptr, ptr %21, align 8, !tbaa !5
  %4899 = load i64, ptr %65, align 8, !tbaa !9
  %4900 = add nsw i64 %4899, 1
  %4901 = load i64, ptr %30, align 8, !tbaa !9
  %4902 = mul nsw i64 %4900, %4901
  %4903 = add nsw i64 %4902, 1
  %4904 = getelementptr inbounds %struct.complex, ptr %4898, i64 %4903
  %4905 = load ptr, ptr %21, align 8, !tbaa !5
  %4906 = load i64, ptr %65, align 8, !tbaa !9
  %4907 = load i64, ptr %30, align 8, !tbaa !9
  %4908 = mul nsw i64 %4906, %4907
  %4909 = add nsw i64 %4908, 2
  %4910 = getelementptr inbounds %struct.complex, ptr %4905, i64 %4909
  %4911 = load ptr, ptr %28, align 8, !tbaa !5
  %4912 = load i64, ptr %65, align 8, !tbaa !9
  %4913 = getelementptr inbounds float, ptr %4911, i64 %4912
  %4914 = load ptr, ptr %27, align 8, !tbaa !5
  %4915 = load i64, ptr %65, align 8, !tbaa !9
  %4916 = getelementptr inbounds %struct.complex, ptr %4914, i64 %4915
  %4917 = call i32 @clar2v_(ptr noundef %67, ptr noundef %4897, ptr noundef %4904, ptr noundef %4910, ptr noundef %77, ptr noundef %4913, ptr noundef %4916, ptr noundef %69)
  %4918 = load ptr, ptr %27, align 8, !tbaa !5
  %4919 = load i64, ptr %65, align 8, !tbaa !9
  %4920 = getelementptr inbounds %struct.complex, ptr %4918, i64 %4919
  %4921 = call i32 @clacgv_(ptr noundef %67, ptr noundef %4920, ptr noundef %69)
  br label %4922

4922:                                             ; preds = %4891, %4813
  %4923 = load ptr, ptr %20, align 8, !tbaa !5
  %4924 = load i64, ptr %4923, align 8, !tbaa !9
  %4925 = load i64, ptr %57, align 8, !tbaa !9
  %4926 = sub nsw i64 %4924, %4925
  %4927 = add nsw i64 %4926, 1
  store i64 %4927, ptr %39, align 8, !tbaa !9
  %4928 = load ptr, ptr %19, align 8, !tbaa !5
  %4929 = load i64, ptr %4928, align 8, !tbaa !9
  %4930 = sub nsw i64 %4929, 1
  store i64 %4930, ptr %58, align 8, !tbaa !9
  br label %4931

4931:                                             ; preds = %4975, %4922
  %4932 = load i64, ptr %58, align 8, !tbaa !9
  %4933 = load i64, ptr %39, align 8, !tbaa !9
  %4934 = icmp sge i64 %4932, %4933
  br i1 %4934, label %4935, label %4978

4935:                                             ; preds = %4931
  %4936 = load ptr, ptr %18, align 8, !tbaa !5
  %4937 = load i64, ptr %4936, align 8, !tbaa !9
  %4938 = load i64, ptr %65, align 8, !tbaa !9
  %4939 = sub nsw i64 %4937, %4938
  %4940 = load i64, ptr %58, align 8, !tbaa !9
  %4941 = add nsw i64 %4939, %4940
  %4942 = load i64, ptr %69, align 8, !tbaa !9
  %4943 = sdiv i64 %4941, %4942
  store i64 %4943, ptr %76, align 8, !tbaa !9
  %4944 = load i64, ptr %76, align 8, !tbaa !9
  %4945 = icmp sgt i64 %4944, 0
  br i1 %4945, label %4946, label %4974

4946:                                             ; preds = %4935
  %4947 = load ptr, ptr %21, align 8, !tbaa !5
  %4948 = load i64, ptr %69, align 8, !tbaa !9
  %4949 = load i64, ptr %58, align 8, !tbaa !9
  %4950 = sub nsw i64 %4948, %4949
  %4951 = add nsw i64 %4950, 1
  %4952 = load i64, ptr %65, align 8, !tbaa !9
  %4953 = load i64, ptr %30, align 8, !tbaa !9
  %4954 = mul nsw i64 %4952, %4953
  %4955 = add nsw i64 %4951, %4954
  %4956 = getelementptr inbounds %struct.complex, ptr %4947, i64 %4955
  %4957 = load ptr, ptr %21, align 8, !tbaa !5
  %4958 = load i64, ptr %69, align 8, !tbaa !9
  %4959 = load i64, ptr %58, align 8, !tbaa !9
  %4960 = sub nsw i64 %4958, %4959
  %4961 = load i64, ptr %65, align 8, !tbaa !9
  %4962 = add nsw i64 %4961, 1
  %4963 = load i64, ptr %30, align 8, !tbaa !9
  %4964 = mul nsw i64 %4962, %4963
  %4965 = add nsw i64 %4960, %4964
  %4966 = getelementptr inbounds %struct.complex, ptr %4957, i64 %4965
  %4967 = load ptr, ptr %28, align 8, !tbaa !5
  %4968 = load i64, ptr %65, align 8, !tbaa !9
  %4969 = getelementptr inbounds float, ptr %4967, i64 %4968
  %4970 = load ptr, ptr %27, align 8, !tbaa !5
  %4971 = load i64, ptr %65, align 8, !tbaa !9
  %4972 = getelementptr inbounds %struct.complex, ptr %4970, i64 %4971
  %4973 = call i32 @clartv_(ptr noundef %76, ptr noundef %4956, ptr noundef %77, ptr noundef %4966, ptr noundef %77, ptr noundef %4969, ptr noundef %4972, ptr noundef %69)
  br label %4974

4974:                                             ; preds = %4946, %4935
  br label %4975

4975:                                             ; preds = %4974
  %4976 = load i64, ptr %58, align 8, !tbaa !9
  %4977 = add nsw i64 %4976, -1
  store i64 %4977, ptr %58, align 8, !tbaa !9
  br label %4931, !llvm.loop !57

4978:                                             ; preds = %4931
  %4979 = load i64, ptr %79, align 8, !tbaa !9
  %4980 = icmp ne i64 %4979, 0
  br i1 %4980, label %4981, label %5035

4981:                                             ; preds = %4978
  %4982 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %4982, ptr %39, align 8, !tbaa !9
  %4983 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %4983, ptr %38, align 8, !tbaa !9
  %4984 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %4984, ptr %56, align 8, !tbaa !9
  br label %4985

4985:                                             ; preds = %5030, %4981
  %4986 = load i64, ptr %38, align 8, !tbaa !9
  %4987 = icmp slt i64 %4986, 0
  br i1 %4987, label %4988, label %4993

4988:                                             ; preds = %4985
  %4989 = load i64, ptr %56, align 8, !tbaa !9
  %4990 = load i64, ptr %39, align 8, !tbaa !9
  %4991 = icmp sge i64 %4989, %4990
  %4992 = zext i1 %4991 to i32
  br label %4998

4993:                                             ; preds = %4985
  %4994 = load i64, ptr %56, align 8, !tbaa !9
  %4995 = load i64, ptr %39, align 8, !tbaa !9
  %4996 = icmp sle i64 %4994, %4995
  %4997 = zext i1 %4996 to i32
  br label %4998

4998:                                             ; preds = %4993, %4988
  %4999 = phi i32 [ %4992, %4988 ], [ %4997, %4993 ]
  %5000 = icmp ne i32 %4999, 0
  br i1 %5000, label %5001, label %5034

5001:                                             ; preds = %4998
  %5002 = load ptr, ptr %18, align 8, !tbaa !5
  %5003 = load i64, ptr %5002, align 8, !tbaa !9
  %5004 = load i64, ptr %59, align 8, !tbaa !9
  %5005 = sub nsw i64 %5003, %5004
  store i64 %5005, ptr %36, align 8, !tbaa !9
  %5006 = load ptr, ptr %25, align 8, !tbaa !5
  %5007 = load i64, ptr %59, align 8, !tbaa !9
  %5008 = add nsw i64 %5007, 1
  %5009 = load i64, ptr %56, align 8, !tbaa !9
  %5010 = load i64, ptr %34, align 8, !tbaa !9
  %5011 = mul nsw i64 %5009, %5010
  %5012 = add nsw i64 %5008, %5011
  %5013 = getelementptr inbounds %struct.complex, ptr %5006, i64 %5012
  %5014 = load ptr, ptr %25, align 8, !tbaa !5
  %5015 = load i64, ptr %59, align 8, !tbaa !9
  %5016 = add nsw i64 %5015, 1
  %5017 = load i64, ptr %56, align 8, !tbaa !9
  %5018 = add nsw i64 %5017, 1
  %5019 = load i64, ptr %34, align 8, !tbaa !9
  %5020 = mul nsw i64 %5018, %5019
  %5021 = add nsw i64 %5016, %5020
  %5022 = getelementptr inbounds %struct.complex, ptr %5014, i64 %5021
  %5023 = load ptr, ptr %28, align 8, !tbaa !5
  %5024 = load i64, ptr %56, align 8, !tbaa !9
  %5025 = getelementptr inbounds float, ptr %5023, i64 %5024
  %5026 = load ptr, ptr %27, align 8, !tbaa !5
  %5027 = load i64, ptr %56, align 8, !tbaa !9
  %5028 = getelementptr inbounds %struct.complex, ptr %5026, i64 %5027
  %5029 = call i32 @crot_(ptr noundef %36, ptr noundef %5013, ptr noundef @c__1, ptr noundef %5022, ptr noundef @c__1, ptr noundef %5025, ptr noundef %5028)
  br label %5030

5030:                                             ; preds = %5001
  %5031 = load i64, ptr %38, align 8, !tbaa !9
  %5032 = load i64, ptr %56, align 8, !tbaa !9
  %5033 = add nsw i64 %5032, %5031
  store i64 %5033, ptr %56, align 8, !tbaa !9
  br label %4985, !llvm.loop !58

5034:                                             ; preds = %4998
  br label %5035

5035:                                             ; preds = %5034, %4978
  br label %5036

5036:                                             ; preds = %5035
  %5037 = load i64, ptr %57, align 8, !tbaa !9
  %5038 = add nsw i64 %5037, -1
  store i64 %5038, ptr %57, align 8, !tbaa !9
  br label %4794, !llvm.loop !59

5039:                                             ; preds = %4794
  %5040 = load ptr, ptr %20, align 8, !tbaa !5
  %5041 = load i64, ptr %5040, align 8, !tbaa !9
  %5042 = sub nsw i64 %5041, 1
  store i64 %5042, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %5043

5043:                                             ; preds = %5123, %5039
  %5044 = load i64, ptr %57, align 8, !tbaa !9
  %5045 = load i64, ptr %38, align 8, !tbaa !9
  %5046 = icmp sle i64 %5044, %5045
  br i1 %5046, label %5047, label %5126

5047:                                             ; preds = %5043
  store i64 1, ptr %39, align 8, !tbaa !9
  %5048 = load i64, ptr %57, align 8, !tbaa !9
  %5049 = load i64, ptr %61, align 8, !tbaa !9
  %5050 = sub nsw i64 %5048, %5049
  %5051 = add nsw i64 %5050, 2
  store i64 %5051, ptr %36, align 8, !tbaa !9
  %5052 = load i64, ptr %55, align 8, !tbaa !9
  %5053 = load i64, ptr %57, align 8, !tbaa !9
  %5054 = sub nsw i64 %5052, %5053
  %5055 = sub nsw i64 %5054, 1
  %5056 = load i64, ptr %39, align 8, !tbaa !9
  %5057 = load i64, ptr %36, align 8, !tbaa !9
  %5058 = icmp sge i64 %5056, %5057
  br i1 %5058, label %5059, label %5061

5059:                                             ; preds = %5047
  %5060 = load i64, ptr %39, align 8, !tbaa !9
  br label %5063

5061:                                             ; preds = %5047
  %5062 = load i64, ptr %36, align 8, !tbaa !9
  br label %5063

5063:                                             ; preds = %5061, %5059
  %5064 = phi i64 [ %5060, %5059 ], [ %5062, %5061 ]
  %5065 = load i64, ptr %69, align 8, !tbaa !9
  %5066 = mul nsw i64 %5064, %5065
  %5067 = add nsw i64 %5055, %5066
  store i64 %5067, ptr %65, align 8, !tbaa !9
  %5068 = load ptr, ptr %20, align 8, !tbaa !5
  %5069 = load i64, ptr %5068, align 8, !tbaa !9
  %5070 = load i64, ptr %57, align 8, !tbaa !9
  %5071 = sub nsw i64 %5069, %5070
  store i64 %5071, ptr %58, align 8, !tbaa !9
  br label %5072

5072:                                             ; preds = %5119, %5063
  %5073 = load i64, ptr %58, align 8, !tbaa !9
  %5074 = icmp sge i64 %5073, 1
  br i1 %5074, label %5075, label %5122

5075:                                             ; preds = %5072
  %5076 = load ptr, ptr %18, align 8, !tbaa !5
  %5077 = load i64, ptr %5076, align 8, !tbaa !9
  %5078 = load i64, ptr %65, align 8, !tbaa !9
  %5079 = sub nsw i64 %5077, %5078
  %5080 = load i64, ptr %58, align 8, !tbaa !9
  %5081 = add nsw i64 %5079, %5080
  %5082 = load i64, ptr %69, align 8, !tbaa !9
  %5083 = sdiv i64 %5081, %5082
  store i64 %5083, ptr %76, align 8, !tbaa !9
  %5084 = load i64, ptr %76, align 8, !tbaa !9
  %5085 = icmp sgt i64 %5084, 0
  br i1 %5085, label %5086, label %5118

5086:                                             ; preds = %5075
  %5087 = load ptr, ptr %21, align 8, !tbaa !5
  %5088 = load i64, ptr %69, align 8, !tbaa !9
  %5089 = load i64, ptr %58, align 8, !tbaa !9
  %5090 = sub nsw i64 %5088, %5089
  %5091 = add nsw i64 %5090, 1
  %5092 = load i64, ptr %65, align 8, !tbaa !9
  %5093 = load i64, ptr %30, align 8, !tbaa !9
  %5094 = mul nsw i64 %5092, %5093
  %5095 = add nsw i64 %5091, %5094
  %5096 = getelementptr inbounds %struct.complex, ptr %5087, i64 %5095
  %5097 = load ptr, ptr %21, align 8, !tbaa !5
  %5098 = load i64, ptr %69, align 8, !tbaa !9
  %5099 = load i64, ptr %58, align 8, !tbaa !9
  %5100 = sub nsw i64 %5098, %5099
  %5101 = load i64, ptr %65, align 8, !tbaa !9
  %5102 = add nsw i64 %5101, 1
  %5103 = load i64, ptr %30, align 8, !tbaa !9
  %5104 = mul nsw i64 %5102, %5103
  %5105 = add nsw i64 %5100, %5104
  %5106 = getelementptr inbounds %struct.complex, ptr %5097, i64 %5105
  %5107 = load ptr, ptr %28, align 8, !tbaa !5
  %5108 = load i64, ptr %65, align 8, !tbaa !9
  %5109 = load i64, ptr %59, align 8, !tbaa !9
  %5110 = sub nsw i64 %5108, %5109
  %5111 = getelementptr inbounds float, ptr %5107, i64 %5110
  %5112 = load ptr, ptr %27, align 8, !tbaa !5
  %5113 = load i64, ptr %65, align 8, !tbaa !9
  %5114 = load i64, ptr %59, align 8, !tbaa !9
  %5115 = sub nsw i64 %5113, %5114
  %5116 = getelementptr inbounds %struct.complex, ptr %5112, i64 %5115
  %5117 = call i32 @clartv_(ptr noundef %76, ptr noundef %5096, ptr noundef %77, ptr noundef %5106, ptr noundef %77, ptr noundef %5111, ptr noundef %5116, ptr noundef %69)
  br label %5118

5118:                                             ; preds = %5086, %5075
  br label %5119

5119:                                             ; preds = %5118
  %5120 = load i64, ptr %58, align 8, !tbaa !9
  %5121 = add nsw i64 %5120, -1
  store i64 %5121, ptr %58, align 8, !tbaa !9
  br label %5072, !llvm.loop !60

5122:                                             ; preds = %5072
  br label %5123

5123:                                             ; preds = %5122
  %5124 = load i64, ptr %57, align 8, !tbaa !9
  %5125 = add nsw i64 %5124, 1
  store i64 %5125, ptr %57, align 8, !tbaa !9
  br label %5043, !llvm.loop !61

5126:                                             ; preds = %5043
  %5127 = load ptr, ptr %20, align 8, !tbaa !5
  %5128 = load i64, ptr %5127, align 8, !tbaa !9
  %5129 = icmp sgt i64 %5128, 1
  br i1 %5129, label %5130, label %5188

5130:                                             ; preds = %5126
  %5131 = load i64, ptr %63, align 8, !tbaa !9
  %5132 = load ptr, ptr %19, align 8, !tbaa !5
  %5133 = load i64, ptr %5132, align 8, !tbaa !9
  %5134 = add nsw i64 %5131, %5133
  store i64 %5134, ptr %38, align 8, !tbaa !9
  %5135 = load ptr, ptr %18, align 8, !tbaa !5
  %5136 = load i64, ptr %5135, align 8, !tbaa !9
  %5137 = sub nsw i64 %5136, 1
  store i64 %5137, ptr %56, align 8, !tbaa !9
  br label %5138

5138:                                             ; preds = %5184, %5130
  %5139 = load i64, ptr %56, align 8, !tbaa !9
  %5140 = load i64, ptr %38, align 8, !tbaa !9
  %5141 = icmp sge i64 %5139, %5140
  br i1 %5141, label %5142, label %5187

5142:                                             ; preds = %5138
  %5143 = load ptr, ptr %28, align 8, !tbaa !5
  %5144 = load i64, ptr %56, align 8, !tbaa !9
  %5145 = load ptr, ptr %19, align 8, !tbaa !5
  %5146 = load i64, ptr %5145, align 8, !tbaa !9
  %5147 = sub nsw i64 %5144, %5146
  %5148 = load i64, ptr %59, align 8, !tbaa !9
  %5149 = sub nsw i64 %5147, %5148
  %5150 = getelementptr inbounds float, ptr %5143, i64 %5149
  %5151 = load float, ptr %5150, align 4, !tbaa !14
  %5152 = load ptr, ptr %28, align 8, !tbaa !5
  %5153 = load i64, ptr %56, align 8, !tbaa !9
  %5154 = load i64, ptr %59, align 8, !tbaa !9
  %5155 = sub nsw i64 %5153, %5154
  %5156 = getelementptr inbounds float, ptr %5152, i64 %5155
  store float %5151, ptr %5156, align 4, !tbaa !14
  %5157 = load i64, ptr %56, align 8, !tbaa !9
  %5158 = load i64, ptr %59, align 8, !tbaa !9
  %5159 = sub nsw i64 %5157, %5158
  store i64 %5159, ptr %39, align 8, !tbaa !9
  %5160 = load i64, ptr %56, align 8, !tbaa !9
  %5161 = load ptr, ptr %19, align 8, !tbaa !5
  %5162 = load i64, ptr %5161, align 8, !tbaa !9
  %5163 = sub nsw i64 %5160, %5162
  %5164 = load i64, ptr %59, align 8, !tbaa !9
  %5165 = sub nsw i64 %5163, %5164
  store i64 %5165, ptr %36, align 8, !tbaa !9
  %5166 = load ptr, ptr %27, align 8, !tbaa !5
  %5167 = load i64, ptr %36, align 8, !tbaa !9
  %5168 = getelementptr inbounds %struct.complex, ptr %5166, i64 %5167
  %5169 = getelementptr inbounds %struct.complex, ptr %5168, i32 0, i32 0
  %5170 = load float, ptr %5169, align 4, !tbaa !11
  %5171 = load ptr, ptr %27, align 8, !tbaa !5
  %5172 = load i64, ptr %39, align 8, !tbaa !9
  %5173 = getelementptr inbounds %struct.complex, ptr %5171, i64 %5172
  %5174 = getelementptr inbounds %struct.complex, ptr %5173, i32 0, i32 0
  store float %5170, ptr %5174, align 4, !tbaa !11
  %5175 = load ptr, ptr %27, align 8, !tbaa !5
  %5176 = load i64, ptr %36, align 8, !tbaa !9
  %5177 = getelementptr inbounds %struct.complex, ptr %5175, i64 %5176
  %5178 = getelementptr inbounds %struct.complex, ptr %5177, i32 0, i32 1
  %5179 = load float, ptr %5178, align 4, !tbaa !15
  %5180 = load ptr, ptr %27, align 8, !tbaa !5
  %5181 = load i64, ptr %39, align 8, !tbaa !9
  %5182 = getelementptr inbounds %struct.complex, ptr %5180, i64 %5181
  %5183 = getelementptr inbounds %struct.complex, ptr %5182, i32 0, i32 1
  store float %5179, ptr %5183, align 4, !tbaa !15
  br label %5184

5184:                                             ; preds = %5142
  %5185 = load i64, ptr %56, align 8, !tbaa !9
  %5186 = add nsw i64 %5185, -1
  store i64 %5186, ptr %56, align 8, !tbaa !9
  br label %5138, !llvm.loop !62

5187:                                             ; preds = %5138
  br label %5188

5188:                                             ; preds = %5187, %5126
  br label %5189

5189:                                             ; preds = %5188, %2758
  br label %248

5190:                                             ; preds = %313, %300
  store i64 1, ptr %80, align 8, !tbaa !9
  store i64 0, ptr %55, align 8, !tbaa !9
  br label %5191

5191:                                             ; preds = %10223, %5243, %5190
  %5192 = load i64, ptr %80, align 8, !tbaa !9
  %5193 = icmp ne i64 %5192, 0
  br i1 %5193, label %5194, label %5245

5194:                                             ; preds = %5191
  %5195 = load i64, ptr %55, align 8, !tbaa !9
  %5196 = add nsw i64 %5195, 1
  store i64 %5196, ptr %55, align 8, !tbaa !9
  %5197 = load ptr, ptr %20, align 8, !tbaa !5
  %5198 = load i64, ptr %5197, align 8, !tbaa !9
  store i64 %5198, ptr %38, align 8, !tbaa !9
  %5199 = load i64, ptr %59, align 8, !tbaa !9
  %5200 = load i64, ptr %55, align 8, !tbaa !9
  %5201 = sub nsw i64 %5199, %5200
  store i64 %5201, ptr %39, align 8, !tbaa !9
  %5202 = load i64, ptr %38, align 8, !tbaa !9
  %5203 = load i64, ptr %39, align 8, !tbaa !9
  %5204 = icmp sle i64 %5202, %5203
  br i1 %5204, label %5205, label %5207

5205:                                             ; preds = %5194
  %5206 = load i64, ptr %38, align 8, !tbaa !9
  br label %5209

5207:                                             ; preds = %5194
  %5208 = load i64, ptr %39, align 8, !tbaa !9
  br label %5209

5209:                                             ; preds = %5207, %5205
  %5210 = phi i64 [ %5206, %5205 ], [ %5208, %5207 ]
  store i64 %5210, ptr %75, align 8, !tbaa !9
  %5211 = load i64, ptr %55, align 8, !tbaa !9
  %5212 = add nsw i64 %5211, 1
  store i64 %5212, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %38, align 8, !tbaa !9
  %5213 = load i64, ptr %55, align 8, !tbaa !9
  %5214 = load ptr, ptr %19, align 8, !tbaa !5
  %5215 = load i64, ptr %5214, align 8, !tbaa !9
  %5216 = sub nsw i64 %5213, %5215
  store i64 %5216, ptr %39, align 8, !tbaa !9
  %5217 = load i64, ptr %38, align 8, !tbaa !9
  %5218 = load i64, ptr %39, align 8, !tbaa !9
  %5219 = icmp sge i64 %5217, %5218
  br i1 %5219, label %5220, label %5222

5220:                                             ; preds = %5209
  %5221 = load i64, ptr %38, align 8, !tbaa !9
  br label %5224

5222:                                             ; preds = %5209
  %5223 = load i64, ptr %39, align 8, !tbaa !9
  br label %5224

5224:                                             ; preds = %5222, %5220
  %5225 = phi i64 [ %5221, %5220 ], [ %5223, %5222 ]
  store i64 %5225, ptr %62, align 8, !tbaa !9
  %5226 = load i64, ptr %55, align 8, !tbaa !9
  %5227 = load i64, ptr %75, align 8, !tbaa !9
  %5228 = add nsw i64 %5226, %5227
  %5229 = load i64, ptr %69, align 8, !tbaa !9
  %5230 = sub nsw i64 %5228, %5229
  store i64 %5230, ptr %63, align 8, !tbaa !9
  %5231 = load i64, ptr %55, align 8, !tbaa !9
  %5232 = load i64, ptr %59, align 8, !tbaa !9
  %5233 = icmp sgt i64 %5231, %5232
  br i1 %5233, label %5234, label %5244

5234:                                             ; preds = %5224
  store i64 0, ptr %80, align 8, !tbaa !9
  %5235 = load i64, ptr %55, align 8, !tbaa !9
  %5236 = add nsw i64 %5235, -1
  store i64 %5236, ptr %55, align 8, !tbaa !9
  %5237 = load i64, ptr %59, align 8, !tbaa !9
  %5238 = add nsw i64 %5237, 1
  store i64 %5238, ptr %61, align 8, !tbaa !9
  %5239 = load ptr, ptr %19, align 8, !tbaa !5
  %5240 = load i64, ptr %5239, align 8, !tbaa !9
  %5241 = icmp eq i64 %5240, 0
  br i1 %5241, label %5242, label %5243

5242:                                             ; preds = %5234
  store i32 0, ptr %15, align 4
  store i32 1, ptr %81, align 4
  br label %10224

5243:                                             ; preds = %5234
  br label %5191

5244:                                             ; preds = %5224
  br label %5254

5245:                                             ; preds = %5191
  %5246 = load ptr, ptr %19, align 8, !tbaa !5
  %5247 = load i64, ptr %5246, align 8, !tbaa !9
  %5248 = load i64, ptr %55, align 8, !tbaa !9
  %5249 = sub nsw i64 %5248, %5247
  store i64 %5249, ptr %55, align 8, !tbaa !9
  %5250 = load i64, ptr %55, align 8, !tbaa !9
  %5251 = icmp slt i64 %5250, 2
  br i1 %5251, label %5252, label %5253

5252:                                             ; preds = %5245
  store i32 0, ptr %15, align 4
  store i32 1, ptr %81, align 4
  br label %10224

5253:                                             ; preds = %5245
  br label %5254

5254:                                             ; preds = %5253, %5244
  %5255 = load i64, ptr %55, align 8, !tbaa !9
  %5256 = load i64, ptr %59, align 8, !tbaa !9
  %5257 = load i64, ptr %75, align 8, !tbaa !9
  %5258 = sub nsw i64 %5256, %5257
  %5259 = icmp slt i64 %5255, %5258
  br i1 %5259, label %5260, label %5262

5260:                                             ; preds = %5254
  %5261 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %5261, ptr %68, align 8, !tbaa !9
  br label %5265

5262:                                             ; preds = %5254
  %5263 = load ptr, ptr %18, align 8, !tbaa !5
  %5264 = load i64, ptr %5263, align 8, !tbaa !9
  store i64 %5264, ptr %68, align 8, !tbaa !9
  br label %5265

5265:                                             ; preds = %5262, %5260
  %5266 = load i64, ptr %78, align 8, !tbaa !9
  %5267 = icmp ne i64 %5266, 0
  br i1 %5267, label %5268, label %7754

5268:                                             ; preds = %5265
  %5269 = load i64, ptr %80, align 8, !tbaa !9
  %5270 = icmp ne i64 %5269, 0
  br i1 %5270, label %5271, label %6067

5271:                                             ; preds = %5268
  %5272 = load i64, ptr %70, align 8, !tbaa !9
  %5273 = load i64, ptr %55, align 8, !tbaa !9
  %5274 = load i64, ptr %32, align 8, !tbaa !9
  %5275 = mul nsw i64 %5273, %5274
  %5276 = add nsw i64 %5272, %5275
  store i64 %5276, ptr %38, align 8, !tbaa !9
  %5277 = load ptr, ptr %23, align 8, !tbaa !5
  %5278 = load i64, ptr %38, align 8, !tbaa !9
  %5279 = getelementptr inbounds %struct.complex, ptr %5277, i64 %5278
  %5280 = getelementptr inbounds %struct.complex, ptr %5279, i32 0, i32 0
  %5281 = load float, ptr %5280, align 4, !tbaa !11
  store float %5281, ptr %74, align 4, !tbaa !14
  %5282 = load i64, ptr %69, align 8, !tbaa !9
  %5283 = load i64, ptr %55, align 8, !tbaa !9
  %5284 = load i64, ptr %30, align 8, !tbaa !9
  %5285 = mul nsw i64 %5283, %5284
  %5286 = add nsw i64 %5282, %5285
  store i64 %5286, ptr %38, align 8, !tbaa !9
  %5287 = load i64, ptr %69, align 8, !tbaa !9
  %5288 = load i64, ptr %55, align 8, !tbaa !9
  %5289 = load i64, ptr %30, align 8, !tbaa !9
  %5290 = mul nsw i64 %5288, %5289
  %5291 = add nsw i64 %5287, %5290
  store i64 %5291, ptr %39, align 8, !tbaa !9
  %5292 = load ptr, ptr %21, align 8, !tbaa !5
  %5293 = load i64, ptr %39, align 8, !tbaa !9
  %5294 = getelementptr inbounds %struct.complex, ptr %5292, i64 %5293
  %5295 = getelementptr inbounds %struct.complex, ptr %5294, i32 0, i32 0
  %5296 = load float, ptr %5295, align 4, !tbaa !11
  %5297 = load float, ptr %74, align 4, !tbaa !14
  %5298 = fdiv float %5296, %5297
  %5299 = load float, ptr %74, align 4, !tbaa !14
  %5300 = fdiv float %5298, %5299
  store float %5300, ptr %44, align 4, !tbaa !14
  %5301 = load float, ptr %44, align 4, !tbaa !14
  %5302 = load ptr, ptr %21, align 8, !tbaa !5
  %5303 = load i64, ptr %38, align 8, !tbaa !9
  %5304 = getelementptr inbounds %struct.complex, ptr %5302, i64 %5303
  %5305 = getelementptr inbounds %struct.complex, ptr %5304, i32 0, i32 0
  store float %5301, ptr %5305, align 4, !tbaa !11
  %5306 = load ptr, ptr %21, align 8, !tbaa !5
  %5307 = load i64, ptr %38, align 8, !tbaa !9
  %5308 = getelementptr inbounds %struct.complex, ptr %5306, i64 %5307
  %5309 = getelementptr inbounds %struct.complex, ptr %5308, i32 0, i32 1
  store float 0.000000e+00, ptr %5309, align 4, !tbaa !15
  %5310 = load i64, ptr %55, align 8, !tbaa !9
  %5311 = sub nsw i64 %5310, 1
  store i64 %5311, ptr %38, align 8, !tbaa !9
  %5312 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %5312, ptr %56, align 8, !tbaa !9
  br label %5313

5313:                                             ; preds = %5364, %5271
  %5314 = load i64, ptr %56, align 8, !tbaa !9
  %5315 = load i64, ptr %38, align 8, !tbaa !9
  %5316 = icmp sle i64 %5314, %5315
  br i1 %5316, label %5317, label %5367

5317:                                             ; preds = %5313
  %5318 = load i64, ptr %56, align 8, !tbaa !9
  %5319 = load i64, ptr %55, align 8, !tbaa !9
  %5320 = sub nsw i64 %5318, %5319
  %5321 = load i64, ptr %69, align 8, !tbaa !9
  %5322 = add nsw i64 %5320, %5321
  %5323 = load i64, ptr %55, align 8, !tbaa !9
  %5324 = load i64, ptr %30, align 8, !tbaa !9
  %5325 = mul nsw i64 %5323, %5324
  %5326 = add nsw i64 %5322, %5325
  store i64 %5326, ptr %39, align 8, !tbaa !9
  %5327 = load i64, ptr %56, align 8, !tbaa !9
  %5328 = load i64, ptr %55, align 8, !tbaa !9
  %5329 = sub nsw i64 %5327, %5328
  %5330 = load i64, ptr %69, align 8, !tbaa !9
  %5331 = add nsw i64 %5329, %5330
  %5332 = load i64, ptr %55, align 8, !tbaa !9
  %5333 = load i64, ptr %30, align 8, !tbaa !9
  %5334 = mul nsw i64 %5332, %5333
  %5335 = add nsw i64 %5331, %5334
  store i64 %5335, ptr %36, align 8, !tbaa !9
  %5336 = load ptr, ptr %21, align 8, !tbaa !5
  %5337 = load i64, ptr %36, align 8, !tbaa !9
  %5338 = getelementptr inbounds %struct.complex, ptr %5336, i64 %5337
  %5339 = getelementptr inbounds %struct.complex, ptr %5338, i32 0, i32 0
  %5340 = load float, ptr %5339, align 4, !tbaa !11
  %5341 = load float, ptr %74, align 4, !tbaa !14
  %5342 = fdiv float %5340, %5341
  %5343 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %5342, ptr %5343, align 4, !tbaa !11
  %5344 = load ptr, ptr %21, align 8, !tbaa !5
  %5345 = load i64, ptr %36, align 8, !tbaa !9
  %5346 = getelementptr inbounds %struct.complex, ptr %5344, i64 %5345
  %5347 = getelementptr inbounds %struct.complex, ptr %5346, i32 0, i32 1
  %5348 = load float, ptr %5347, align 4, !tbaa !15
  %5349 = load float, ptr %74, align 4, !tbaa !14
  %5350 = fdiv float %5348, %5349
  %5351 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %5350, ptr %5351, align 4, !tbaa !15
  %5352 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %5353 = load float, ptr %5352, align 4, !tbaa !11
  %5354 = load ptr, ptr %21, align 8, !tbaa !5
  %5355 = load i64, ptr %39, align 8, !tbaa !9
  %5356 = getelementptr inbounds %struct.complex, ptr %5354, i64 %5355
  %5357 = getelementptr inbounds %struct.complex, ptr %5356, i32 0, i32 0
  store float %5353, ptr %5357, align 4, !tbaa !11
  %5358 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %5359 = load float, ptr %5358, align 4, !tbaa !15
  %5360 = load ptr, ptr %21, align 8, !tbaa !5
  %5361 = load i64, ptr %39, align 8, !tbaa !9
  %5362 = getelementptr inbounds %struct.complex, ptr %5360, i64 %5361
  %5363 = getelementptr inbounds %struct.complex, ptr %5362, i32 0, i32 1
  store float %5359, ptr %5363, align 4, !tbaa !15
  br label %5364

5364:                                             ; preds = %5317
  %5365 = load i64, ptr %56, align 8, !tbaa !9
  %5366 = add nsw i64 %5365, 1
  store i64 %5366, ptr %56, align 8, !tbaa !9
  br label %5313, !llvm.loop !63

5367:                                             ; preds = %5313
  %5368 = load ptr, ptr %18, align 8, !tbaa !5
  %5369 = load i64, ptr %5368, align 8, !tbaa !9
  store i64 %5369, ptr %39, align 8, !tbaa !9
  %5370 = load i64, ptr %55, align 8, !tbaa !9
  %5371 = load ptr, ptr %19, align 8, !tbaa !5
  %5372 = load i64, ptr %5371, align 8, !tbaa !9
  %5373 = add nsw i64 %5370, %5372
  store i64 %5373, ptr %36, align 8, !tbaa !9
  %5374 = load i64, ptr %39, align 8, !tbaa !9
  %5375 = load i64, ptr %36, align 8, !tbaa !9
  %5376 = icmp sle i64 %5374, %5375
  br i1 %5376, label %5377, label %5379

5377:                                             ; preds = %5367
  %5378 = load i64, ptr %39, align 8, !tbaa !9
  br label %5381

5379:                                             ; preds = %5367
  %5380 = load i64, ptr %36, align 8, !tbaa !9
  br label %5381

5381:                                             ; preds = %5379, %5377
  %5382 = phi i64 [ %5378, %5377 ], [ %5380, %5379 ]
  store i64 %5382, ptr %38, align 8, !tbaa !9
  %5383 = load i64, ptr %55, align 8, !tbaa !9
  %5384 = add nsw i64 %5383, 1
  store i64 %5384, ptr %56, align 8, !tbaa !9
  br label %5385

5385:                                             ; preds = %5436, %5381
  %5386 = load i64, ptr %56, align 8, !tbaa !9
  %5387 = load i64, ptr %38, align 8, !tbaa !9
  %5388 = icmp sle i64 %5386, %5387
  br i1 %5388, label %5389, label %5439

5389:                                             ; preds = %5385
  %5390 = load i64, ptr %55, align 8, !tbaa !9
  %5391 = load i64, ptr %56, align 8, !tbaa !9
  %5392 = sub nsw i64 %5390, %5391
  %5393 = load i64, ptr %69, align 8, !tbaa !9
  %5394 = add nsw i64 %5392, %5393
  %5395 = load i64, ptr %56, align 8, !tbaa !9
  %5396 = load i64, ptr %30, align 8, !tbaa !9
  %5397 = mul nsw i64 %5395, %5396
  %5398 = add nsw i64 %5394, %5397
  store i64 %5398, ptr %39, align 8, !tbaa !9
  %5399 = load i64, ptr %55, align 8, !tbaa !9
  %5400 = load i64, ptr %56, align 8, !tbaa !9
  %5401 = sub nsw i64 %5399, %5400
  %5402 = load i64, ptr %69, align 8, !tbaa !9
  %5403 = add nsw i64 %5401, %5402
  %5404 = load i64, ptr %56, align 8, !tbaa !9
  %5405 = load i64, ptr %30, align 8, !tbaa !9
  %5406 = mul nsw i64 %5404, %5405
  %5407 = add nsw i64 %5403, %5406
  store i64 %5407, ptr %36, align 8, !tbaa !9
  %5408 = load ptr, ptr %21, align 8, !tbaa !5
  %5409 = load i64, ptr %36, align 8, !tbaa !9
  %5410 = getelementptr inbounds %struct.complex, ptr %5408, i64 %5409
  %5411 = getelementptr inbounds %struct.complex, ptr %5410, i32 0, i32 0
  %5412 = load float, ptr %5411, align 4, !tbaa !11
  %5413 = load float, ptr %74, align 4, !tbaa !14
  %5414 = fdiv float %5412, %5413
  %5415 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %5414, ptr %5415, align 4, !tbaa !11
  %5416 = load ptr, ptr %21, align 8, !tbaa !5
  %5417 = load i64, ptr %36, align 8, !tbaa !9
  %5418 = getelementptr inbounds %struct.complex, ptr %5416, i64 %5417
  %5419 = getelementptr inbounds %struct.complex, ptr %5418, i32 0, i32 1
  %5420 = load float, ptr %5419, align 4, !tbaa !15
  %5421 = load float, ptr %74, align 4, !tbaa !14
  %5422 = fdiv float %5420, %5421
  %5423 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %5422, ptr %5423, align 4, !tbaa !15
  %5424 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %5425 = load float, ptr %5424, align 4, !tbaa !11
  %5426 = load ptr, ptr %21, align 8, !tbaa !5
  %5427 = load i64, ptr %39, align 8, !tbaa !9
  %5428 = getelementptr inbounds %struct.complex, ptr %5426, i64 %5427
  %5429 = getelementptr inbounds %struct.complex, ptr %5428, i32 0, i32 0
  store float %5425, ptr %5429, align 4, !tbaa !11
  %5430 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %5431 = load float, ptr %5430, align 4, !tbaa !15
  %5432 = load ptr, ptr %21, align 8, !tbaa !5
  %5433 = load i64, ptr %39, align 8, !tbaa !9
  %5434 = getelementptr inbounds %struct.complex, ptr %5432, i64 %5433
  %5435 = getelementptr inbounds %struct.complex, ptr %5434, i32 0, i32 1
  store float %5431, ptr %5435, align 4, !tbaa !15
  br label %5436

5436:                                             ; preds = %5389
  %5437 = load i64, ptr %56, align 8, !tbaa !9
  %5438 = add nsw i64 %5437, 1
  store i64 %5438, ptr %56, align 8, !tbaa !9
  br label %5385, !llvm.loop !64

5439:                                             ; preds = %5385
  %5440 = load i64, ptr %55, align 8, !tbaa !9
  %5441 = load i64, ptr %75, align 8, !tbaa !9
  %5442 = add nsw i64 %5440, %5441
  store i64 %5442, ptr %38, align 8, !tbaa !9
  %5443 = load i64, ptr %55, align 8, !tbaa !9
  %5444 = add nsw i64 %5443, 1
  store i64 %5444, ptr %57, align 8, !tbaa !9
  br label %5445

5445:                                             ; preds = %5845, %5439
  %5446 = load i64, ptr %57, align 8, !tbaa !9
  %5447 = load i64, ptr %38, align 8, !tbaa !9
  %5448 = icmp sle i64 %5446, %5447
  br i1 %5448, label %5449, label %5848

5449:                                             ; preds = %5445
  %5450 = load i64, ptr %55, align 8, !tbaa !9
  %5451 = load i64, ptr %75, align 8, !tbaa !9
  %5452 = add nsw i64 %5450, %5451
  store i64 %5452, ptr %39, align 8, !tbaa !9
  %5453 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %5453, ptr %56, align 8, !tbaa !9
  br label %5454

5454:                                             ; preds = %5710, %5449
  %5455 = load i64, ptr %56, align 8, !tbaa !9
  %5456 = load i64, ptr %39, align 8, !tbaa !9
  %5457 = icmp sle i64 %5455, %5456
  br i1 %5457, label %5458, label %5713

5458:                                             ; preds = %5454
  %5459 = load i64, ptr %57, align 8, !tbaa !9
  %5460 = load i64, ptr %56, align 8, !tbaa !9
  %5461 = sub nsw i64 %5459, %5460
  %5462 = load i64, ptr %69, align 8, !tbaa !9
  %5463 = add nsw i64 %5461, %5462
  %5464 = load i64, ptr %56, align 8, !tbaa !9
  %5465 = load i64, ptr %30, align 8, !tbaa !9
  %5466 = mul nsw i64 %5464, %5465
  %5467 = add nsw i64 %5463, %5466
  store i64 %5467, ptr %36, align 8, !tbaa !9
  %5468 = load i64, ptr %57, align 8, !tbaa !9
  %5469 = load i64, ptr %56, align 8, !tbaa !9
  %5470 = sub nsw i64 %5468, %5469
  %5471 = load i64, ptr %69, align 8, !tbaa !9
  %5472 = add nsw i64 %5470, %5471
  %5473 = load i64, ptr %56, align 8, !tbaa !9
  %5474 = load i64, ptr %30, align 8, !tbaa !9
  %5475 = mul nsw i64 %5473, %5474
  %5476 = add nsw i64 %5472, %5475
  store i64 %5476, ptr %37, align 8, !tbaa !9
  %5477 = load i64, ptr %55, align 8, !tbaa !9
  %5478 = load i64, ptr %56, align 8, !tbaa !9
  %5479 = sub nsw i64 %5477, %5478
  %5480 = load i64, ptr %70, align 8, !tbaa !9
  %5481 = add nsw i64 %5479, %5480
  %5482 = load i64, ptr %56, align 8, !tbaa !9
  %5483 = load i64, ptr %32, align 8, !tbaa !9
  %5484 = mul nsw i64 %5482, %5483
  %5485 = add nsw i64 %5481, %5484
  store i64 %5485, ptr %40, align 8, !tbaa !9
  %5486 = load ptr, ptr %21, align 8, !tbaa !5
  %5487 = load i64, ptr %55, align 8, !tbaa !9
  %5488 = load i64, ptr %57, align 8, !tbaa !9
  %5489 = sub nsw i64 %5487, %5488
  %5490 = load i64, ptr %69, align 8, !tbaa !9
  %5491 = add nsw i64 %5489, %5490
  %5492 = load i64, ptr %57, align 8, !tbaa !9
  %5493 = load i64, ptr %30, align 8, !tbaa !9
  %5494 = mul nsw i64 %5492, %5493
  %5495 = add nsw i64 %5491, %5494
  %5496 = getelementptr inbounds %struct.complex, ptr %5486, i64 %5495
  call void @r_cnjg(ptr noundef %49, ptr noundef %5496)
  %5497 = load ptr, ptr %23, align 8, !tbaa !5
  %5498 = load i64, ptr %40, align 8, !tbaa !9
  %5499 = getelementptr inbounds %struct.complex, ptr %5497, i64 %5498
  %5500 = getelementptr inbounds %struct.complex, ptr %5499, i32 0, i32 0
  %5501 = load float, ptr %5500, align 4, !tbaa !11
  %5502 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %5503 = load float, ptr %5502, align 4, !tbaa !11
  %5504 = load ptr, ptr %23, align 8, !tbaa !5
  %5505 = load i64, ptr %40, align 8, !tbaa !9
  %5506 = getelementptr inbounds %struct.complex, ptr %5504, i64 %5505
  %5507 = getelementptr inbounds %struct.complex, ptr %5506, i32 0, i32 1
  %5508 = load float, ptr %5507, align 4, !tbaa !15
  %5509 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %5510 = load float, ptr %5509, align 4, !tbaa !15
  %5511 = fmul float %5508, %5510
  %5512 = fneg float %5511
  %5513 = call float @llvm.fmuladd.f32(float %5501, float %5503, float %5512)
  %5514 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %5513, ptr %5514, align 4, !tbaa !11
  %5515 = load ptr, ptr %23, align 8, !tbaa !5
  %5516 = load i64, ptr %40, align 8, !tbaa !9
  %5517 = getelementptr inbounds %struct.complex, ptr %5515, i64 %5516
  %5518 = getelementptr inbounds %struct.complex, ptr %5517, i32 0, i32 0
  %5519 = load float, ptr %5518, align 4, !tbaa !11
  %5520 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %5521 = load float, ptr %5520, align 4, !tbaa !15
  %5522 = load ptr, ptr %23, align 8, !tbaa !5
  %5523 = load i64, ptr %40, align 8, !tbaa !9
  %5524 = getelementptr inbounds %struct.complex, ptr %5522, i64 %5523
  %5525 = getelementptr inbounds %struct.complex, ptr %5524, i32 0, i32 1
  %5526 = load float, ptr %5525, align 4, !tbaa !15
  %5527 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %5528 = load float, ptr %5527, align 4, !tbaa !11
  %5529 = fmul float %5526, %5528
  %5530 = call float @llvm.fmuladd.f32(float %5519, float %5521, float %5529)
  %5531 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %5530, ptr %5531, align 4, !tbaa !15
  %5532 = load ptr, ptr %21, align 8, !tbaa !5
  %5533 = load i64, ptr %37, align 8, !tbaa !9
  %5534 = getelementptr inbounds %struct.complex, ptr %5532, i64 %5533
  %5535 = getelementptr inbounds %struct.complex, ptr %5534, i32 0, i32 0
  %5536 = load float, ptr %5535, align 4, !tbaa !11
  %5537 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %5538 = load float, ptr %5537, align 4, !tbaa !11
  %5539 = fsub float %5536, %5538
  %5540 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %5539, ptr %5540, align 4, !tbaa !11
  %5541 = load ptr, ptr %21, align 8, !tbaa !5
  %5542 = load i64, ptr %37, align 8, !tbaa !9
  %5543 = getelementptr inbounds %struct.complex, ptr %5541, i64 %5542
  %5544 = getelementptr inbounds %struct.complex, ptr %5543, i32 0, i32 1
  %5545 = load float, ptr %5544, align 4, !tbaa !15
  %5546 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %5547 = load float, ptr %5546, align 4, !tbaa !15
  %5548 = fsub float %5545, %5547
  %5549 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %5548, ptr %5549, align 4, !tbaa !15
  %5550 = load ptr, ptr %23, align 8, !tbaa !5
  %5551 = load i64, ptr %55, align 8, !tbaa !9
  %5552 = load i64, ptr %57, align 8, !tbaa !9
  %5553 = sub nsw i64 %5551, %5552
  %5554 = load i64, ptr %70, align 8, !tbaa !9
  %5555 = add nsw i64 %5553, %5554
  %5556 = load i64, ptr %57, align 8, !tbaa !9
  %5557 = load i64, ptr %32, align 8, !tbaa !9
  %5558 = mul nsw i64 %5556, %5557
  %5559 = add nsw i64 %5555, %5558
  %5560 = getelementptr inbounds %struct.complex, ptr %5550, i64 %5559
  call void @r_cnjg(ptr noundef %51, ptr noundef %5560)
  %5561 = load i64, ptr %55, align 8, !tbaa !9
  %5562 = load i64, ptr %56, align 8, !tbaa !9
  %5563 = sub nsw i64 %5561, %5562
  %5564 = load i64, ptr %69, align 8, !tbaa !9
  %5565 = add nsw i64 %5563, %5564
  %5566 = load i64, ptr %56, align 8, !tbaa !9
  %5567 = load i64, ptr %30, align 8, !tbaa !9
  %5568 = mul nsw i64 %5566, %5567
  %5569 = add nsw i64 %5565, %5568
  store i64 %5569, ptr %41, align 8, !tbaa !9
  %5570 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %5571 = load float, ptr %5570, align 4, !tbaa !11
  %5572 = load ptr, ptr %21, align 8, !tbaa !5
  %5573 = load i64, ptr %41, align 8, !tbaa !9
  %5574 = getelementptr inbounds %struct.complex, ptr %5572, i64 %5573
  %5575 = getelementptr inbounds %struct.complex, ptr %5574, i32 0, i32 0
  %5576 = load float, ptr %5575, align 4, !tbaa !11
  %5577 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %5578 = load float, ptr %5577, align 4, !tbaa !15
  %5579 = load ptr, ptr %21, align 8, !tbaa !5
  %5580 = load i64, ptr %41, align 8, !tbaa !9
  %5581 = getelementptr inbounds %struct.complex, ptr %5579, i64 %5580
  %5582 = getelementptr inbounds %struct.complex, ptr %5581, i32 0, i32 1
  %5583 = load float, ptr %5582, align 4, !tbaa !15
  %5584 = fmul float %5578, %5583
  %5585 = fneg float %5584
  %5586 = call float @llvm.fmuladd.f32(float %5571, float %5576, float %5585)
  %5587 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %5586, ptr %5587, align 4, !tbaa !11
  %5588 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %5589 = load float, ptr %5588, align 4, !tbaa !11
  %5590 = load ptr, ptr %21, align 8, !tbaa !5
  %5591 = load i64, ptr %41, align 8, !tbaa !9
  %5592 = getelementptr inbounds %struct.complex, ptr %5590, i64 %5591
  %5593 = getelementptr inbounds %struct.complex, ptr %5592, i32 0, i32 1
  %5594 = load float, ptr %5593, align 4, !tbaa !15
  %5595 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %5596 = load float, ptr %5595, align 4, !tbaa !15
  %5597 = load ptr, ptr %21, align 8, !tbaa !5
  %5598 = load i64, ptr %41, align 8, !tbaa !9
  %5599 = getelementptr inbounds %struct.complex, ptr %5597, i64 %5598
  %5600 = getelementptr inbounds %struct.complex, ptr %5599, i32 0, i32 0
  %5601 = load float, ptr %5600, align 4, !tbaa !11
  %5602 = fmul float %5596, %5601
  %5603 = call float @llvm.fmuladd.f32(float %5589, float %5594, float %5602)
  %5604 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %5603, ptr %5604, align 4, !tbaa !15
  %5605 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %5606 = load float, ptr %5605, align 4, !tbaa !11
  %5607 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %5608 = load float, ptr %5607, align 4, !tbaa !11
  %5609 = fsub float %5606, %5608
  %5610 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %5609, ptr %5610, align 4, !tbaa !11
  %5611 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %5612 = load float, ptr %5611, align 4, !tbaa !15
  %5613 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %5614 = load float, ptr %5613, align 4, !tbaa !15
  %5615 = fsub float %5612, %5614
  %5616 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %5615, ptr %5616, align 4, !tbaa !15
  %5617 = load i64, ptr %69, align 8, !tbaa !9
  %5618 = load i64, ptr %55, align 8, !tbaa !9
  %5619 = load i64, ptr %30, align 8, !tbaa !9
  %5620 = mul nsw i64 %5618, %5619
  %5621 = add nsw i64 %5617, %5620
  store i64 %5621, ptr %42, align 8, !tbaa !9
  %5622 = load ptr, ptr %21, align 8, !tbaa !5
  %5623 = load i64, ptr %42, align 8, !tbaa !9
  %5624 = getelementptr inbounds %struct.complex, ptr %5622, i64 %5623
  %5625 = getelementptr inbounds %struct.complex, ptr %5624, i32 0, i32 0
  %5626 = load float, ptr %5625, align 4, !tbaa !11
  store float %5626, ptr %44, align 4, !tbaa !14
  %5627 = load i64, ptr %55, align 8, !tbaa !9
  %5628 = load i64, ptr %56, align 8, !tbaa !9
  %5629 = sub nsw i64 %5627, %5628
  %5630 = load i64, ptr %70, align 8, !tbaa !9
  %5631 = add nsw i64 %5629, %5630
  %5632 = load i64, ptr %56, align 8, !tbaa !9
  %5633 = load i64, ptr %32, align 8, !tbaa !9
  %5634 = mul nsw i64 %5632, %5633
  %5635 = add nsw i64 %5631, %5634
  store i64 %5635, ptr %43, align 8, !tbaa !9
  %5636 = load float, ptr %44, align 4, !tbaa !14
  %5637 = load ptr, ptr %23, align 8, !tbaa !5
  %5638 = load i64, ptr %43, align 8, !tbaa !9
  %5639 = getelementptr inbounds %struct.complex, ptr %5637, i64 %5638
  %5640 = getelementptr inbounds %struct.complex, ptr %5639, i32 0, i32 0
  %5641 = load float, ptr %5640, align 4, !tbaa !11
  %5642 = fmul float %5636, %5641
  %5643 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  store float %5642, ptr %5643, align 4, !tbaa !11
  %5644 = load float, ptr %44, align 4, !tbaa !14
  %5645 = load ptr, ptr %23, align 8, !tbaa !5
  %5646 = load i64, ptr %43, align 8, !tbaa !9
  %5647 = getelementptr inbounds %struct.complex, ptr %5645, i64 %5646
  %5648 = getelementptr inbounds %struct.complex, ptr %5647, i32 0, i32 1
  %5649 = load float, ptr %5648, align 4, !tbaa !15
  %5650 = fmul float %5644, %5649
  %5651 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  store float %5650, ptr %5651, align 4, !tbaa !15
  %5652 = load ptr, ptr %23, align 8, !tbaa !5
  %5653 = load i64, ptr %55, align 8, !tbaa !9
  %5654 = load i64, ptr %57, align 8, !tbaa !9
  %5655 = sub nsw i64 %5653, %5654
  %5656 = load i64, ptr %70, align 8, !tbaa !9
  %5657 = add nsw i64 %5655, %5656
  %5658 = load i64, ptr %57, align 8, !tbaa !9
  %5659 = load i64, ptr %32, align 8, !tbaa !9
  %5660 = mul nsw i64 %5658, %5659
  %5661 = add nsw i64 %5657, %5660
  %5662 = getelementptr inbounds %struct.complex, ptr %5652, i64 %5661
  call void @r_cnjg(ptr noundef %54, ptr noundef %5662)
  %5663 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %5664 = load float, ptr %5663, align 4, !tbaa !11
  %5665 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %5666 = load float, ptr %5665, align 4, !tbaa !11
  %5667 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %5668 = load float, ptr %5667, align 4, !tbaa !15
  %5669 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %5670 = load float, ptr %5669, align 4, !tbaa !15
  %5671 = fmul float %5668, %5670
  %5672 = fneg float %5671
  %5673 = call float @llvm.fmuladd.f32(float %5664, float %5666, float %5672)
  %5674 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %5673, ptr %5674, align 4, !tbaa !11
  %5675 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %5676 = load float, ptr %5675, align 4, !tbaa !11
  %5677 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %5678 = load float, ptr %5677, align 4, !tbaa !15
  %5679 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %5680 = load float, ptr %5679, align 4, !tbaa !15
  %5681 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %5682 = load float, ptr %5681, align 4, !tbaa !11
  %5683 = fmul float %5680, %5682
  %5684 = call float @llvm.fmuladd.f32(float %5676, float %5678, float %5683)
  %5685 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %5684, ptr %5685, align 4, !tbaa !15
  %5686 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %5687 = load float, ptr %5686, align 4, !tbaa !11
  %5688 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %5689 = load float, ptr %5688, align 4, !tbaa !11
  %5690 = fadd float %5687, %5689
  %5691 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %5690, ptr %5691, align 4, !tbaa !11
  %5692 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %5693 = load float, ptr %5692, align 4, !tbaa !15
  %5694 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %5695 = load float, ptr %5694, align 4, !tbaa !15
  %5696 = fadd float %5693, %5695
  %5697 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %5696, ptr %5697, align 4, !tbaa !15
  %5698 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %5699 = load float, ptr %5698, align 4, !tbaa !11
  %5700 = load ptr, ptr %21, align 8, !tbaa !5
  %5701 = load i64, ptr %36, align 8, !tbaa !9
  %5702 = getelementptr inbounds %struct.complex, ptr %5700, i64 %5701
  %5703 = getelementptr inbounds %struct.complex, ptr %5702, i32 0, i32 0
  store float %5699, ptr %5703, align 4, !tbaa !11
  %5704 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %5705 = load float, ptr %5704, align 4, !tbaa !15
  %5706 = load ptr, ptr %21, align 8, !tbaa !5
  %5707 = load i64, ptr %36, align 8, !tbaa !9
  %5708 = getelementptr inbounds %struct.complex, ptr %5706, i64 %5707
  %5709 = getelementptr inbounds %struct.complex, ptr %5708, i32 0, i32 1
  store float %5705, ptr %5709, align 4, !tbaa !15
  br label %5710

5710:                                             ; preds = %5458
  %5711 = load i64, ptr %56, align 8, !tbaa !9
  %5712 = add nsw i64 %5711, 1
  store i64 %5712, ptr %56, align 8, !tbaa !9
  br label %5454, !llvm.loop !65

5713:                                             ; preds = %5454
  %5714 = load ptr, ptr %18, align 8, !tbaa !5
  %5715 = load i64, ptr %5714, align 8, !tbaa !9
  store i64 %5715, ptr %36, align 8, !tbaa !9
  %5716 = load i64, ptr %55, align 8, !tbaa !9
  %5717 = load ptr, ptr %19, align 8, !tbaa !5
  %5718 = load i64, ptr %5717, align 8, !tbaa !9
  %5719 = add nsw i64 %5716, %5718
  store i64 %5719, ptr %37, align 8, !tbaa !9
  %5720 = load i64, ptr %36, align 8, !tbaa !9
  %5721 = load i64, ptr %37, align 8, !tbaa !9
  %5722 = icmp sle i64 %5720, %5721
  br i1 %5722, label %5723, label %5725

5723:                                             ; preds = %5713
  %5724 = load i64, ptr %36, align 8, !tbaa !9
  br label %5727

5725:                                             ; preds = %5713
  %5726 = load i64, ptr %37, align 8, !tbaa !9
  br label %5727

5727:                                             ; preds = %5725, %5723
  %5728 = phi i64 [ %5724, %5723 ], [ %5726, %5725 ]
  store i64 %5728, ptr %39, align 8, !tbaa !9
  %5729 = load i64, ptr %55, align 8, !tbaa !9
  %5730 = load i64, ptr %75, align 8, !tbaa !9
  %5731 = add nsw i64 %5729, %5730
  %5732 = add nsw i64 %5731, 1
  store i64 %5732, ptr %56, align 8, !tbaa !9
  br label %5733

5733:                                             ; preds = %5841, %5727
  %5734 = load i64, ptr %56, align 8, !tbaa !9
  %5735 = load i64, ptr %39, align 8, !tbaa !9
  %5736 = icmp sle i64 %5734, %5735
  br i1 %5736, label %5737, label %5844

5737:                                             ; preds = %5733
  %5738 = load i64, ptr %57, align 8, !tbaa !9
  %5739 = load i64, ptr %56, align 8, !tbaa !9
  %5740 = sub nsw i64 %5738, %5739
  %5741 = load i64, ptr %69, align 8, !tbaa !9
  %5742 = add nsw i64 %5740, %5741
  %5743 = load i64, ptr %56, align 8, !tbaa !9
  %5744 = load i64, ptr %30, align 8, !tbaa !9
  %5745 = mul nsw i64 %5743, %5744
  %5746 = add nsw i64 %5742, %5745
  store i64 %5746, ptr %36, align 8, !tbaa !9
  %5747 = load i64, ptr %57, align 8, !tbaa !9
  %5748 = load i64, ptr %56, align 8, !tbaa !9
  %5749 = sub nsw i64 %5747, %5748
  %5750 = load i64, ptr %69, align 8, !tbaa !9
  %5751 = add nsw i64 %5749, %5750
  %5752 = load i64, ptr %56, align 8, !tbaa !9
  %5753 = load i64, ptr %30, align 8, !tbaa !9
  %5754 = mul nsw i64 %5752, %5753
  %5755 = add nsw i64 %5751, %5754
  store i64 %5755, ptr %37, align 8, !tbaa !9
  %5756 = load ptr, ptr %23, align 8, !tbaa !5
  %5757 = load i64, ptr %55, align 8, !tbaa !9
  %5758 = load i64, ptr %57, align 8, !tbaa !9
  %5759 = sub nsw i64 %5757, %5758
  %5760 = load i64, ptr %70, align 8, !tbaa !9
  %5761 = add nsw i64 %5759, %5760
  %5762 = load i64, ptr %57, align 8, !tbaa !9
  %5763 = load i64, ptr %32, align 8, !tbaa !9
  %5764 = mul nsw i64 %5762, %5763
  %5765 = add nsw i64 %5761, %5764
  %5766 = getelementptr inbounds %struct.complex, ptr %5756, i64 %5765
  call void @r_cnjg(ptr noundef %47, ptr noundef %5766)
  %5767 = load i64, ptr %55, align 8, !tbaa !9
  %5768 = load i64, ptr %56, align 8, !tbaa !9
  %5769 = sub nsw i64 %5767, %5768
  %5770 = load i64, ptr %69, align 8, !tbaa !9
  %5771 = add nsw i64 %5769, %5770
  %5772 = load i64, ptr %56, align 8, !tbaa !9
  %5773 = load i64, ptr %30, align 8, !tbaa !9
  %5774 = mul nsw i64 %5772, %5773
  %5775 = add nsw i64 %5771, %5774
  store i64 %5775, ptr %40, align 8, !tbaa !9
  %5776 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %5777 = load float, ptr %5776, align 4, !tbaa !11
  %5778 = load ptr, ptr %21, align 8, !tbaa !5
  %5779 = load i64, ptr %40, align 8, !tbaa !9
  %5780 = getelementptr inbounds %struct.complex, ptr %5778, i64 %5779
  %5781 = getelementptr inbounds %struct.complex, ptr %5780, i32 0, i32 0
  %5782 = load float, ptr %5781, align 4, !tbaa !11
  %5783 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %5784 = load float, ptr %5783, align 4, !tbaa !15
  %5785 = load ptr, ptr %21, align 8, !tbaa !5
  %5786 = load i64, ptr %40, align 8, !tbaa !9
  %5787 = getelementptr inbounds %struct.complex, ptr %5785, i64 %5786
  %5788 = getelementptr inbounds %struct.complex, ptr %5787, i32 0, i32 1
  %5789 = load float, ptr %5788, align 4, !tbaa !15
  %5790 = fmul float %5784, %5789
  %5791 = fneg float %5790
  %5792 = call float @llvm.fmuladd.f32(float %5777, float %5782, float %5791)
  %5793 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %5792, ptr %5793, align 4, !tbaa !11
  %5794 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %5795 = load float, ptr %5794, align 4, !tbaa !11
  %5796 = load ptr, ptr %21, align 8, !tbaa !5
  %5797 = load i64, ptr %40, align 8, !tbaa !9
  %5798 = getelementptr inbounds %struct.complex, ptr %5796, i64 %5797
  %5799 = getelementptr inbounds %struct.complex, ptr %5798, i32 0, i32 1
  %5800 = load float, ptr %5799, align 4, !tbaa !15
  %5801 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %5802 = load float, ptr %5801, align 4, !tbaa !15
  %5803 = load ptr, ptr %21, align 8, !tbaa !5
  %5804 = load i64, ptr %40, align 8, !tbaa !9
  %5805 = getelementptr inbounds %struct.complex, ptr %5803, i64 %5804
  %5806 = getelementptr inbounds %struct.complex, ptr %5805, i32 0, i32 0
  %5807 = load float, ptr %5806, align 4, !tbaa !11
  %5808 = fmul float %5802, %5807
  %5809 = call float @llvm.fmuladd.f32(float %5795, float %5800, float %5808)
  %5810 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %5809, ptr %5810, align 4, !tbaa !15
  %5811 = load ptr, ptr %21, align 8, !tbaa !5
  %5812 = load i64, ptr %37, align 8, !tbaa !9
  %5813 = getelementptr inbounds %struct.complex, ptr %5811, i64 %5812
  %5814 = getelementptr inbounds %struct.complex, ptr %5813, i32 0, i32 0
  %5815 = load float, ptr %5814, align 4, !tbaa !11
  %5816 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %5817 = load float, ptr %5816, align 4, !tbaa !11
  %5818 = fsub float %5815, %5817
  %5819 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %5818, ptr %5819, align 4, !tbaa !11
  %5820 = load ptr, ptr %21, align 8, !tbaa !5
  %5821 = load i64, ptr %37, align 8, !tbaa !9
  %5822 = getelementptr inbounds %struct.complex, ptr %5820, i64 %5821
  %5823 = getelementptr inbounds %struct.complex, ptr %5822, i32 0, i32 1
  %5824 = load float, ptr %5823, align 4, !tbaa !15
  %5825 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %5826 = load float, ptr %5825, align 4, !tbaa !15
  %5827 = fsub float %5824, %5826
  %5828 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %5827, ptr %5828, align 4, !tbaa !15
  %5829 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %5830 = load float, ptr %5829, align 4, !tbaa !11
  %5831 = load ptr, ptr %21, align 8, !tbaa !5
  %5832 = load i64, ptr %36, align 8, !tbaa !9
  %5833 = getelementptr inbounds %struct.complex, ptr %5831, i64 %5832
  %5834 = getelementptr inbounds %struct.complex, ptr %5833, i32 0, i32 0
  store float %5830, ptr %5834, align 4, !tbaa !11
  %5835 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %5836 = load float, ptr %5835, align 4, !tbaa !15
  %5837 = load ptr, ptr %21, align 8, !tbaa !5
  %5838 = load i64, ptr %36, align 8, !tbaa !9
  %5839 = getelementptr inbounds %struct.complex, ptr %5837, i64 %5838
  %5840 = getelementptr inbounds %struct.complex, ptr %5839, i32 0, i32 1
  store float %5836, ptr %5840, align 4, !tbaa !15
  br label %5841

5841:                                             ; preds = %5737
  %5842 = load i64, ptr %56, align 8, !tbaa !9
  %5843 = add nsw i64 %5842, 1
  store i64 %5843, ptr %56, align 8, !tbaa !9
  br label %5733, !llvm.loop !66

5844:                                             ; preds = %5733
  br label %5845

5845:                                             ; preds = %5844
  %5846 = load i64, ptr %57, align 8, !tbaa !9
  %5847 = add nsw i64 %5846, 1
  store i64 %5847, ptr %57, align 8, !tbaa !9
  br label %5445, !llvm.loop !67

5848:                                             ; preds = %5445
  %5849 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %5849, ptr %38, align 8, !tbaa !9
  %5850 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %5850, ptr %56, align 8, !tbaa !9
  br label %5851

5851:                                             ; preds = %5996, %5848
  %5852 = load i64, ptr %56, align 8, !tbaa !9
  %5853 = load i64, ptr %38, align 8, !tbaa !9
  %5854 = icmp sle i64 %5852, %5853
  br i1 %5854, label %5855, label %5999

5855:                                             ; preds = %5851
  %5856 = load i64, ptr %56, align 8, !tbaa !9
  %5857 = load ptr, ptr %19, align 8, !tbaa !5
  %5858 = load i64, ptr %5857, align 8, !tbaa !9
  %5859 = add nsw i64 %5856, %5858
  store i64 %5859, ptr %36, align 8, !tbaa !9
  %5860 = load i64, ptr %55, align 8, !tbaa !9
  %5861 = load i64, ptr %75, align 8, !tbaa !9
  %5862 = add nsw i64 %5860, %5861
  store i64 %5862, ptr %37, align 8, !tbaa !9
  %5863 = load i64, ptr %36, align 8, !tbaa !9
  %5864 = load i64, ptr %37, align 8, !tbaa !9
  %5865 = icmp sle i64 %5863, %5864
  br i1 %5865, label %5866, label %5868

5866:                                             ; preds = %5855
  %5867 = load i64, ptr %36, align 8, !tbaa !9
  br label %5870

5868:                                             ; preds = %5855
  %5869 = load i64, ptr %37, align 8, !tbaa !9
  br label %5870

5870:                                             ; preds = %5868, %5866
  %5871 = phi i64 [ %5867, %5866 ], [ %5869, %5868 ]
  store i64 %5871, ptr %39, align 8, !tbaa !9
  %5872 = load i64, ptr %55, align 8, !tbaa !9
  %5873 = add nsw i64 %5872, 1
  store i64 %5873, ptr %57, align 8, !tbaa !9
  br label %5874

5874:                                             ; preds = %5992, %5870
  %5875 = load i64, ptr %57, align 8, !tbaa !9
  %5876 = load i64, ptr %39, align 8, !tbaa !9
  %5877 = icmp sle i64 %5875, %5876
  br i1 %5877, label %5878, label %5995

5878:                                             ; preds = %5874
  %5879 = load i64, ptr %56, align 8, !tbaa !9
  %5880 = load i64, ptr %57, align 8, !tbaa !9
  %5881 = sub nsw i64 %5879, %5880
  %5882 = load i64, ptr %69, align 8, !tbaa !9
  %5883 = add nsw i64 %5881, %5882
  %5884 = load i64, ptr %57, align 8, !tbaa !9
  %5885 = load i64, ptr %30, align 8, !tbaa !9
  %5886 = mul nsw i64 %5884, %5885
  %5887 = add nsw i64 %5883, %5886
  store i64 %5887, ptr %36, align 8, !tbaa !9
  %5888 = load i64, ptr %56, align 8, !tbaa !9
  %5889 = load i64, ptr %57, align 8, !tbaa !9
  %5890 = sub nsw i64 %5888, %5889
  %5891 = load i64, ptr %69, align 8, !tbaa !9
  %5892 = add nsw i64 %5890, %5891
  %5893 = load i64, ptr %57, align 8, !tbaa !9
  %5894 = load i64, ptr %30, align 8, !tbaa !9
  %5895 = mul nsw i64 %5893, %5894
  %5896 = add nsw i64 %5892, %5895
  store i64 %5896, ptr %37, align 8, !tbaa !9
  %5897 = load i64, ptr %55, align 8, !tbaa !9
  %5898 = load i64, ptr %57, align 8, !tbaa !9
  %5899 = sub nsw i64 %5897, %5898
  %5900 = load i64, ptr %70, align 8, !tbaa !9
  %5901 = add nsw i64 %5899, %5900
  %5902 = load i64, ptr %57, align 8, !tbaa !9
  %5903 = load i64, ptr %32, align 8, !tbaa !9
  %5904 = mul nsw i64 %5902, %5903
  %5905 = add nsw i64 %5901, %5904
  store i64 %5905, ptr %40, align 8, !tbaa !9
  %5906 = load i64, ptr %56, align 8, !tbaa !9
  %5907 = load i64, ptr %55, align 8, !tbaa !9
  %5908 = sub nsw i64 %5906, %5907
  %5909 = load i64, ptr %69, align 8, !tbaa !9
  %5910 = add nsw i64 %5908, %5909
  %5911 = load i64, ptr %55, align 8, !tbaa !9
  %5912 = load i64, ptr %30, align 8, !tbaa !9
  %5913 = mul nsw i64 %5911, %5912
  %5914 = add nsw i64 %5910, %5913
  store i64 %5914, ptr %41, align 8, !tbaa !9
  %5915 = load ptr, ptr %23, align 8, !tbaa !5
  %5916 = load i64, ptr %40, align 8, !tbaa !9
  %5917 = getelementptr inbounds %struct.complex, ptr %5915, i64 %5916
  %5918 = getelementptr inbounds %struct.complex, ptr %5917, i32 0, i32 0
  %5919 = load float, ptr %5918, align 4, !tbaa !11
  %5920 = load ptr, ptr %21, align 8, !tbaa !5
  %5921 = load i64, ptr %41, align 8, !tbaa !9
  %5922 = getelementptr inbounds %struct.complex, ptr %5920, i64 %5921
  %5923 = getelementptr inbounds %struct.complex, ptr %5922, i32 0, i32 0
  %5924 = load float, ptr %5923, align 4, !tbaa !11
  %5925 = load ptr, ptr %23, align 8, !tbaa !5
  %5926 = load i64, ptr %40, align 8, !tbaa !9
  %5927 = getelementptr inbounds %struct.complex, ptr %5925, i64 %5926
  %5928 = getelementptr inbounds %struct.complex, ptr %5927, i32 0, i32 1
  %5929 = load float, ptr %5928, align 4, !tbaa !15
  %5930 = load ptr, ptr %21, align 8, !tbaa !5
  %5931 = load i64, ptr %41, align 8, !tbaa !9
  %5932 = getelementptr inbounds %struct.complex, ptr %5930, i64 %5931
  %5933 = getelementptr inbounds %struct.complex, ptr %5932, i32 0, i32 1
  %5934 = load float, ptr %5933, align 4, !tbaa !15
  %5935 = fmul float %5929, %5934
  %5936 = fneg float %5935
  %5937 = call float @llvm.fmuladd.f32(float %5919, float %5924, float %5936)
  %5938 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %5937, ptr %5938, align 4, !tbaa !11
  %5939 = load ptr, ptr %23, align 8, !tbaa !5
  %5940 = load i64, ptr %40, align 8, !tbaa !9
  %5941 = getelementptr inbounds %struct.complex, ptr %5939, i64 %5940
  %5942 = getelementptr inbounds %struct.complex, ptr %5941, i32 0, i32 0
  %5943 = load float, ptr %5942, align 4, !tbaa !11
  %5944 = load ptr, ptr %21, align 8, !tbaa !5
  %5945 = load i64, ptr %41, align 8, !tbaa !9
  %5946 = getelementptr inbounds %struct.complex, ptr %5944, i64 %5945
  %5947 = getelementptr inbounds %struct.complex, ptr %5946, i32 0, i32 1
  %5948 = load float, ptr %5947, align 4, !tbaa !15
  %5949 = load ptr, ptr %23, align 8, !tbaa !5
  %5950 = load i64, ptr %40, align 8, !tbaa !9
  %5951 = getelementptr inbounds %struct.complex, ptr %5949, i64 %5950
  %5952 = getelementptr inbounds %struct.complex, ptr %5951, i32 0, i32 1
  %5953 = load float, ptr %5952, align 4, !tbaa !15
  %5954 = load ptr, ptr %21, align 8, !tbaa !5
  %5955 = load i64, ptr %41, align 8, !tbaa !9
  %5956 = getelementptr inbounds %struct.complex, ptr %5954, i64 %5955
  %5957 = getelementptr inbounds %struct.complex, ptr %5956, i32 0, i32 0
  %5958 = load float, ptr %5957, align 4, !tbaa !11
  %5959 = fmul float %5953, %5958
  %5960 = call float @llvm.fmuladd.f32(float %5943, float %5948, float %5959)
  %5961 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %5960, ptr %5961, align 4, !tbaa !15
  %5962 = load ptr, ptr %21, align 8, !tbaa !5
  %5963 = load i64, ptr %37, align 8, !tbaa !9
  %5964 = getelementptr inbounds %struct.complex, ptr %5962, i64 %5963
  %5965 = getelementptr inbounds %struct.complex, ptr %5964, i32 0, i32 0
  %5966 = load float, ptr %5965, align 4, !tbaa !11
  %5967 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %5968 = load float, ptr %5967, align 4, !tbaa !11
  %5969 = fsub float %5966, %5968
  %5970 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %5969, ptr %5970, align 4, !tbaa !11
  %5971 = load ptr, ptr %21, align 8, !tbaa !5
  %5972 = load i64, ptr %37, align 8, !tbaa !9
  %5973 = getelementptr inbounds %struct.complex, ptr %5971, i64 %5972
  %5974 = getelementptr inbounds %struct.complex, ptr %5973, i32 0, i32 1
  %5975 = load float, ptr %5974, align 4, !tbaa !15
  %5976 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %5977 = load float, ptr %5976, align 4, !tbaa !15
  %5978 = fsub float %5975, %5977
  %5979 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %5978, ptr %5979, align 4, !tbaa !15
  %5980 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %5981 = load float, ptr %5980, align 4, !tbaa !11
  %5982 = load ptr, ptr %21, align 8, !tbaa !5
  %5983 = load i64, ptr %36, align 8, !tbaa !9
  %5984 = getelementptr inbounds %struct.complex, ptr %5982, i64 %5983
  %5985 = getelementptr inbounds %struct.complex, ptr %5984, i32 0, i32 0
  store float %5981, ptr %5985, align 4, !tbaa !11
  %5986 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %5987 = load float, ptr %5986, align 4, !tbaa !15
  %5988 = load ptr, ptr %21, align 8, !tbaa !5
  %5989 = load i64, ptr %36, align 8, !tbaa !9
  %5990 = getelementptr inbounds %struct.complex, ptr %5988, i64 %5989
  %5991 = getelementptr inbounds %struct.complex, ptr %5990, i32 0, i32 1
  store float %5987, ptr %5991, align 4, !tbaa !15
  br label %5992

5992:                                             ; preds = %5878
  %5993 = load i64, ptr %57, align 8, !tbaa !9
  %5994 = add nsw i64 %5993, 1
  store i64 %5994, ptr %57, align 8, !tbaa !9
  br label %5874, !llvm.loop !68

5995:                                             ; preds = %5874
  br label %5996

5996:                                             ; preds = %5995
  %5997 = load i64, ptr %56, align 8, !tbaa !9
  %5998 = add nsw i64 %5997, 1
  store i64 %5998, ptr %56, align 8, !tbaa !9
  br label %5851, !llvm.loop !69

5999:                                             ; preds = %5851
  %6000 = load i64, ptr %79, align 8, !tbaa !9
  %6001 = icmp ne i64 %6000, 0
  br i1 %6001, label %6002, label %6045

6002:                                             ; preds = %5999
  %6003 = load float, ptr %74, align 4, !tbaa !14
  %6004 = fdiv float 1.000000e+00, %6003
  store float %6004, ptr %44, align 4, !tbaa !14
  %6005 = load ptr, ptr %25, align 8, !tbaa !5
  %6006 = load i64, ptr %55, align 8, !tbaa !9
  %6007 = load i64, ptr %34, align 8, !tbaa !9
  %6008 = mul nsw i64 %6006, %6007
  %6009 = add nsw i64 %6008, 1
  %6010 = getelementptr inbounds %struct.complex, ptr %6005, i64 %6009
  %6011 = call i32 @f2c_csscal(ptr noundef %68, ptr noundef %44, ptr noundef %6010, ptr noundef @c__1)
  %6012 = load i64, ptr %75, align 8, !tbaa !9
  %6013 = icmp sgt i64 %6012, 0
  br i1 %6013, label %6014, label %6044

6014:                                             ; preds = %6002
  %6015 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float -1.000000e+00, ptr %6015, align 4, !tbaa !11
  %6016 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float -0.000000e+00, ptr %6016, align 4, !tbaa !15
  %6017 = load ptr, ptr %24, align 8, !tbaa !5
  %6018 = load i64, ptr %6017, align 8, !tbaa !9
  %6019 = sub nsw i64 %6018, 1
  store i64 %6019, ptr %38, align 8, !tbaa !9
  %6020 = load ptr, ptr %25, align 8, !tbaa !5
  %6021 = load i64, ptr %55, align 8, !tbaa !9
  %6022 = load i64, ptr %34, align 8, !tbaa !9
  %6023 = mul nsw i64 %6021, %6022
  %6024 = add nsw i64 %6023, 1
  %6025 = getelementptr inbounds %struct.complex, ptr %6020, i64 %6024
  %6026 = load ptr, ptr %23, align 8, !tbaa !5
  %6027 = load ptr, ptr %20, align 8, !tbaa !5
  %6028 = load i64, ptr %6027, align 8, !tbaa !9
  %6029 = load i64, ptr %55, align 8, !tbaa !9
  %6030 = add nsw i64 %6029, 1
  %6031 = load i64, ptr %32, align 8, !tbaa !9
  %6032 = mul nsw i64 %6030, %6031
  %6033 = add nsw i64 %6028, %6032
  %6034 = getelementptr inbounds %struct.complex, ptr %6026, i64 %6033
  %6035 = load ptr, ptr %25, align 8, !tbaa !5
  %6036 = load i64, ptr %55, align 8, !tbaa !9
  %6037 = add nsw i64 %6036, 1
  %6038 = load i64, ptr %34, align 8, !tbaa !9
  %6039 = mul nsw i64 %6037, %6038
  %6040 = add nsw i64 %6039, 1
  %6041 = getelementptr inbounds %struct.complex, ptr %6035, i64 %6040
  %6042 = load ptr, ptr %26, align 8, !tbaa !5
  %6043 = call i32 @f2c_cgeru(ptr noundef %68, ptr noundef %75, ptr noundef %45, ptr noundef %6025, ptr noundef @c__1, ptr noundef %6034, ptr noundef %38, ptr noundef %6041, ptr noundef %6042)
  br label %6044

6044:                                             ; preds = %6014, %6002
  br label %6045

6045:                                             ; preds = %6044, %5999
  %6046 = load i64, ptr %62, align 8, !tbaa !9
  %6047 = load i64, ptr %55, align 8, !tbaa !9
  %6048 = sub nsw i64 %6046, %6047
  %6049 = load i64, ptr %69, align 8, !tbaa !9
  %6050 = add nsw i64 %6048, %6049
  %6051 = load i64, ptr %55, align 8, !tbaa !9
  %6052 = load i64, ptr %30, align 8, !tbaa !9
  %6053 = mul nsw i64 %6051, %6052
  %6054 = add nsw i64 %6050, %6053
  store i64 %6054, ptr %38, align 8, !tbaa !9
  %6055 = load ptr, ptr %21, align 8, !tbaa !5
  %6056 = load i64, ptr %38, align 8, !tbaa !9
  %6057 = getelementptr inbounds %struct.complex, ptr %6055, i64 %6056
  %6058 = getelementptr inbounds %struct.complex, ptr %6057, i32 0, i32 0
  %6059 = load float, ptr %6058, align 4, !tbaa !11
  %6060 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %6059, ptr %6060, align 4, !tbaa !11
  %6061 = load ptr, ptr %21, align 8, !tbaa !5
  %6062 = load i64, ptr %38, align 8, !tbaa !9
  %6063 = getelementptr inbounds %struct.complex, ptr %6061, i64 %6062
  %6064 = getelementptr inbounds %struct.complex, ptr %6063, i32 0, i32 1
  %6065 = load float, ptr %6064, align 4, !tbaa !15
  %6066 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %6065, ptr %6066, align 4, !tbaa !15
  br label %6067

6067:                                             ; preds = %6045, %5268
  %6068 = load ptr, ptr %20, align 8, !tbaa !5
  %6069 = load i64, ptr %6068, align 8, !tbaa !9
  %6070 = sub nsw i64 %6069, 1
  store i64 %6070, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %6071

6071:                                             ; preds = %6801, %6067
  %6072 = load i64, ptr %57, align 8, !tbaa !9
  %6073 = load i64, ptr %38, align 8, !tbaa !9
  %6074 = icmp sle i64 %6072, %6073
  br i1 %6074, label %6075, label %6804

6075:                                             ; preds = %6071
  %6076 = load i64, ptr %80, align 8, !tbaa !9
  %6077 = icmp ne i64 %6076, 0
  br i1 %6077, label %6078, label %6384

6078:                                             ; preds = %6075
  %6079 = load i64, ptr %55, align 8, !tbaa !9
  %6080 = load i64, ptr %57, align 8, !tbaa !9
  %6081 = add nsw i64 %6079, %6080
  %6082 = load i64, ptr %69, align 8, !tbaa !9
  %6083 = sub nsw i64 %6081, %6082
  %6084 = icmp sgt i64 %6083, 0
  br i1 %6084, label %6085, label %6383

6085:                                             ; preds = %6078
  %6086 = load i64, ptr %55, align 8, !tbaa !9
  %6087 = load i64, ptr %57, align 8, !tbaa !9
  %6088 = add nsw i64 %6086, %6087
  %6089 = load i64, ptr %59, align 8, !tbaa !9
  %6090 = icmp slt i64 %6088, %6089
  br i1 %6090, label %6091, label %6383

6091:                                             ; preds = %6085
  %6092 = load ptr, ptr %21, align 8, !tbaa !5
  %6093 = load i64, ptr %57, align 8, !tbaa !9
  %6094 = add nsw i64 %6093, 1
  %6095 = load i64, ptr %55, align 8, !tbaa !9
  %6096 = load i64, ptr %30, align 8, !tbaa !9
  %6097 = mul nsw i64 %6095, %6096
  %6098 = add nsw i64 %6094, %6097
  %6099 = getelementptr inbounds %struct.complex, ptr %6092, i64 %6098
  %6100 = load ptr, ptr %28, align 8, !tbaa !5
  %6101 = load i64, ptr %55, align 8, !tbaa !9
  %6102 = load i64, ptr %57, align 8, !tbaa !9
  %6103 = add nsw i64 %6101, %6102
  %6104 = load ptr, ptr %19, align 8, !tbaa !5
  %6105 = load i64, ptr %6104, align 8, !tbaa !9
  %6106 = sub nsw i64 %6103, %6105
  %6107 = getelementptr inbounds float, ptr %6100, i64 %6106
  %6108 = load ptr, ptr %27, align 8, !tbaa !5
  %6109 = load i64, ptr %55, align 8, !tbaa !9
  %6110 = load i64, ptr %57, align 8, !tbaa !9
  %6111 = add nsw i64 %6109, %6110
  %6112 = load ptr, ptr %19, align 8, !tbaa !5
  %6113 = load i64, ptr %6112, align 8, !tbaa !9
  %6114 = sub nsw i64 %6111, %6113
  %6115 = getelementptr inbounds %struct.complex, ptr %6108, i64 %6114
  %6116 = call i32 @clartg_(ptr noundef %6099, ptr noundef %71, ptr noundef %6107, ptr noundef %6115, ptr noundef %66)
  %6117 = load i64, ptr %70, align 8, !tbaa !9
  %6118 = load i64, ptr %57, align 8, !tbaa !9
  %6119 = sub nsw i64 %6117, %6118
  %6120 = load i64, ptr %55, align 8, !tbaa !9
  %6121 = load i64, ptr %57, align 8, !tbaa !9
  %6122 = add nsw i64 %6120, %6121
  %6123 = load i64, ptr %32, align 8, !tbaa !9
  %6124 = mul nsw i64 %6122, %6123
  %6125 = add nsw i64 %6119, %6124
  store i64 %6125, ptr %39, align 8, !tbaa !9
  %6126 = load ptr, ptr %23, align 8, !tbaa !5
  %6127 = load i64, ptr %39, align 8, !tbaa !9
  %6128 = getelementptr inbounds %struct.complex, ptr %6126, i64 %6127
  %6129 = getelementptr inbounds %struct.complex, ptr %6128, i32 0, i32 0
  %6130 = load float, ptr %6129, align 4, !tbaa !11
  %6131 = fneg float %6130
  %6132 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %6131, ptr %6132, align 4, !tbaa !11
  %6133 = load ptr, ptr %23, align 8, !tbaa !5
  %6134 = load i64, ptr %39, align 8, !tbaa !9
  %6135 = getelementptr inbounds %struct.complex, ptr %6133, i64 %6134
  %6136 = getelementptr inbounds %struct.complex, ptr %6135, i32 0, i32 1
  %6137 = load float, ptr %6136, align 4, !tbaa !15
  %6138 = fneg float %6137
  %6139 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %6138, ptr %6139, align 4, !tbaa !15
  %6140 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %6141 = load float, ptr %6140, align 4, !tbaa !11
  %6142 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %6143 = load float, ptr %6142, align 4, !tbaa !11
  %6144 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %6145 = load float, ptr %6144, align 4, !tbaa !15
  %6146 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %6147 = load float, ptr %6146, align 4, !tbaa !15
  %6148 = fmul float %6145, %6147
  %6149 = fneg float %6148
  %6150 = call float @llvm.fmuladd.f32(float %6141, float %6143, float %6149)
  %6151 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %6150, ptr %6151, align 4, !tbaa !11
  %6152 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %6153 = load float, ptr %6152, align 4, !tbaa !11
  %6154 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %6155 = load float, ptr %6154, align 4, !tbaa !15
  %6156 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %6157 = load float, ptr %6156, align 4, !tbaa !15
  %6158 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %6159 = load float, ptr %6158, align 4, !tbaa !11
  %6160 = fmul float %6157, %6159
  %6161 = call float @llvm.fmuladd.f32(float %6153, float %6155, float %6160)
  %6162 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %6161, ptr %6162, align 4, !tbaa !15
  %6163 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %6164 = load float, ptr %6163, align 4, !tbaa !11
  %6165 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %6164, ptr %6165, align 4, !tbaa !11
  %6166 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %6167 = load float, ptr %6166, align 4, !tbaa !15
  %6168 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %6167, ptr %6168, align 4, !tbaa !15
  %6169 = load i64, ptr %59, align 8, !tbaa !9
  %6170 = load ptr, ptr %20, align 8, !tbaa !5
  %6171 = load i64, ptr %6170, align 8, !tbaa !9
  %6172 = sub nsw i64 %6169, %6171
  %6173 = load i64, ptr %55, align 8, !tbaa !9
  %6174 = add nsw i64 %6172, %6173
  %6175 = load i64, ptr %57, align 8, !tbaa !9
  %6176 = add nsw i64 %6174, %6175
  store i64 %6176, ptr %39, align 8, !tbaa !9
  %6177 = load i64, ptr %55, align 8, !tbaa !9
  %6178 = load i64, ptr %57, align 8, !tbaa !9
  %6179 = add nsw i64 %6177, %6178
  %6180 = load ptr, ptr %19, align 8, !tbaa !5
  %6181 = load i64, ptr %6180, align 8, !tbaa !9
  %6182 = sub nsw i64 %6179, %6181
  store i64 %6182, ptr %36, align 8, !tbaa !9
  %6183 = load ptr, ptr %28, align 8, !tbaa !5
  %6184 = load i64, ptr %36, align 8, !tbaa !9
  %6185 = getelementptr inbounds float, ptr %6183, i64 %6184
  %6186 = load float, ptr %6185, align 4, !tbaa !14
  %6187 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %6188 = load float, ptr %6187, align 4, !tbaa !11
  %6189 = fmul float %6186, %6188
  %6190 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %6189, ptr %6190, align 4, !tbaa !11
  %6191 = load ptr, ptr %28, align 8, !tbaa !5
  %6192 = load i64, ptr %36, align 8, !tbaa !9
  %6193 = getelementptr inbounds float, ptr %6191, i64 %6192
  %6194 = load float, ptr %6193, align 4, !tbaa !14
  %6195 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %6196 = load float, ptr %6195, align 4, !tbaa !15
  %6197 = fmul float %6194, %6196
  %6198 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %6197, ptr %6198, align 4, !tbaa !15
  %6199 = load ptr, ptr %27, align 8, !tbaa !5
  %6200 = load i64, ptr %55, align 8, !tbaa !9
  %6201 = load i64, ptr %57, align 8, !tbaa !9
  %6202 = add nsw i64 %6200, %6201
  %6203 = load ptr, ptr %19, align 8, !tbaa !5
  %6204 = load i64, ptr %6203, align 8, !tbaa !9
  %6205 = sub nsw i64 %6202, %6204
  %6206 = getelementptr inbounds %struct.complex, ptr %6199, i64 %6205
  call void @r_cnjg(ptr noundef %48, ptr noundef %6206)
  %6207 = load i64, ptr %55, align 8, !tbaa !9
  %6208 = load i64, ptr %57, align 8, !tbaa !9
  %6209 = add nsw i64 %6207, %6208
  %6210 = load i64, ptr %30, align 8, !tbaa !9
  %6211 = mul nsw i64 %6209, %6210
  %6212 = add nsw i64 %6211, 1
  store i64 %6212, ptr %37, align 8, !tbaa !9
  %6213 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %6214 = load float, ptr %6213, align 4, !tbaa !11
  %6215 = load ptr, ptr %21, align 8, !tbaa !5
  %6216 = load i64, ptr %37, align 8, !tbaa !9
  %6217 = getelementptr inbounds %struct.complex, ptr %6215, i64 %6216
  %6218 = getelementptr inbounds %struct.complex, ptr %6217, i32 0, i32 0
  %6219 = load float, ptr %6218, align 4, !tbaa !11
  %6220 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %6221 = load float, ptr %6220, align 4, !tbaa !15
  %6222 = load ptr, ptr %21, align 8, !tbaa !5
  %6223 = load i64, ptr %37, align 8, !tbaa !9
  %6224 = getelementptr inbounds %struct.complex, ptr %6222, i64 %6223
  %6225 = getelementptr inbounds %struct.complex, ptr %6224, i32 0, i32 1
  %6226 = load float, ptr %6225, align 4, !tbaa !15
  %6227 = fmul float %6221, %6226
  %6228 = fneg float %6227
  %6229 = call float @llvm.fmuladd.f32(float %6214, float %6219, float %6228)
  %6230 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %6229, ptr %6230, align 4, !tbaa !11
  %6231 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %6232 = load float, ptr %6231, align 4, !tbaa !11
  %6233 = load ptr, ptr %21, align 8, !tbaa !5
  %6234 = load i64, ptr %37, align 8, !tbaa !9
  %6235 = getelementptr inbounds %struct.complex, ptr %6233, i64 %6234
  %6236 = getelementptr inbounds %struct.complex, ptr %6235, i32 0, i32 1
  %6237 = load float, ptr %6236, align 4, !tbaa !15
  %6238 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %6239 = load float, ptr %6238, align 4, !tbaa !15
  %6240 = load ptr, ptr %21, align 8, !tbaa !5
  %6241 = load i64, ptr %37, align 8, !tbaa !9
  %6242 = getelementptr inbounds %struct.complex, ptr %6240, i64 %6241
  %6243 = getelementptr inbounds %struct.complex, ptr %6242, i32 0, i32 0
  %6244 = load float, ptr %6243, align 4, !tbaa !11
  %6245 = fmul float %6239, %6244
  %6246 = call float @llvm.fmuladd.f32(float %6232, float %6237, float %6245)
  %6247 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %6246, ptr %6247, align 4, !tbaa !15
  %6248 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %6249 = load float, ptr %6248, align 4, !tbaa !11
  %6250 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %6251 = load float, ptr %6250, align 4, !tbaa !11
  %6252 = fsub float %6249, %6251
  %6253 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %6252, ptr %6253, align 4, !tbaa !11
  %6254 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %6255 = load float, ptr %6254, align 4, !tbaa !15
  %6256 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %6257 = load float, ptr %6256, align 4, !tbaa !15
  %6258 = fsub float %6255, %6257
  %6259 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %6258, ptr %6259, align 4, !tbaa !15
  %6260 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %6261 = load float, ptr %6260, align 4, !tbaa !11
  %6262 = load ptr, ptr %27, align 8, !tbaa !5
  %6263 = load i64, ptr %39, align 8, !tbaa !9
  %6264 = getelementptr inbounds %struct.complex, ptr %6262, i64 %6263
  %6265 = getelementptr inbounds %struct.complex, ptr %6264, i32 0, i32 0
  store float %6261, ptr %6265, align 4, !tbaa !11
  %6266 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %6267 = load float, ptr %6266, align 4, !tbaa !15
  %6268 = load ptr, ptr %27, align 8, !tbaa !5
  %6269 = load i64, ptr %39, align 8, !tbaa !9
  %6270 = getelementptr inbounds %struct.complex, ptr %6268, i64 %6269
  %6271 = getelementptr inbounds %struct.complex, ptr %6270, i32 0, i32 1
  store float %6267, ptr %6271, align 4, !tbaa !15
  %6272 = load i64, ptr %55, align 8, !tbaa !9
  %6273 = load i64, ptr %57, align 8, !tbaa !9
  %6274 = add nsw i64 %6272, %6273
  %6275 = load i64, ptr %30, align 8, !tbaa !9
  %6276 = mul nsw i64 %6274, %6275
  %6277 = add nsw i64 %6276, 1
  store i64 %6277, ptr %39, align 8, !tbaa !9
  %6278 = load i64, ptr %55, align 8, !tbaa !9
  %6279 = load i64, ptr %57, align 8, !tbaa !9
  %6280 = add nsw i64 %6278, %6279
  %6281 = load ptr, ptr %19, align 8, !tbaa !5
  %6282 = load i64, ptr %6281, align 8, !tbaa !9
  %6283 = sub nsw i64 %6280, %6282
  store i64 %6283, ptr %36, align 8, !tbaa !9
  %6284 = load ptr, ptr %27, align 8, !tbaa !5
  %6285 = load i64, ptr %36, align 8, !tbaa !9
  %6286 = getelementptr inbounds %struct.complex, ptr %6284, i64 %6285
  %6287 = getelementptr inbounds %struct.complex, ptr %6286, i32 0, i32 0
  %6288 = load float, ptr %6287, align 4, !tbaa !11
  %6289 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %6290 = load float, ptr %6289, align 4, !tbaa !11
  %6291 = load ptr, ptr %27, align 8, !tbaa !5
  %6292 = load i64, ptr %36, align 8, !tbaa !9
  %6293 = getelementptr inbounds %struct.complex, ptr %6291, i64 %6292
  %6294 = getelementptr inbounds %struct.complex, ptr %6293, i32 0, i32 1
  %6295 = load float, ptr %6294, align 4, !tbaa !15
  %6296 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %6297 = load float, ptr %6296, align 4, !tbaa !15
  %6298 = fmul float %6295, %6297
  %6299 = fneg float %6298
  %6300 = call float @llvm.fmuladd.f32(float %6288, float %6290, float %6299)
  %6301 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %6300, ptr %6301, align 4, !tbaa !11
  %6302 = load ptr, ptr %27, align 8, !tbaa !5
  %6303 = load i64, ptr %36, align 8, !tbaa !9
  %6304 = getelementptr inbounds %struct.complex, ptr %6302, i64 %6303
  %6305 = getelementptr inbounds %struct.complex, ptr %6304, i32 0, i32 0
  %6306 = load float, ptr %6305, align 4, !tbaa !11
  %6307 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %6308 = load float, ptr %6307, align 4, !tbaa !15
  %6309 = load ptr, ptr %27, align 8, !tbaa !5
  %6310 = load i64, ptr %36, align 8, !tbaa !9
  %6311 = getelementptr inbounds %struct.complex, ptr %6309, i64 %6310
  %6312 = getelementptr inbounds %struct.complex, ptr %6311, i32 0, i32 1
  %6313 = load float, ptr %6312, align 4, !tbaa !15
  %6314 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %6315 = load float, ptr %6314, align 4, !tbaa !11
  %6316 = fmul float %6313, %6315
  %6317 = call float @llvm.fmuladd.f32(float %6306, float %6308, float %6316)
  %6318 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %6317, ptr %6318, align 4, !tbaa !15
  %6319 = load i64, ptr %55, align 8, !tbaa !9
  %6320 = load i64, ptr %57, align 8, !tbaa !9
  %6321 = add nsw i64 %6319, %6320
  %6322 = load ptr, ptr %19, align 8, !tbaa !5
  %6323 = load i64, ptr %6322, align 8, !tbaa !9
  %6324 = sub nsw i64 %6321, %6323
  store i64 %6324, ptr %37, align 8, !tbaa !9
  %6325 = load i64, ptr %55, align 8, !tbaa !9
  %6326 = load i64, ptr %57, align 8, !tbaa !9
  %6327 = add nsw i64 %6325, %6326
  %6328 = load i64, ptr %30, align 8, !tbaa !9
  %6329 = mul nsw i64 %6327, %6328
  %6330 = add nsw i64 %6329, 1
  store i64 %6330, ptr %40, align 8, !tbaa !9
  %6331 = load ptr, ptr %28, align 8, !tbaa !5
  %6332 = load i64, ptr %37, align 8, !tbaa !9
  %6333 = getelementptr inbounds float, ptr %6331, i64 %6332
  %6334 = load float, ptr %6333, align 4, !tbaa !14
  %6335 = load ptr, ptr %21, align 8, !tbaa !5
  %6336 = load i64, ptr %40, align 8, !tbaa !9
  %6337 = getelementptr inbounds %struct.complex, ptr %6335, i64 %6336
  %6338 = getelementptr inbounds %struct.complex, ptr %6337, i32 0, i32 0
  %6339 = load float, ptr %6338, align 4, !tbaa !11
  %6340 = fmul float %6334, %6339
  %6341 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %6340, ptr %6341, align 4, !tbaa !11
  %6342 = load ptr, ptr %28, align 8, !tbaa !5
  %6343 = load i64, ptr %37, align 8, !tbaa !9
  %6344 = getelementptr inbounds float, ptr %6342, i64 %6343
  %6345 = load float, ptr %6344, align 4, !tbaa !14
  %6346 = load ptr, ptr %21, align 8, !tbaa !5
  %6347 = load i64, ptr %40, align 8, !tbaa !9
  %6348 = getelementptr inbounds %struct.complex, ptr %6346, i64 %6347
  %6349 = getelementptr inbounds %struct.complex, ptr %6348, i32 0, i32 1
  %6350 = load float, ptr %6349, align 4, !tbaa !15
  %6351 = fmul float %6345, %6350
  %6352 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %6351, ptr %6352, align 4, !tbaa !15
  %6353 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %6354 = load float, ptr %6353, align 4, !tbaa !11
  %6355 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %6356 = load float, ptr %6355, align 4, !tbaa !11
  %6357 = fadd float %6354, %6356
  %6358 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %6357, ptr %6358, align 4, !tbaa !11
  %6359 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %6360 = load float, ptr %6359, align 4, !tbaa !15
  %6361 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %6362 = load float, ptr %6361, align 4, !tbaa !15
  %6363 = fadd float %6360, %6362
  %6364 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %6363, ptr %6364, align 4, !tbaa !15
  %6365 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %6366 = load float, ptr %6365, align 4, !tbaa !11
  %6367 = load ptr, ptr %21, align 8, !tbaa !5
  %6368 = load i64, ptr %39, align 8, !tbaa !9
  %6369 = getelementptr inbounds %struct.complex, ptr %6367, i64 %6368
  %6370 = getelementptr inbounds %struct.complex, ptr %6369, i32 0, i32 0
  store float %6366, ptr %6370, align 4, !tbaa !11
  %6371 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %6372 = load float, ptr %6371, align 4, !tbaa !15
  %6373 = load ptr, ptr %21, align 8, !tbaa !5
  %6374 = load i64, ptr %39, align 8, !tbaa !9
  %6375 = getelementptr inbounds %struct.complex, ptr %6373, i64 %6374
  %6376 = getelementptr inbounds %struct.complex, ptr %6375, i32 0, i32 1
  store float %6372, ptr %6376, align 4, !tbaa !15
  %6377 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %6378 = load float, ptr %6377, align 4, !tbaa !11
  %6379 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %6378, ptr %6379, align 4, !tbaa !11
  %6380 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %6381 = load float, ptr %6380, align 4, !tbaa !15
  %6382 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %6381, ptr %6382, align 4, !tbaa !15
  br label %6383

6383:                                             ; preds = %6091, %6085, %6078
  br label %6384

6384:                                             ; preds = %6383, %6075
  store i64 1, ptr %39, align 8, !tbaa !9
  %6385 = load i64, ptr %57, align 8, !tbaa !9
  %6386 = load i64, ptr %61, align 8, !tbaa !9
  %6387 = add nsw i64 %6385, %6386
  %6388 = load i64, ptr %59, align 8, !tbaa !9
  %6389 = sub nsw i64 %6387, %6388
  %6390 = add nsw i64 %6389, 1
  store i64 %6390, ptr %36, align 8, !tbaa !9
  %6391 = load i64, ptr %55, align 8, !tbaa !9
  %6392 = load i64, ptr %57, align 8, !tbaa !9
  %6393 = add nsw i64 %6391, %6392
  %6394 = add nsw i64 %6393, 1
  %6395 = load i64, ptr %39, align 8, !tbaa !9
  %6396 = load i64, ptr %36, align 8, !tbaa !9
  %6397 = icmp sge i64 %6395, %6396
  br i1 %6397, label %6398, label %6400

6398:                                             ; preds = %6384
  %6399 = load i64, ptr %39, align 8, !tbaa !9
  br label %6402

6400:                                             ; preds = %6384
  %6401 = load i64, ptr %36, align 8, !tbaa !9
  br label %6402

6402:                                             ; preds = %6400, %6398
  %6403 = phi i64 [ %6399, %6398 ], [ %6401, %6400 ]
  %6404 = load i64, ptr %69, align 8, !tbaa !9
  %6405 = mul nsw i64 %6403, %6404
  %6406 = sub nsw i64 %6394, %6405
  store i64 %6406, ptr %65, align 8, !tbaa !9
  %6407 = load i64, ptr %65, align 8, !tbaa !9
  %6408 = load ptr, ptr %19, align 8, !tbaa !5
  %6409 = load i64, ptr %6408, align 8, !tbaa !9
  %6410 = add nsw i64 %6407, %6409
  %6411 = sub nsw i64 %6410, 1
  %6412 = load i64, ptr %69, align 8, !tbaa !9
  %6413 = sdiv i64 %6411, %6412
  store i64 %6413, ptr %67, align 8, !tbaa !9
  %6414 = load i64, ptr %65, align 8, !tbaa !9
  %6415 = load i64, ptr %67, align 8, !tbaa !9
  %6416 = sub nsw i64 %6415, 1
  %6417 = load i64, ptr %69, align 8, !tbaa !9
  %6418 = mul nsw i64 %6416, %6417
  %6419 = sub nsw i64 %6414, %6418
  store i64 %6419, ptr %64, align 8, !tbaa !9
  %6420 = load i64, ptr %80, align 8, !tbaa !9
  %6421 = icmp ne i64 %6420, 0
  br i1 %6421, label %6422, label %6441

6422:                                             ; preds = %6402
  %6423 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %6423, ptr %39, align 8, !tbaa !9
  %6424 = load i64, ptr %55, align 8, !tbaa !9
  %6425 = load ptr, ptr %19, align 8, !tbaa !5
  %6426 = load i64, ptr %6425, align 8, !tbaa !9
  %6427 = shl i64 %6426, 1
  %6428 = sub nsw i64 %6424, %6427
  %6429 = load i64, ptr %57, align 8, !tbaa !9
  %6430 = add nsw i64 %6428, %6429
  %6431 = sub nsw i64 %6430, 1
  store i64 %6431, ptr %36, align 8, !tbaa !9
  %6432 = load i64, ptr %39, align 8, !tbaa !9
  %6433 = load i64, ptr %36, align 8, !tbaa !9
  %6434 = icmp sle i64 %6432, %6433
  br i1 %6434, label %6435, label %6437

6435:                                             ; preds = %6422
  %6436 = load i64, ptr %39, align 8, !tbaa !9
  br label %6439

6437:                                             ; preds = %6422
  %6438 = load i64, ptr %36, align 8, !tbaa !9
  br label %6439

6439:                                             ; preds = %6437, %6435
  %6440 = phi i64 [ %6436, %6435 ], [ %6438, %6437 ]
  store i64 %6440, ptr %73, align 8, !tbaa !9
  br label %6443

6441:                                             ; preds = %6402
  %6442 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %6442, ptr %73, align 8, !tbaa !9
  br label %6443

6443:                                             ; preds = %6441, %6439
  %6444 = load i64, ptr %73, align 8, !tbaa !9
  %6445 = load ptr, ptr %19, align 8, !tbaa !5
  %6446 = load i64, ptr %6445, align 8, !tbaa !9
  %6447 = add nsw i64 %6444, %6446
  %6448 = sub nsw i64 %6447, 1
  %6449 = load i64, ptr %69, align 8, !tbaa !9
  %6450 = sdiv i64 %6448, %6449
  store i64 %6450, ptr %76, align 8, !tbaa !9
  %6451 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %6451, ptr %39, align 8, !tbaa !9
  %6452 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %6452, ptr %36, align 8, !tbaa !9
  %6453 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %6453, ptr %56, align 8, !tbaa !9
  br label %6454

6454:                                             ; preds = %6591, %6443
  %6455 = load i64, ptr %36, align 8, !tbaa !9
  %6456 = icmp slt i64 %6455, 0
  br i1 %6456, label %6457, label %6462

6457:                                             ; preds = %6454
  %6458 = load i64, ptr %56, align 8, !tbaa !9
  %6459 = load i64, ptr %39, align 8, !tbaa !9
  %6460 = icmp sge i64 %6458, %6459
  %6461 = zext i1 %6460 to i32
  br label %6467

6462:                                             ; preds = %6454
  %6463 = load i64, ptr %56, align 8, !tbaa !9
  %6464 = load i64, ptr %39, align 8, !tbaa !9
  %6465 = icmp sle i64 %6463, %6464
  %6466 = zext i1 %6465 to i32
  br label %6467

6467:                                             ; preds = %6462, %6457
  %6468 = phi i32 [ %6461, %6457 ], [ %6466, %6462 ]
  %6469 = icmp ne i32 %6468, 0
  br i1 %6469, label %6470, label %6595

6470:                                             ; preds = %6467
  %6471 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %6471, ptr %37, align 8, !tbaa !9
  %6472 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %6472, ptr %40, align 8, !tbaa !9
  %6473 = load i64, ptr %56, align 8, !tbaa !9
  %6474 = load ptr, ptr %19, align 8, !tbaa !5
  %6475 = load i64, ptr %6474, align 8, !tbaa !9
  %6476 = add nsw i64 %6473, %6475
  %6477 = sub nsw i64 %6476, 1
  %6478 = load i64, ptr %30, align 8, !tbaa !9
  %6479 = mul nsw i64 %6477, %6478
  %6480 = add nsw i64 %6479, 1
  store i64 %6480, ptr %41, align 8, !tbaa !9
  %6481 = load ptr, ptr %27, align 8, !tbaa !5
  %6482 = load i64, ptr %40, align 8, !tbaa !9
  %6483 = getelementptr inbounds %struct.complex, ptr %6481, i64 %6482
  %6484 = getelementptr inbounds %struct.complex, ptr %6483, i32 0, i32 0
  %6485 = load float, ptr %6484, align 4, !tbaa !11
  %6486 = load ptr, ptr %21, align 8, !tbaa !5
  %6487 = load i64, ptr %41, align 8, !tbaa !9
  %6488 = getelementptr inbounds %struct.complex, ptr %6486, i64 %6487
  %6489 = getelementptr inbounds %struct.complex, ptr %6488, i32 0, i32 0
  %6490 = load float, ptr %6489, align 4, !tbaa !11
  %6491 = load ptr, ptr %27, align 8, !tbaa !5
  %6492 = load i64, ptr %40, align 8, !tbaa !9
  %6493 = getelementptr inbounds %struct.complex, ptr %6491, i64 %6492
  %6494 = getelementptr inbounds %struct.complex, ptr %6493, i32 0, i32 1
  %6495 = load float, ptr %6494, align 4, !tbaa !15
  %6496 = load ptr, ptr %21, align 8, !tbaa !5
  %6497 = load i64, ptr %41, align 8, !tbaa !9
  %6498 = getelementptr inbounds %struct.complex, ptr %6496, i64 %6497
  %6499 = getelementptr inbounds %struct.complex, ptr %6498, i32 0, i32 1
  %6500 = load float, ptr %6499, align 4, !tbaa !15
  %6501 = fmul float %6495, %6500
  %6502 = fneg float %6501
  %6503 = call float @llvm.fmuladd.f32(float %6485, float %6490, float %6502)
  %6504 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %6503, ptr %6504, align 4, !tbaa !11
  %6505 = load ptr, ptr %27, align 8, !tbaa !5
  %6506 = load i64, ptr %40, align 8, !tbaa !9
  %6507 = getelementptr inbounds %struct.complex, ptr %6505, i64 %6506
  %6508 = getelementptr inbounds %struct.complex, ptr %6507, i32 0, i32 0
  %6509 = load float, ptr %6508, align 4, !tbaa !11
  %6510 = load ptr, ptr %21, align 8, !tbaa !5
  %6511 = load i64, ptr %41, align 8, !tbaa !9
  %6512 = getelementptr inbounds %struct.complex, ptr %6510, i64 %6511
  %6513 = getelementptr inbounds %struct.complex, ptr %6512, i32 0, i32 1
  %6514 = load float, ptr %6513, align 4, !tbaa !15
  %6515 = load ptr, ptr %27, align 8, !tbaa !5
  %6516 = load i64, ptr %40, align 8, !tbaa !9
  %6517 = getelementptr inbounds %struct.complex, ptr %6515, i64 %6516
  %6518 = getelementptr inbounds %struct.complex, ptr %6517, i32 0, i32 1
  %6519 = load float, ptr %6518, align 4, !tbaa !15
  %6520 = load ptr, ptr %21, align 8, !tbaa !5
  %6521 = load i64, ptr %41, align 8, !tbaa !9
  %6522 = getelementptr inbounds %struct.complex, ptr %6520, i64 %6521
  %6523 = getelementptr inbounds %struct.complex, ptr %6522, i32 0, i32 0
  %6524 = load float, ptr %6523, align 4, !tbaa !11
  %6525 = fmul float %6519, %6524
  %6526 = call float @llvm.fmuladd.f32(float %6509, float %6514, float %6525)
  %6527 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %6526, ptr %6527, align 4, !tbaa !15
  %6528 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %6529 = load float, ptr %6528, align 4, !tbaa !11
  %6530 = load ptr, ptr %27, align 8, !tbaa !5
  %6531 = load i64, ptr %37, align 8, !tbaa !9
  %6532 = getelementptr inbounds %struct.complex, ptr %6530, i64 %6531
  %6533 = getelementptr inbounds %struct.complex, ptr %6532, i32 0, i32 0
  store float %6529, ptr %6533, align 4, !tbaa !11
  %6534 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %6535 = load float, ptr %6534, align 4, !tbaa !15
  %6536 = load ptr, ptr %27, align 8, !tbaa !5
  %6537 = load i64, ptr %37, align 8, !tbaa !9
  %6538 = getelementptr inbounds %struct.complex, ptr %6536, i64 %6537
  %6539 = getelementptr inbounds %struct.complex, ptr %6538, i32 0, i32 1
  store float %6535, ptr %6539, align 4, !tbaa !15
  %6540 = load i64, ptr %56, align 8, !tbaa !9
  %6541 = load ptr, ptr %19, align 8, !tbaa !5
  %6542 = load i64, ptr %6541, align 8, !tbaa !9
  %6543 = add nsw i64 %6540, %6542
  %6544 = sub nsw i64 %6543, 1
  %6545 = load i64, ptr %30, align 8, !tbaa !9
  %6546 = mul nsw i64 %6544, %6545
  %6547 = add nsw i64 %6546, 1
  store i64 %6547, ptr %37, align 8, !tbaa !9
  %6548 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %6548, ptr %40, align 8, !tbaa !9
  %6549 = load i64, ptr %56, align 8, !tbaa !9
  %6550 = load ptr, ptr %19, align 8, !tbaa !5
  %6551 = load i64, ptr %6550, align 8, !tbaa !9
  %6552 = add nsw i64 %6549, %6551
  %6553 = sub nsw i64 %6552, 1
  %6554 = load i64, ptr %30, align 8, !tbaa !9
  %6555 = mul nsw i64 %6553, %6554
  %6556 = add nsw i64 %6555, 1
  store i64 %6556, ptr %41, align 8, !tbaa !9
  %6557 = load ptr, ptr %28, align 8, !tbaa !5
  %6558 = load i64, ptr %40, align 8, !tbaa !9
  %6559 = getelementptr inbounds float, ptr %6557, i64 %6558
  %6560 = load float, ptr %6559, align 4, !tbaa !14
  %6561 = load ptr, ptr %21, align 8, !tbaa !5
  %6562 = load i64, ptr %41, align 8, !tbaa !9
  %6563 = getelementptr inbounds %struct.complex, ptr %6561, i64 %6562
  %6564 = getelementptr inbounds %struct.complex, ptr %6563, i32 0, i32 0
  %6565 = load float, ptr %6564, align 4, !tbaa !11
  %6566 = fmul float %6560, %6565
  %6567 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %6566, ptr %6567, align 4, !tbaa !11
  %6568 = load ptr, ptr %28, align 8, !tbaa !5
  %6569 = load i64, ptr %40, align 8, !tbaa !9
  %6570 = getelementptr inbounds float, ptr %6568, i64 %6569
  %6571 = load float, ptr %6570, align 4, !tbaa !14
  %6572 = load ptr, ptr %21, align 8, !tbaa !5
  %6573 = load i64, ptr %41, align 8, !tbaa !9
  %6574 = getelementptr inbounds %struct.complex, ptr %6572, i64 %6573
  %6575 = getelementptr inbounds %struct.complex, ptr %6574, i32 0, i32 1
  %6576 = load float, ptr %6575, align 4, !tbaa !15
  %6577 = fmul float %6571, %6576
  %6578 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %6577, ptr %6578, align 4, !tbaa !15
  %6579 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %6580 = load float, ptr %6579, align 4, !tbaa !11
  %6581 = load ptr, ptr %21, align 8, !tbaa !5
  %6582 = load i64, ptr %37, align 8, !tbaa !9
  %6583 = getelementptr inbounds %struct.complex, ptr %6581, i64 %6582
  %6584 = getelementptr inbounds %struct.complex, ptr %6583, i32 0, i32 0
  store float %6580, ptr %6584, align 4, !tbaa !11
  %6585 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %6586 = load float, ptr %6585, align 4, !tbaa !15
  %6587 = load ptr, ptr %21, align 8, !tbaa !5
  %6588 = load i64, ptr %37, align 8, !tbaa !9
  %6589 = getelementptr inbounds %struct.complex, ptr %6587, i64 %6588
  %6590 = getelementptr inbounds %struct.complex, ptr %6589, i32 0, i32 1
  store float %6586, ptr %6590, align 4, !tbaa !15
  br label %6591

6591:                                             ; preds = %6470
  %6592 = load i64, ptr %36, align 8, !tbaa !9
  %6593 = load i64, ptr %56, align 8, !tbaa !9
  %6594 = add nsw i64 %6593, %6592
  store i64 %6594, ptr %56, align 8, !tbaa !9
  br label %6454, !llvm.loop !70

6595:                                             ; preds = %6467
  %6596 = load i64, ptr %76, align 8, !tbaa !9
  %6597 = icmp sgt i64 %6596, 0
  br i1 %6597, label %6598, label %6615

6598:                                             ; preds = %6595
  %6599 = load ptr, ptr %21, align 8, !tbaa !5
  %6600 = load i64, ptr %64, align 8, !tbaa !9
  %6601 = load ptr, ptr %19, align 8, !tbaa !5
  %6602 = load i64, ptr %6601, align 8, !tbaa !9
  %6603 = add nsw i64 %6600, %6602
  %6604 = load i64, ptr %30, align 8, !tbaa !9
  %6605 = mul nsw i64 %6603, %6604
  %6606 = add nsw i64 %6605, 1
  %6607 = getelementptr inbounds %struct.complex, ptr %6599, i64 %6606
  %6608 = load ptr, ptr %27, align 8, !tbaa !5
  %6609 = load i64, ptr %64, align 8, !tbaa !9
  %6610 = getelementptr inbounds %struct.complex, ptr %6608, i64 %6609
  %6611 = load ptr, ptr %28, align 8, !tbaa !5
  %6612 = load i64, ptr %64, align 8, !tbaa !9
  %6613 = getelementptr inbounds float, ptr %6611, i64 %6612
  %6614 = call i32 @clargv_(ptr noundef %76, ptr noundef %6607, ptr noundef %77, ptr noundef %6610, ptr noundef %69, ptr noundef %6613, ptr noundef %69)
  br label %6615

6615:                                             ; preds = %6598, %6595
  %6616 = load i64, ptr %67, align 8, !tbaa !9
  %6617 = icmp sgt i64 %6616, 0
  br i1 %6617, label %6618, label %6695

6618:                                             ; preds = %6615
  %6619 = load ptr, ptr %19, align 8, !tbaa !5
  %6620 = load i64, ptr %6619, align 8, !tbaa !9
  %6621 = sub nsw i64 %6620, 1
  store i64 %6621, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %6622

6622:                                             ; preds = %6657, %6618
  %6623 = load i64, ptr %58, align 8, !tbaa !9
  %6624 = load i64, ptr %36, align 8, !tbaa !9
  %6625 = icmp sle i64 %6623, %6624
  br i1 %6625, label %6626, label %6660

6626:                                             ; preds = %6622
  %6627 = load ptr, ptr %21, align 8, !tbaa !5
  %6628 = load i64, ptr %69, align 8, !tbaa !9
  %6629 = load i64, ptr %58, align 8, !tbaa !9
  %6630 = sub nsw i64 %6628, %6629
  %6631 = load i64, ptr %64, align 8, !tbaa !9
  %6632 = load i64, ptr %58, align 8, !tbaa !9
  %6633 = add nsw i64 %6631, %6632
  %6634 = load i64, ptr %30, align 8, !tbaa !9
  %6635 = mul nsw i64 %6633, %6634
  %6636 = add nsw i64 %6630, %6635
  %6637 = getelementptr inbounds %struct.complex, ptr %6627, i64 %6636
  %6638 = load ptr, ptr %21, align 8, !tbaa !5
  %6639 = load ptr, ptr %19, align 8, !tbaa !5
  %6640 = load i64, ptr %6639, align 8, !tbaa !9
  %6641 = load i64, ptr %58, align 8, !tbaa !9
  %6642 = sub nsw i64 %6640, %6641
  %6643 = load i64, ptr %64, align 8, !tbaa !9
  %6644 = load i64, ptr %58, align 8, !tbaa !9
  %6645 = add nsw i64 %6643, %6644
  %6646 = load i64, ptr %30, align 8, !tbaa !9
  %6647 = mul nsw i64 %6645, %6646
  %6648 = add nsw i64 %6642, %6647
  %6649 = getelementptr inbounds %struct.complex, ptr %6638, i64 %6648
  %6650 = load ptr, ptr %28, align 8, !tbaa !5
  %6651 = load i64, ptr %64, align 8, !tbaa !9
  %6652 = getelementptr inbounds float, ptr %6650, i64 %6651
  %6653 = load ptr, ptr %27, align 8, !tbaa !5
  %6654 = load i64, ptr %64, align 8, !tbaa !9
  %6655 = getelementptr inbounds %struct.complex, ptr %6653, i64 %6654
  %6656 = call i32 @clartv_(ptr noundef %67, ptr noundef %6637, ptr noundef %77, ptr noundef %6649, ptr noundef %77, ptr noundef %6652, ptr noundef %6655, ptr noundef %69)
  br label %6657

6657:                                             ; preds = %6626
  %6658 = load i64, ptr %58, align 8, !tbaa !9
  %6659 = add nsw i64 %6658, 1
  store i64 %6659, ptr %58, align 8, !tbaa !9
  br label %6622, !llvm.loop !71

6660:                                             ; preds = %6622
  %6661 = load ptr, ptr %21, align 8, !tbaa !5
  %6662 = load i64, ptr %69, align 8, !tbaa !9
  %6663 = load i64, ptr %64, align 8, !tbaa !9
  %6664 = load i64, ptr %30, align 8, !tbaa !9
  %6665 = mul nsw i64 %6663, %6664
  %6666 = add nsw i64 %6662, %6665
  %6667 = getelementptr inbounds %struct.complex, ptr %6661, i64 %6666
  %6668 = load ptr, ptr %21, align 8, !tbaa !5
  %6669 = load i64, ptr %69, align 8, !tbaa !9
  %6670 = load i64, ptr %64, align 8, !tbaa !9
  %6671 = sub nsw i64 %6670, 1
  %6672 = load i64, ptr %30, align 8, !tbaa !9
  %6673 = mul nsw i64 %6671, %6672
  %6674 = add nsw i64 %6669, %6673
  %6675 = getelementptr inbounds %struct.complex, ptr %6668, i64 %6674
  %6676 = load ptr, ptr %21, align 8, !tbaa !5
  %6677 = load ptr, ptr %19, align 8, !tbaa !5
  %6678 = load i64, ptr %6677, align 8, !tbaa !9
  %6679 = load i64, ptr %64, align 8, !tbaa !9
  %6680 = load i64, ptr %30, align 8, !tbaa !9
  %6681 = mul nsw i64 %6679, %6680
  %6682 = add nsw i64 %6678, %6681
  %6683 = getelementptr inbounds %struct.complex, ptr %6676, i64 %6682
  %6684 = load ptr, ptr %28, align 8, !tbaa !5
  %6685 = load i64, ptr %64, align 8, !tbaa !9
  %6686 = getelementptr inbounds float, ptr %6684, i64 %6685
  %6687 = load ptr, ptr %27, align 8, !tbaa !5
  %6688 = load i64, ptr %64, align 8, !tbaa !9
  %6689 = getelementptr inbounds %struct.complex, ptr %6687, i64 %6688
  %6690 = call i32 @clar2v_(ptr noundef %67, ptr noundef %6667, ptr noundef %6675, ptr noundef %6683, ptr noundef %77, ptr noundef %6686, ptr noundef %6689, ptr noundef %69)
  %6691 = load ptr, ptr %27, align 8, !tbaa !5
  %6692 = load i64, ptr %64, align 8, !tbaa !9
  %6693 = getelementptr inbounds %struct.complex, ptr %6691, i64 %6692
  %6694 = call i32 @clacgv_(ptr noundef %67, ptr noundef %6693, ptr noundef %69)
  br label %6695

6695:                                             ; preds = %6660, %6615
  %6696 = load ptr, ptr %20, align 8, !tbaa !5
  %6697 = load i64, ptr %6696, align 8, !tbaa !9
  %6698 = load i64, ptr %57, align 8, !tbaa !9
  %6699 = sub nsw i64 %6697, %6698
  %6700 = add nsw i64 %6699, 1
  store i64 %6700, ptr %36, align 8, !tbaa !9
  %6701 = load ptr, ptr %19, align 8, !tbaa !5
  %6702 = load i64, ptr %6701, align 8, !tbaa !9
  %6703 = sub nsw i64 %6702, 1
  store i64 %6703, ptr %58, align 8, !tbaa !9
  br label %6704

6704:                                             ; preds = %6748, %6695
  %6705 = load i64, ptr %58, align 8, !tbaa !9
  %6706 = load i64, ptr %36, align 8, !tbaa !9
  %6707 = icmp sge i64 %6705, %6706
  br i1 %6707, label %6708, label %6751

6708:                                             ; preds = %6704
  %6709 = load i64, ptr %65, align 8, !tbaa !9
  %6710 = load i64, ptr %58, align 8, !tbaa !9
  %6711 = add nsw i64 %6709, %6710
  %6712 = sub nsw i64 %6711, 1
  %6713 = load i64, ptr %69, align 8, !tbaa !9
  %6714 = sdiv i64 %6712, %6713
  store i64 %6714, ptr %76, align 8, !tbaa !9
  %6715 = load i64, ptr %65, align 8, !tbaa !9
  %6716 = load i64, ptr %76, align 8, !tbaa !9
  %6717 = sub nsw i64 %6716, 1
  %6718 = load i64, ptr %69, align 8, !tbaa !9
  %6719 = mul nsw i64 %6717, %6718
  %6720 = sub nsw i64 %6715, %6719
  store i64 %6720, ptr %72, align 8, !tbaa !9
  %6721 = load i64, ptr %76, align 8, !tbaa !9
  %6722 = icmp sgt i64 %6721, 0
  br i1 %6722, label %6723, label %6747

6723:                                             ; preds = %6708
  %6724 = load ptr, ptr %21, align 8, !tbaa !5
  %6725 = load i64, ptr %58, align 8, !tbaa !9
  %6726 = load i64, ptr %72, align 8, !tbaa !9
  %6727 = load i64, ptr %30, align 8, !tbaa !9
  %6728 = mul nsw i64 %6726, %6727
  %6729 = add nsw i64 %6725, %6728
  %6730 = getelementptr inbounds %struct.complex, ptr %6724, i64 %6729
  %6731 = load ptr, ptr %21, align 8, !tbaa !5
  %6732 = load i64, ptr %58, align 8, !tbaa !9
  %6733 = add nsw i64 %6732, 1
  %6734 = load i64, ptr %72, align 8, !tbaa !9
  %6735 = sub nsw i64 %6734, 1
  %6736 = load i64, ptr %30, align 8, !tbaa !9
  %6737 = mul nsw i64 %6735, %6736
  %6738 = add nsw i64 %6733, %6737
  %6739 = getelementptr inbounds %struct.complex, ptr %6731, i64 %6738
  %6740 = load ptr, ptr %28, align 8, !tbaa !5
  %6741 = load i64, ptr %72, align 8, !tbaa !9
  %6742 = getelementptr inbounds float, ptr %6740, i64 %6741
  %6743 = load ptr, ptr %27, align 8, !tbaa !5
  %6744 = load i64, ptr %72, align 8, !tbaa !9
  %6745 = getelementptr inbounds %struct.complex, ptr %6743, i64 %6744
  %6746 = call i32 @clartv_(ptr noundef %76, ptr noundef %6730, ptr noundef %77, ptr noundef %6739, ptr noundef %77, ptr noundef %6742, ptr noundef %6745, ptr noundef %69)
  br label %6747

6747:                                             ; preds = %6723, %6708
  br label %6748

6748:                                             ; preds = %6747
  %6749 = load i64, ptr %58, align 8, !tbaa !9
  %6750 = add nsw i64 %6749, -1
  store i64 %6750, ptr %58, align 8, !tbaa !9
  br label %6704, !llvm.loop !72

6751:                                             ; preds = %6704
  %6752 = load i64, ptr %79, align 8, !tbaa !9
  %6753 = icmp ne i64 %6752, 0
  br i1 %6753, label %6754, label %6800

6754:                                             ; preds = %6751
  %6755 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %6755, ptr %36, align 8, !tbaa !9
  %6756 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %6756, ptr %39, align 8, !tbaa !9
  %6757 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %6757, ptr %56, align 8, !tbaa !9
  br label %6758

6758:                                             ; preds = %6795, %6754
  %6759 = load i64, ptr %39, align 8, !tbaa !9
  %6760 = icmp slt i64 %6759, 0
  br i1 %6760, label %6761, label %6766

6761:                                             ; preds = %6758
  %6762 = load i64, ptr %56, align 8, !tbaa !9
  %6763 = load i64, ptr %36, align 8, !tbaa !9
  %6764 = icmp sge i64 %6762, %6763
  %6765 = zext i1 %6764 to i32
  br label %6771

6766:                                             ; preds = %6758
  %6767 = load i64, ptr %56, align 8, !tbaa !9
  %6768 = load i64, ptr %36, align 8, !tbaa !9
  %6769 = icmp sle i64 %6767, %6768
  %6770 = zext i1 %6769 to i32
  br label %6771

6771:                                             ; preds = %6766, %6761
  %6772 = phi i32 [ %6765, %6761 ], [ %6770, %6766 ]
  %6773 = icmp ne i32 %6772, 0
  br i1 %6773, label %6774, label %6799

6774:                                             ; preds = %6771
  %6775 = load ptr, ptr %25, align 8, !tbaa !5
  %6776 = load i64, ptr %56, align 8, !tbaa !9
  %6777 = load i64, ptr %34, align 8, !tbaa !9
  %6778 = mul nsw i64 %6776, %6777
  %6779 = add nsw i64 %6778, 1
  %6780 = getelementptr inbounds %struct.complex, ptr %6775, i64 %6779
  %6781 = load ptr, ptr %25, align 8, !tbaa !5
  %6782 = load i64, ptr %56, align 8, !tbaa !9
  %6783 = sub nsw i64 %6782, 1
  %6784 = load i64, ptr %34, align 8, !tbaa !9
  %6785 = mul nsw i64 %6783, %6784
  %6786 = add nsw i64 %6785, 1
  %6787 = getelementptr inbounds %struct.complex, ptr %6781, i64 %6786
  %6788 = load ptr, ptr %28, align 8, !tbaa !5
  %6789 = load i64, ptr %56, align 8, !tbaa !9
  %6790 = getelementptr inbounds float, ptr %6788, i64 %6789
  %6791 = load ptr, ptr %27, align 8, !tbaa !5
  %6792 = load i64, ptr %56, align 8, !tbaa !9
  %6793 = getelementptr inbounds %struct.complex, ptr %6791, i64 %6792
  %6794 = call i32 @crot_(ptr noundef %68, ptr noundef %6780, ptr noundef @c__1, ptr noundef %6787, ptr noundef @c__1, ptr noundef %6790, ptr noundef %6793)
  br label %6795

6795:                                             ; preds = %6774
  %6796 = load i64, ptr %39, align 8, !tbaa !9
  %6797 = load i64, ptr %56, align 8, !tbaa !9
  %6798 = add nsw i64 %6797, %6796
  store i64 %6798, ptr %56, align 8, !tbaa !9
  br label %6758, !llvm.loop !73

6799:                                             ; preds = %6771
  br label %6800

6800:                                             ; preds = %6799, %6751
  br label %6801

6801:                                             ; preds = %6800
  %6802 = load i64, ptr %57, align 8, !tbaa !9
  %6803 = add nsw i64 %6802, 1
  store i64 %6803, ptr %57, align 8, !tbaa !9
  br label %6071, !llvm.loop !74

6804:                                             ; preds = %6071
  %6805 = load i64, ptr %80, align 8, !tbaa !9
  %6806 = icmp ne i64 %6805, 0
  br i1 %6806, label %6807, label %6881

6807:                                             ; preds = %6804
  %6808 = load i64, ptr %63, align 8, !tbaa !9
  %6809 = icmp sgt i64 %6808, 0
  br i1 %6809, label %6810, label %6880

6810:                                             ; preds = %6807
  %6811 = load i64, ptr %75, align 8, !tbaa !9
  %6812 = icmp sgt i64 %6811, 0
  br i1 %6812, label %6813, label %6880

6813:                                             ; preds = %6810
  %6814 = load i64, ptr %59, align 8, !tbaa !9
  %6815 = load ptr, ptr %20, align 8, !tbaa !5
  %6816 = load i64, ptr %6815, align 8, !tbaa !9
  %6817 = sub nsw i64 %6814, %6816
  %6818 = load i64, ptr %55, align 8, !tbaa !9
  %6819 = add nsw i64 %6817, %6818
  %6820 = load i64, ptr %75, align 8, !tbaa !9
  %6821 = add nsw i64 %6819, %6820
  store i64 %6821, ptr %38, align 8, !tbaa !9
  %6822 = load i64, ptr %70, align 8, !tbaa !9
  %6823 = load i64, ptr %75, align 8, !tbaa !9
  %6824 = sub nsw i64 %6822, %6823
  %6825 = load i64, ptr %55, align 8, !tbaa !9
  %6826 = load i64, ptr %75, align 8, !tbaa !9
  %6827 = add nsw i64 %6825, %6826
  %6828 = load i64, ptr %32, align 8, !tbaa !9
  %6829 = mul nsw i64 %6827, %6828
  %6830 = add nsw i64 %6824, %6829
  store i64 %6830, ptr %39, align 8, !tbaa !9
  %6831 = load ptr, ptr %23, align 8, !tbaa !5
  %6832 = load i64, ptr %39, align 8, !tbaa !9
  %6833 = getelementptr inbounds %struct.complex, ptr %6831, i64 %6832
  %6834 = getelementptr inbounds %struct.complex, ptr %6833, i32 0, i32 0
  %6835 = load float, ptr %6834, align 4, !tbaa !11
  %6836 = fneg float %6835
  %6837 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %6836, ptr %6837, align 4, !tbaa !11
  %6838 = load ptr, ptr %23, align 8, !tbaa !5
  %6839 = load i64, ptr %39, align 8, !tbaa !9
  %6840 = getelementptr inbounds %struct.complex, ptr %6838, i64 %6839
  %6841 = getelementptr inbounds %struct.complex, ptr %6840, i32 0, i32 1
  %6842 = load float, ptr %6841, align 4, !tbaa !15
  %6843 = fneg float %6842
  %6844 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %6843, ptr %6844, align 4, !tbaa !15
  %6845 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %6846 = load float, ptr %6845, align 4, !tbaa !11
  %6847 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %6848 = load float, ptr %6847, align 4, !tbaa !11
  %6849 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %6850 = load float, ptr %6849, align 4, !tbaa !15
  %6851 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %6852 = load float, ptr %6851, align 4, !tbaa !15
  %6853 = fmul float %6850, %6852
  %6854 = fneg float %6853
  %6855 = call float @llvm.fmuladd.f32(float %6846, float %6848, float %6854)
  %6856 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %6855, ptr %6856, align 4, !tbaa !11
  %6857 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %6858 = load float, ptr %6857, align 4, !tbaa !11
  %6859 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %6860 = load float, ptr %6859, align 4, !tbaa !15
  %6861 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %6862 = load float, ptr %6861, align 4, !tbaa !15
  %6863 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %6864 = load float, ptr %6863, align 4, !tbaa !11
  %6865 = fmul float %6862, %6864
  %6866 = call float @llvm.fmuladd.f32(float %6858, float %6860, float %6865)
  %6867 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %6866, ptr %6867, align 4, !tbaa !15
  %6868 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %6869 = load float, ptr %6868, align 4, !tbaa !11
  %6870 = load ptr, ptr %27, align 8, !tbaa !5
  %6871 = load i64, ptr %38, align 8, !tbaa !9
  %6872 = getelementptr inbounds %struct.complex, ptr %6870, i64 %6871
  %6873 = getelementptr inbounds %struct.complex, ptr %6872, i32 0, i32 0
  store float %6869, ptr %6873, align 4, !tbaa !11
  %6874 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %6875 = load float, ptr %6874, align 4, !tbaa !15
  %6876 = load ptr, ptr %27, align 8, !tbaa !5
  %6877 = load i64, ptr %38, align 8, !tbaa !9
  %6878 = getelementptr inbounds %struct.complex, ptr %6876, i64 %6877
  %6879 = getelementptr inbounds %struct.complex, ptr %6878, i32 0, i32 1
  store float %6875, ptr %6879, align 4, !tbaa !15
  br label %6880

6880:                                             ; preds = %6813, %6810, %6807
  br label %6881

6881:                                             ; preds = %6880, %6804
  %6882 = load ptr, ptr %20, align 8, !tbaa !5
  %6883 = load i64, ptr %6882, align 8, !tbaa !9
  store i64 %6883, ptr %57, align 8, !tbaa !9
  br label %6884

6884:                                             ; preds = %7314, %6881
  %6885 = load i64, ptr %57, align 8, !tbaa !9
  %6886 = icmp sge i64 %6885, 1
  br i1 %6886, label %6887, label %7317

6887:                                             ; preds = %6884
  %6888 = load i64, ptr %80, align 8, !tbaa !9
  %6889 = icmp ne i64 %6888, 0
  br i1 %6889, label %6890, label %6912

6890:                                             ; preds = %6887
  store i64 2, ptr %38, align 8, !tbaa !9
  %6891 = load i64, ptr %57, align 8, !tbaa !9
  %6892 = load i64, ptr %61, align 8, !tbaa !9
  %6893 = add nsw i64 %6891, %6892
  %6894 = load i64, ptr %59, align 8, !tbaa !9
  %6895 = sub nsw i64 %6893, %6894
  store i64 %6895, ptr %39, align 8, !tbaa !9
  %6896 = load i64, ptr %55, align 8, !tbaa !9
  %6897 = load i64, ptr %57, align 8, !tbaa !9
  %6898 = add nsw i64 %6896, %6897
  %6899 = add nsw i64 %6898, 1
  %6900 = load i64, ptr %38, align 8, !tbaa !9
  %6901 = load i64, ptr %39, align 8, !tbaa !9
  %6902 = icmp sge i64 %6900, %6901
  br i1 %6902, label %6903, label %6905

6903:                                             ; preds = %6890
  %6904 = load i64, ptr %38, align 8, !tbaa !9
  br label %6907

6905:                                             ; preds = %6890
  %6906 = load i64, ptr %39, align 8, !tbaa !9
  br label %6907

6907:                                             ; preds = %6905, %6903
  %6908 = phi i64 [ %6904, %6903 ], [ %6906, %6905 ]
  %6909 = load i64, ptr %69, align 8, !tbaa !9
  %6910 = mul nsw i64 %6908, %6909
  %6911 = sub nsw i64 %6899, %6910
  store i64 %6911, ptr %65, align 8, !tbaa !9
  br label %6934

6912:                                             ; preds = %6887
  store i64 1, ptr %38, align 8, !tbaa !9
  %6913 = load i64, ptr %57, align 8, !tbaa !9
  %6914 = load i64, ptr %61, align 8, !tbaa !9
  %6915 = add nsw i64 %6913, %6914
  %6916 = load i64, ptr %59, align 8, !tbaa !9
  %6917 = sub nsw i64 %6915, %6916
  store i64 %6917, ptr %39, align 8, !tbaa !9
  %6918 = load i64, ptr %55, align 8, !tbaa !9
  %6919 = load i64, ptr %57, align 8, !tbaa !9
  %6920 = add nsw i64 %6918, %6919
  %6921 = add nsw i64 %6920, 1
  %6922 = load i64, ptr %38, align 8, !tbaa !9
  %6923 = load i64, ptr %39, align 8, !tbaa !9
  %6924 = icmp sge i64 %6922, %6923
  br i1 %6924, label %6925, label %6927

6925:                                             ; preds = %6912
  %6926 = load i64, ptr %38, align 8, !tbaa !9
  br label %6929

6927:                                             ; preds = %6912
  %6928 = load i64, ptr %39, align 8, !tbaa !9
  br label %6929

6929:                                             ; preds = %6927, %6925
  %6930 = phi i64 [ %6926, %6925 ], [ %6928, %6927 ]
  %6931 = load i64, ptr %69, align 8, !tbaa !9
  %6932 = mul nsw i64 %6930, %6931
  %6933 = sub nsw i64 %6921, %6932
  store i64 %6933, ptr %65, align 8, !tbaa !9
  br label %6934

6934:                                             ; preds = %6929, %6907
  %6935 = load ptr, ptr %20, align 8, !tbaa !5
  %6936 = load i64, ptr %6935, align 8, !tbaa !9
  %6937 = load i64, ptr %57, align 8, !tbaa !9
  %6938 = sub nsw i64 %6936, %6937
  store i64 %6938, ptr %58, align 8, !tbaa !9
  br label %6939

6939:                                             ; preds = %7007, %6934
  %6940 = load i64, ptr %58, align 8, !tbaa !9
  %6941 = icmp sge i64 %6940, 1
  br i1 %6941, label %6942, label %7010

6942:                                             ; preds = %6939
  %6943 = load i64, ptr %65, align 8, !tbaa !9
  %6944 = load ptr, ptr %19, align 8, !tbaa !5
  %6945 = load i64, ptr %6944, align 8, !tbaa !9
  %6946 = add nsw i64 %6943, %6945
  %6947 = load i64, ptr %58, align 8, !tbaa !9
  %6948 = add nsw i64 %6946, %6947
  %6949 = sub nsw i64 %6948, 1
  %6950 = load i64, ptr %69, align 8, !tbaa !9
  %6951 = sdiv i64 %6949, %6950
  store i64 %6951, ptr %76, align 8, !tbaa !9
  %6952 = load i64, ptr %65, align 8, !tbaa !9
  %6953 = load i64, ptr %76, align 8, !tbaa !9
  %6954 = sub nsw i64 %6953, 1
  %6955 = load i64, ptr %69, align 8, !tbaa !9
  %6956 = mul nsw i64 %6954, %6955
  %6957 = sub nsw i64 %6952, %6956
  store i64 %6957, ptr %72, align 8, !tbaa !9
  %6958 = load i64, ptr %76, align 8, !tbaa !9
  %6959 = icmp sgt i64 %6958, 0
  br i1 %6959, label %6960, label %7006

6960:                                             ; preds = %6942
  %6961 = load ptr, ptr %21, align 8, !tbaa !5
  %6962 = load i64, ptr %58, align 8, !tbaa !9
  %6963 = load i64, ptr %72, align 8, !tbaa !9
  %6964 = load ptr, ptr %19, align 8, !tbaa !5
  %6965 = load i64, ptr %6964, align 8, !tbaa !9
  %6966 = add nsw i64 %6963, %6965
  %6967 = load i64, ptr %30, align 8, !tbaa !9
  %6968 = mul nsw i64 %6966, %6967
  %6969 = add nsw i64 %6962, %6968
  %6970 = getelementptr inbounds %struct.complex, ptr %6961, i64 %6969
  %6971 = load ptr, ptr %21, align 8, !tbaa !5
  %6972 = load i64, ptr %58, align 8, !tbaa !9
  %6973 = add nsw i64 %6972, 1
  %6974 = load i64, ptr %72, align 8, !tbaa !9
  %6975 = load ptr, ptr %19, align 8, !tbaa !5
  %6976 = load i64, ptr %6975, align 8, !tbaa !9
  %6977 = add nsw i64 %6974, %6976
  %6978 = sub nsw i64 %6977, 1
  %6979 = load i64, ptr %30, align 8, !tbaa !9
  %6980 = mul nsw i64 %6978, %6979
  %6981 = add nsw i64 %6973, %6980
  %6982 = getelementptr inbounds %struct.complex, ptr %6971, i64 %6981
  %6983 = load ptr, ptr %28, align 8, !tbaa !5
  %6984 = load i64, ptr %59, align 8, !tbaa !9
  %6985 = load ptr, ptr %20, align 8, !tbaa !5
  %6986 = load i64, ptr %6985, align 8, !tbaa !9
  %6987 = sub nsw i64 %6984, %6986
  %6988 = load i64, ptr %72, align 8, !tbaa !9
  %6989 = add nsw i64 %6987, %6988
  %6990 = load ptr, ptr %19, align 8, !tbaa !5
  %6991 = load i64, ptr %6990, align 8, !tbaa !9
  %6992 = add nsw i64 %6989, %6991
  %6993 = getelementptr inbounds float, ptr %6983, i64 %6992
  %6994 = load ptr, ptr %27, align 8, !tbaa !5
  %6995 = load i64, ptr %59, align 8, !tbaa !9
  %6996 = load ptr, ptr %20, align 8, !tbaa !5
  %6997 = load i64, ptr %6996, align 8, !tbaa !9
  %6998 = sub nsw i64 %6995, %6997
  %6999 = load i64, ptr %72, align 8, !tbaa !9
  %7000 = add nsw i64 %6998, %6999
  %7001 = load ptr, ptr %19, align 8, !tbaa !5
  %7002 = load i64, ptr %7001, align 8, !tbaa !9
  %7003 = add nsw i64 %7000, %7002
  %7004 = getelementptr inbounds %struct.complex, ptr %6994, i64 %7003
  %7005 = call i32 @clartv_(ptr noundef %76, ptr noundef %6970, ptr noundef %77, ptr noundef %6982, ptr noundef %77, ptr noundef %6993, ptr noundef %7004, ptr noundef %69)
  br label %7006

7006:                                             ; preds = %6960, %6942
  br label %7007

7007:                                             ; preds = %7006
  %7008 = load i64, ptr %58, align 8, !tbaa !9
  %7009 = add nsw i64 %7008, -1
  store i64 %7009, ptr %58, align 8, !tbaa !9
  br label %6939, !llvm.loop !75

7010:                                             ; preds = %6939
  %7011 = load i64, ptr %65, align 8, !tbaa !9
  %7012 = load ptr, ptr %19, align 8, !tbaa !5
  %7013 = load i64, ptr %7012, align 8, !tbaa !9
  %7014 = add nsw i64 %7011, %7013
  %7015 = sub nsw i64 %7014, 1
  %7016 = load i64, ptr %69, align 8, !tbaa !9
  %7017 = sdiv i64 %7015, %7016
  store i64 %7017, ptr %67, align 8, !tbaa !9
  %7018 = load i64, ptr %65, align 8, !tbaa !9
  %7019 = load i64, ptr %67, align 8, !tbaa !9
  %7020 = sub nsw i64 %7019, 1
  %7021 = load i64, ptr %69, align 8, !tbaa !9
  %7022 = mul nsw i64 %7020, %7021
  %7023 = sub nsw i64 %7018, %7022
  store i64 %7023, ptr %64, align 8, !tbaa !9
  %7024 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %7024, ptr %38, align 8, !tbaa !9
  %7025 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %7025, ptr %39, align 8, !tbaa !9
  %7026 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %7026, ptr %56, align 8, !tbaa !9
  br label %7027

7027:                                             ; preds = %7097, %7010
  %7028 = load i64, ptr %39, align 8, !tbaa !9
  %7029 = icmp slt i64 %7028, 0
  br i1 %7029, label %7030, label %7035

7030:                                             ; preds = %7027
  %7031 = load i64, ptr %56, align 8, !tbaa !9
  %7032 = load i64, ptr %38, align 8, !tbaa !9
  %7033 = icmp sge i64 %7031, %7032
  %7034 = zext i1 %7033 to i32
  br label %7040

7035:                                             ; preds = %7027
  %7036 = load i64, ptr %56, align 8, !tbaa !9
  %7037 = load i64, ptr %38, align 8, !tbaa !9
  %7038 = icmp sle i64 %7036, %7037
  %7039 = zext i1 %7038 to i32
  br label %7040

7040:                                             ; preds = %7035, %7030
  %7041 = phi i32 [ %7034, %7030 ], [ %7039, %7035 ]
  %7042 = icmp ne i32 %7041, 0
  br i1 %7042, label %7043, label %7101

7043:                                             ; preds = %7040
  %7044 = load i64, ptr %59, align 8, !tbaa !9
  %7045 = load ptr, ptr %20, align 8, !tbaa !5
  %7046 = load i64, ptr %7045, align 8, !tbaa !9
  %7047 = sub nsw i64 %7044, %7046
  %7048 = load i64, ptr %56, align 8, !tbaa !9
  %7049 = add nsw i64 %7047, %7048
  store i64 %7049, ptr %36, align 8, !tbaa !9
  %7050 = load i64, ptr %59, align 8, !tbaa !9
  %7051 = load ptr, ptr %20, align 8, !tbaa !5
  %7052 = load i64, ptr %7051, align 8, !tbaa !9
  %7053 = sub nsw i64 %7050, %7052
  %7054 = load i64, ptr %56, align 8, !tbaa !9
  %7055 = add nsw i64 %7053, %7054
  %7056 = load ptr, ptr %19, align 8, !tbaa !5
  %7057 = load i64, ptr %7056, align 8, !tbaa !9
  %7058 = add nsw i64 %7055, %7057
  store i64 %7058, ptr %37, align 8, !tbaa !9
  %7059 = load ptr, ptr %27, align 8, !tbaa !5
  %7060 = load i64, ptr %37, align 8, !tbaa !9
  %7061 = getelementptr inbounds %struct.complex, ptr %7059, i64 %7060
  %7062 = getelementptr inbounds %struct.complex, ptr %7061, i32 0, i32 0
  %7063 = load float, ptr %7062, align 4, !tbaa !11
  %7064 = load ptr, ptr %27, align 8, !tbaa !5
  %7065 = load i64, ptr %36, align 8, !tbaa !9
  %7066 = getelementptr inbounds %struct.complex, ptr %7064, i64 %7065
  %7067 = getelementptr inbounds %struct.complex, ptr %7066, i32 0, i32 0
  store float %7063, ptr %7067, align 4, !tbaa !11
  %7068 = load ptr, ptr %27, align 8, !tbaa !5
  %7069 = load i64, ptr %37, align 8, !tbaa !9
  %7070 = getelementptr inbounds %struct.complex, ptr %7068, i64 %7069
  %7071 = getelementptr inbounds %struct.complex, ptr %7070, i32 0, i32 1
  %7072 = load float, ptr %7071, align 4, !tbaa !15
  %7073 = load ptr, ptr %27, align 8, !tbaa !5
  %7074 = load i64, ptr %36, align 8, !tbaa !9
  %7075 = getelementptr inbounds %struct.complex, ptr %7073, i64 %7074
  %7076 = getelementptr inbounds %struct.complex, ptr %7075, i32 0, i32 1
  store float %7072, ptr %7076, align 4, !tbaa !15
  %7077 = load ptr, ptr %28, align 8, !tbaa !5
  %7078 = load i64, ptr %59, align 8, !tbaa !9
  %7079 = load ptr, ptr %20, align 8, !tbaa !5
  %7080 = load i64, ptr %7079, align 8, !tbaa !9
  %7081 = sub nsw i64 %7078, %7080
  %7082 = load i64, ptr %56, align 8, !tbaa !9
  %7083 = add nsw i64 %7081, %7082
  %7084 = load ptr, ptr %19, align 8, !tbaa !5
  %7085 = load i64, ptr %7084, align 8, !tbaa !9
  %7086 = add nsw i64 %7083, %7085
  %7087 = getelementptr inbounds float, ptr %7077, i64 %7086
  %7088 = load float, ptr %7087, align 4, !tbaa !14
  %7089 = load ptr, ptr %28, align 8, !tbaa !5
  %7090 = load i64, ptr %59, align 8, !tbaa !9
  %7091 = load ptr, ptr %20, align 8, !tbaa !5
  %7092 = load i64, ptr %7091, align 8, !tbaa !9
  %7093 = sub nsw i64 %7090, %7092
  %7094 = load i64, ptr %56, align 8, !tbaa !9
  %7095 = add nsw i64 %7093, %7094
  %7096 = getelementptr inbounds float, ptr %7089, i64 %7095
  store float %7088, ptr %7096, align 4, !tbaa !14
  br label %7097

7097:                                             ; preds = %7043
  %7098 = load i64, ptr %39, align 8, !tbaa !9
  %7099 = load i64, ptr %56, align 8, !tbaa !9
  %7100 = add nsw i64 %7099, %7098
  store i64 %7100, ptr %56, align 8, !tbaa !9
  br label %7027, !llvm.loop !76

7101:                                             ; preds = %7040
  %7102 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %7102, ptr %39, align 8, !tbaa !9
  %7103 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %7103, ptr %38, align 8, !tbaa !9
  %7104 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %7104, ptr %56, align 8, !tbaa !9
  br label %7105

7105:                                             ; preds = %7257, %7101
  %7106 = load i64, ptr %38, align 8, !tbaa !9
  %7107 = icmp slt i64 %7106, 0
  br i1 %7107, label %7108, label %7113

7108:                                             ; preds = %7105
  %7109 = load i64, ptr %56, align 8, !tbaa !9
  %7110 = load i64, ptr %39, align 8, !tbaa !9
  %7111 = icmp sge i64 %7109, %7110
  %7112 = zext i1 %7111 to i32
  br label %7118

7113:                                             ; preds = %7105
  %7114 = load i64, ptr %56, align 8, !tbaa !9
  %7115 = load i64, ptr %39, align 8, !tbaa !9
  %7116 = icmp sle i64 %7114, %7115
  %7117 = zext i1 %7116 to i32
  br label %7118

7118:                                             ; preds = %7113, %7108
  %7119 = phi i32 [ %7112, %7108 ], [ %7117, %7113 ]
  %7120 = icmp ne i32 %7119, 0
  br i1 %7120, label %7121, label %7261

7121:                                             ; preds = %7118
  %7122 = load i64, ptr %59, align 8, !tbaa !9
  %7123 = load ptr, ptr %20, align 8, !tbaa !5
  %7124 = load i64, ptr %7123, align 8, !tbaa !9
  %7125 = sub nsw i64 %7122, %7124
  %7126 = load i64, ptr %56, align 8, !tbaa !9
  %7127 = add nsw i64 %7125, %7126
  store i64 %7127, ptr %36, align 8, !tbaa !9
  %7128 = load i64, ptr %59, align 8, !tbaa !9
  %7129 = load ptr, ptr %20, align 8, !tbaa !5
  %7130 = load i64, ptr %7129, align 8, !tbaa !9
  %7131 = sub nsw i64 %7128, %7130
  %7132 = load i64, ptr %56, align 8, !tbaa !9
  %7133 = add nsw i64 %7131, %7132
  store i64 %7133, ptr %37, align 8, !tbaa !9
  %7134 = load i64, ptr %56, align 8, !tbaa !9
  %7135 = load ptr, ptr %19, align 8, !tbaa !5
  %7136 = load i64, ptr %7135, align 8, !tbaa !9
  %7137 = add nsw i64 %7134, %7136
  %7138 = sub nsw i64 %7137, 1
  %7139 = load i64, ptr %30, align 8, !tbaa !9
  %7140 = mul nsw i64 %7138, %7139
  %7141 = add nsw i64 %7140, 1
  store i64 %7141, ptr %40, align 8, !tbaa !9
  %7142 = load ptr, ptr %27, align 8, !tbaa !5
  %7143 = load i64, ptr %37, align 8, !tbaa !9
  %7144 = getelementptr inbounds %struct.complex, ptr %7142, i64 %7143
  %7145 = getelementptr inbounds %struct.complex, ptr %7144, i32 0, i32 0
  %7146 = load float, ptr %7145, align 4, !tbaa !11
  %7147 = load ptr, ptr %21, align 8, !tbaa !5
  %7148 = load i64, ptr %40, align 8, !tbaa !9
  %7149 = getelementptr inbounds %struct.complex, ptr %7147, i64 %7148
  %7150 = getelementptr inbounds %struct.complex, ptr %7149, i32 0, i32 0
  %7151 = load float, ptr %7150, align 4, !tbaa !11
  %7152 = load ptr, ptr %27, align 8, !tbaa !5
  %7153 = load i64, ptr %37, align 8, !tbaa !9
  %7154 = getelementptr inbounds %struct.complex, ptr %7152, i64 %7153
  %7155 = getelementptr inbounds %struct.complex, ptr %7154, i32 0, i32 1
  %7156 = load float, ptr %7155, align 4, !tbaa !15
  %7157 = load ptr, ptr %21, align 8, !tbaa !5
  %7158 = load i64, ptr %40, align 8, !tbaa !9
  %7159 = getelementptr inbounds %struct.complex, ptr %7157, i64 %7158
  %7160 = getelementptr inbounds %struct.complex, ptr %7159, i32 0, i32 1
  %7161 = load float, ptr %7160, align 4, !tbaa !15
  %7162 = fmul float %7156, %7161
  %7163 = fneg float %7162
  %7164 = call float @llvm.fmuladd.f32(float %7146, float %7151, float %7163)
  %7165 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %7164, ptr %7165, align 4, !tbaa !11
  %7166 = load ptr, ptr %27, align 8, !tbaa !5
  %7167 = load i64, ptr %37, align 8, !tbaa !9
  %7168 = getelementptr inbounds %struct.complex, ptr %7166, i64 %7167
  %7169 = getelementptr inbounds %struct.complex, ptr %7168, i32 0, i32 0
  %7170 = load float, ptr %7169, align 4, !tbaa !11
  %7171 = load ptr, ptr %21, align 8, !tbaa !5
  %7172 = load i64, ptr %40, align 8, !tbaa !9
  %7173 = getelementptr inbounds %struct.complex, ptr %7171, i64 %7172
  %7174 = getelementptr inbounds %struct.complex, ptr %7173, i32 0, i32 1
  %7175 = load float, ptr %7174, align 4, !tbaa !15
  %7176 = load ptr, ptr %27, align 8, !tbaa !5
  %7177 = load i64, ptr %37, align 8, !tbaa !9
  %7178 = getelementptr inbounds %struct.complex, ptr %7176, i64 %7177
  %7179 = getelementptr inbounds %struct.complex, ptr %7178, i32 0, i32 1
  %7180 = load float, ptr %7179, align 4, !tbaa !15
  %7181 = load ptr, ptr %21, align 8, !tbaa !5
  %7182 = load i64, ptr %40, align 8, !tbaa !9
  %7183 = getelementptr inbounds %struct.complex, ptr %7181, i64 %7182
  %7184 = getelementptr inbounds %struct.complex, ptr %7183, i32 0, i32 0
  %7185 = load float, ptr %7184, align 4, !tbaa !11
  %7186 = fmul float %7180, %7185
  %7187 = call float @llvm.fmuladd.f32(float %7170, float %7175, float %7186)
  %7188 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %7187, ptr %7188, align 4, !tbaa !15
  %7189 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %7190 = load float, ptr %7189, align 4, !tbaa !11
  %7191 = load ptr, ptr %27, align 8, !tbaa !5
  %7192 = load i64, ptr %36, align 8, !tbaa !9
  %7193 = getelementptr inbounds %struct.complex, ptr %7191, i64 %7192
  %7194 = getelementptr inbounds %struct.complex, ptr %7193, i32 0, i32 0
  store float %7190, ptr %7194, align 4, !tbaa !11
  %7195 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %7196 = load float, ptr %7195, align 4, !tbaa !15
  %7197 = load ptr, ptr %27, align 8, !tbaa !5
  %7198 = load i64, ptr %36, align 8, !tbaa !9
  %7199 = getelementptr inbounds %struct.complex, ptr %7197, i64 %7198
  %7200 = getelementptr inbounds %struct.complex, ptr %7199, i32 0, i32 1
  store float %7196, ptr %7200, align 4, !tbaa !15
  %7201 = load i64, ptr %56, align 8, !tbaa !9
  %7202 = load ptr, ptr %19, align 8, !tbaa !5
  %7203 = load i64, ptr %7202, align 8, !tbaa !9
  %7204 = add nsw i64 %7201, %7203
  %7205 = sub nsw i64 %7204, 1
  %7206 = load i64, ptr %30, align 8, !tbaa !9
  %7207 = mul nsw i64 %7205, %7206
  %7208 = add nsw i64 %7207, 1
  store i64 %7208, ptr %36, align 8, !tbaa !9
  %7209 = load i64, ptr %59, align 8, !tbaa !9
  %7210 = load ptr, ptr %20, align 8, !tbaa !5
  %7211 = load i64, ptr %7210, align 8, !tbaa !9
  %7212 = sub nsw i64 %7209, %7211
  %7213 = load i64, ptr %56, align 8, !tbaa !9
  %7214 = add nsw i64 %7212, %7213
  store i64 %7214, ptr %37, align 8, !tbaa !9
  %7215 = load i64, ptr %56, align 8, !tbaa !9
  %7216 = load ptr, ptr %19, align 8, !tbaa !5
  %7217 = load i64, ptr %7216, align 8, !tbaa !9
  %7218 = add nsw i64 %7215, %7217
  %7219 = sub nsw i64 %7218, 1
  %7220 = load i64, ptr %30, align 8, !tbaa !9
  %7221 = mul nsw i64 %7219, %7220
  %7222 = add nsw i64 %7221, 1
  store i64 %7222, ptr %40, align 8, !tbaa !9
  %7223 = load ptr, ptr %28, align 8, !tbaa !5
  %7224 = load i64, ptr %37, align 8, !tbaa !9
  %7225 = getelementptr inbounds float, ptr %7223, i64 %7224
  %7226 = load float, ptr %7225, align 4, !tbaa !14
  %7227 = load ptr, ptr %21, align 8, !tbaa !5
  %7228 = load i64, ptr %40, align 8, !tbaa !9
  %7229 = getelementptr inbounds %struct.complex, ptr %7227, i64 %7228
  %7230 = getelementptr inbounds %struct.complex, ptr %7229, i32 0, i32 0
  %7231 = load float, ptr %7230, align 4, !tbaa !11
  %7232 = fmul float %7226, %7231
  %7233 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %7232, ptr %7233, align 4, !tbaa !11
  %7234 = load ptr, ptr %28, align 8, !tbaa !5
  %7235 = load i64, ptr %37, align 8, !tbaa !9
  %7236 = getelementptr inbounds float, ptr %7234, i64 %7235
  %7237 = load float, ptr %7236, align 4, !tbaa !14
  %7238 = load ptr, ptr %21, align 8, !tbaa !5
  %7239 = load i64, ptr %40, align 8, !tbaa !9
  %7240 = getelementptr inbounds %struct.complex, ptr %7238, i64 %7239
  %7241 = getelementptr inbounds %struct.complex, ptr %7240, i32 0, i32 1
  %7242 = load float, ptr %7241, align 4, !tbaa !15
  %7243 = fmul float %7237, %7242
  %7244 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %7243, ptr %7244, align 4, !tbaa !15
  %7245 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %7246 = load float, ptr %7245, align 4, !tbaa !11
  %7247 = load ptr, ptr %21, align 8, !tbaa !5
  %7248 = load i64, ptr %36, align 8, !tbaa !9
  %7249 = getelementptr inbounds %struct.complex, ptr %7247, i64 %7248
  %7250 = getelementptr inbounds %struct.complex, ptr %7249, i32 0, i32 0
  store float %7246, ptr %7250, align 4, !tbaa !11
  %7251 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %7252 = load float, ptr %7251, align 4, !tbaa !15
  %7253 = load ptr, ptr %21, align 8, !tbaa !5
  %7254 = load i64, ptr %36, align 8, !tbaa !9
  %7255 = getelementptr inbounds %struct.complex, ptr %7253, i64 %7254
  %7256 = getelementptr inbounds %struct.complex, ptr %7255, i32 0, i32 1
  store float %7252, ptr %7256, align 4, !tbaa !15
  br label %7257

7257:                                             ; preds = %7121
  %7258 = load i64, ptr %38, align 8, !tbaa !9
  %7259 = load i64, ptr %56, align 8, !tbaa !9
  %7260 = add nsw i64 %7259, %7258
  store i64 %7260, ptr %56, align 8, !tbaa !9
  br label %7105, !llvm.loop !77

7261:                                             ; preds = %7118
  %7262 = load i64, ptr %80, align 8, !tbaa !9
  %7263 = icmp ne i64 %7262, 0
  br i1 %7263, label %7264, label %7313

7264:                                             ; preds = %7261
  %7265 = load i64, ptr %55, align 8, !tbaa !9
  %7266 = load i64, ptr %57, align 8, !tbaa !9
  %7267 = add nsw i64 %7265, %7266
  %7268 = load i64, ptr %69, align 8, !tbaa !9
  %7269 = icmp sgt i64 %7267, %7268
  br i1 %7269, label %7270, label %7312

7270:                                             ; preds = %7264
  %7271 = load i64, ptr %57, align 8, !tbaa !9
  %7272 = load i64, ptr %75, align 8, !tbaa !9
  %7273 = icmp sle i64 %7271, %7272
  br i1 %7273, label %7274, label %7312

7274:                                             ; preds = %7270
  %7275 = load i64, ptr %59, align 8, !tbaa !9
  %7276 = load ptr, ptr %20, align 8, !tbaa !5
  %7277 = load i64, ptr %7276, align 8, !tbaa !9
  %7278 = sub nsw i64 %7275, %7277
  %7279 = load i64, ptr %55, align 8, !tbaa !9
  %7280 = add nsw i64 %7278, %7279
  %7281 = load i64, ptr %57, align 8, !tbaa !9
  %7282 = add nsw i64 %7280, %7281
  %7283 = load ptr, ptr %19, align 8, !tbaa !5
  %7284 = load i64, ptr %7283, align 8, !tbaa !9
  %7285 = sub nsw i64 %7282, %7284
  store i64 %7285, ptr %38, align 8, !tbaa !9
  %7286 = load i64, ptr %59, align 8, !tbaa !9
  %7287 = load ptr, ptr %20, align 8, !tbaa !5
  %7288 = load i64, ptr %7287, align 8, !tbaa !9
  %7289 = sub nsw i64 %7286, %7288
  %7290 = load i64, ptr %55, align 8, !tbaa !9
  %7291 = add nsw i64 %7289, %7290
  %7292 = load i64, ptr %57, align 8, !tbaa !9
  %7293 = add nsw i64 %7291, %7292
  store i64 %7293, ptr %39, align 8, !tbaa !9
  %7294 = load ptr, ptr %27, align 8, !tbaa !5
  %7295 = load i64, ptr %39, align 8, !tbaa !9
  %7296 = getelementptr inbounds %struct.complex, ptr %7294, i64 %7295
  %7297 = getelementptr inbounds %struct.complex, ptr %7296, i32 0, i32 0
  %7298 = load float, ptr %7297, align 4, !tbaa !11
  %7299 = load ptr, ptr %27, align 8, !tbaa !5
  %7300 = load i64, ptr %38, align 8, !tbaa !9
  %7301 = getelementptr inbounds %struct.complex, ptr %7299, i64 %7300
  %7302 = getelementptr inbounds %struct.complex, ptr %7301, i32 0, i32 0
  store float %7298, ptr %7302, align 4, !tbaa !11
  %7303 = load ptr, ptr %27, align 8, !tbaa !5
  %7304 = load i64, ptr %39, align 8, !tbaa !9
  %7305 = getelementptr inbounds %struct.complex, ptr %7303, i64 %7304
  %7306 = getelementptr inbounds %struct.complex, ptr %7305, i32 0, i32 1
  %7307 = load float, ptr %7306, align 4, !tbaa !15
  %7308 = load ptr, ptr %27, align 8, !tbaa !5
  %7309 = load i64, ptr %38, align 8, !tbaa !9
  %7310 = getelementptr inbounds %struct.complex, ptr %7308, i64 %7309
  %7311 = getelementptr inbounds %struct.complex, ptr %7310, i32 0, i32 1
  store float %7307, ptr %7311, align 4, !tbaa !15
  br label %7312

7312:                                             ; preds = %7274, %7270, %7264
  br label %7313

7313:                                             ; preds = %7312, %7261
  br label %7314

7314:                                             ; preds = %7313
  %7315 = load i64, ptr %57, align 8, !tbaa !9
  %7316 = add nsw i64 %7315, -1
  store i64 %7316, ptr %57, align 8, !tbaa !9
  br label %6884, !llvm.loop !78

7317:                                             ; preds = %6884
  %7318 = load ptr, ptr %20, align 8, !tbaa !5
  %7319 = load i64, ptr %7318, align 8, !tbaa !9
  store i64 %7319, ptr %57, align 8, !tbaa !9
  br label %7320

7320:                                             ; preds = %7614, %7317
  %7321 = load i64, ptr %57, align 8, !tbaa !9
  %7322 = icmp sge i64 %7321, 1
  br i1 %7322, label %7323, label %7617

7323:                                             ; preds = %7320
  store i64 1, ptr %38, align 8, !tbaa !9
  %7324 = load i64, ptr %57, align 8, !tbaa !9
  %7325 = load i64, ptr %61, align 8, !tbaa !9
  %7326 = add nsw i64 %7324, %7325
  %7327 = load i64, ptr %59, align 8, !tbaa !9
  %7328 = sub nsw i64 %7326, %7327
  store i64 %7328, ptr %39, align 8, !tbaa !9
  %7329 = load i64, ptr %55, align 8, !tbaa !9
  %7330 = load i64, ptr %57, align 8, !tbaa !9
  %7331 = add nsw i64 %7329, %7330
  %7332 = add nsw i64 %7331, 1
  %7333 = load i64, ptr %38, align 8, !tbaa !9
  %7334 = load i64, ptr %39, align 8, !tbaa !9
  %7335 = icmp sge i64 %7333, %7334
  br i1 %7335, label %7336, label %7338

7336:                                             ; preds = %7323
  %7337 = load i64, ptr %38, align 8, !tbaa !9
  br label %7340

7338:                                             ; preds = %7323
  %7339 = load i64, ptr %39, align 8, !tbaa !9
  br label %7340

7340:                                             ; preds = %7338, %7336
  %7341 = phi i64 [ %7337, %7336 ], [ %7339, %7338 ]
  %7342 = load i64, ptr %69, align 8, !tbaa !9
  %7343 = mul nsw i64 %7341, %7342
  %7344 = sub nsw i64 %7332, %7343
  store i64 %7344, ptr %65, align 8, !tbaa !9
  %7345 = load i64, ptr %65, align 8, !tbaa !9
  %7346 = load ptr, ptr %19, align 8, !tbaa !5
  %7347 = load i64, ptr %7346, align 8, !tbaa !9
  %7348 = add nsw i64 %7345, %7347
  %7349 = sub nsw i64 %7348, 1
  %7350 = load i64, ptr %69, align 8, !tbaa !9
  %7351 = sdiv i64 %7349, %7350
  store i64 %7351, ptr %67, align 8, !tbaa !9
  %7352 = load i64, ptr %65, align 8, !tbaa !9
  %7353 = load i64, ptr %67, align 8, !tbaa !9
  %7354 = sub nsw i64 %7353, 1
  %7355 = load i64, ptr %69, align 8, !tbaa !9
  %7356 = mul nsw i64 %7354, %7355
  %7357 = sub nsw i64 %7352, %7356
  store i64 %7357, ptr %64, align 8, !tbaa !9
  %7358 = load i64, ptr %67, align 8, !tbaa !9
  %7359 = icmp sgt i64 %7358, 0
  br i1 %7359, label %7360, label %7488

7360:                                             ; preds = %7340
  %7361 = load ptr, ptr %21, align 8, !tbaa !5
  %7362 = load i64, ptr %64, align 8, !tbaa !9
  %7363 = load ptr, ptr %19, align 8, !tbaa !5
  %7364 = load i64, ptr %7363, align 8, !tbaa !9
  %7365 = add nsw i64 %7362, %7364
  %7366 = load i64, ptr %30, align 8, !tbaa !9
  %7367 = mul nsw i64 %7365, %7366
  %7368 = add nsw i64 %7367, 1
  %7369 = getelementptr inbounds %struct.complex, ptr %7361, i64 %7368
  %7370 = load ptr, ptr %27, align 8, !tbaa !5
  %7371 = load i64, ptr %59, align 8, !tbaa !9
  %7372 = load ptr, ptr %20, align 8, !tbaa !5
  %7373 = load i64, ptr %7372, align 8, !tbaa !9
  %7374 = sub nsw i64 %7371, %7373
  %7375 = load i64, ptr %64, align 8, !tbaa !9
  %7376 = add nsw i64 %7374, %7375
  %7377 = getelementptr inbounds %struct.complex, ptr %7370, i64 %7376
  %7378 = load ptr, ptr %28, align 8, !tbaa !5
  %7379 = load i64, ptr %59, align 8, !tbaa !9
  %7380 = load ptr, ptr %20, align 8, !tbaa !5
  %7381 = load i64, ptr %7380, align 8, !tbaa !9
  %7382 = sub nsw i64 %7379, %7381
  %7383 = load i64, ptr %64, align 8, !tbaa !9
  %7384 = add nsw i64 %7382, %7383
  %7385 = getelementptr inbounds float, ptr %7378, i64 %7384
  %7386 = call i32 @clargv_(ptr noundef %67, ptr noundef %7369, ptr noundef %77, ptr noundef %7377, ptr noundef %69, ptr noundef %7385, ptr noundef %69)
  %7387 = load ptr, ptr %19, align 8, !tbaa !5
  %7388 = load i64, ptr %7387, align 8, !tbaa !9
  %7389 = sub nsw i64 %7388, 1
  store i64 %7389, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %7390

7390:                                             ; preds = %7435, %7360
  %7391 = load i64, ptr %58, align 8, !tbaa !9
  %7392 = load i64, ptr %38, align 8, !tbaa !9
  %7393 = icmp sle i64 %7391, %7392
  br i1 %7393, label %7394, label %7438

7394:                                             ; preds = %7390
  %7395 = load ptr, ptr %21, align 8, !tbaa !5
  %7396 = load i64, ptr %69, align 8, !tbaa !9
  %7397 = load i64, ptr %58, align 8, !tbaa !9
  %7398 = sub nsw i64 %7396, %7397
  %7399 = load i64, ptr %64, align 8, !tbaa !9
  %7400 = load i64, ptr %58, align 8, !tbaa !9
  %7401 = add nsw i64 %7399, %7400
  %7402 = load i64, ptr %30, align 8, !tbaa !9
  %7403 = mul nsw i64 %7401, %7402
  %7404 = add nsw i64 %7398, %7403
  %7405 = getelementptr inbounds %struct.complex, ptr %7395, i64 %7404
  %7406 = load ptr, ptr %21, align 8, !tbaa !5
  %7407 = load ptr, ptr %19, align 8, !tbaa !5
  %7408 = load i64, ptr %7407, align 8, !tbaa !9
  %7409 = load i64, ptr %58, align 8, !tbaa !9
  %7410 = sub nsw i64 %7408, %7409
  %7411 = load i64, ptr %64, align 8, !tbaa !9
  %7412 = load i64, ptr %58, align 8, !tbaa !9
  %7413 = add nsw i64 %7411, %7412
  %7414 = load i64, ptr %30, align 8, !tbaa !9
  %7415 = mul nsw i64 %7413, %7414
  %7416 = add nsw i64 %7410, %7415
  %7417 = getelementptr inbounds %struct.complex, ptr %7406, i64 %7416
  %7418 = load ptr, ptr %28, align 8, !tbaa !5
  %7419 = load i64, ptr %59, align 8, !tbaa !9
  %7420 = load ptr, ptr %20, align 8, !tbaa !5
  %7421 = load i64, ptr %7420, align 8, !tbaa !9
  %7422 = sub nsw i64 %7419, %7421
  %7423 = load i64, ptr %64, align 8, !tbaa !9
  %7424 = add nsw i64 %7422, %7423
  %7425 = getelementptr inbounds float, ptr %7418, i64 %7424
  %7426 = load ptr, ptr %27, align 8, !tbaa !5
  %7427 = load i64, ptr %59, align 8, !tbaa !9
  %7428 = load ptr, ptr %20, align 8, !tbaa !5
  %7429 = load i64, ptr %7428, align 8, !tbaa !9
  %7430 = sub nsw i64 %7427, %7429
  %7431 = load i64, ptr %64, align 8, !tbaa !9
  %7432 = add nsw i64 %7430, %7431
  %7433 = getelementptr inbounds %struct.complex, ptr %7426, i64 %7432
  %7434 = call i32 @clartv_(ptr noundef %67, ptr noundef %7405, ptr noundef %77, ptr noundef %7417, ptr noundef %77, ptr noundef %7425, ptr noundef %7433, ptr noundef %69)
  br label %7435

7435:                                             ; preds = %7394
  %7436 = load i64, ptr %58, align 8, !tbaa !9
  %7437 = add nsw i64 %7436, 1
  store i64 %7437, ptr %58, align 8, !tbaa !9
  br label %7390, !llvm.loop !79

7438:                                             ; preds = %7390
  %7439 = load ptr, ptr %21, align 8, !tbaa !5
  %7440 = load i64, ptr %69, align 8, !tbaa !9
  %7441 = load i64, ptr %64, align 8, !tbaa !9
  %7442 = load i64, ptr %30, align 8, !tbaa !9
  %7443 = mul nsw i64 %7441, %7442
  %7444 = add nsw i64 %7440, %7443
  %7445 = getelementptr inbounds %struct.complex, ptr %7439, i64 %7444
  %7446 = load ptr, ptr %21, align 8, !tbaa !5
  %7447 = load i64, ptr %69, align 8, !tbaa !9
  %7448 = load i64, ptr %64, align 8, !tbaa !9
  %7449 = sub nsw i64 %7448, 1
  %7450 = load i64, ptr %30, align 8, !tbaa !9
  %7451 = mul nsw i64 %7449, %7450
  %7452 = add nsw i64 %7447, %7451
  %7453 = getelementptr inbounds %struct.complex, ptr %7446, i64 %7452
  %7454 = load ptr, ptr %21, align 8, !tbaa !5
  %7455 = load ptr, ptr %19, align 8, !tbaa !5
  %7456 = load i64, ptr %7455, align 8, !tbaa !9
  %7457 = load i64, ptr %64, align 8, !tbaa !9
  %7458 = load i64, ptr %30, align 8, !tbaa !9
  %7459 = mul nsw i64 %7457, %7458
  %7460 = add nsw i64 %7456, %7459
  %7461 = getelementptr inbounds %struct.complex, ptr %7454, i64 %7460
  %7462 = load ptr, ptr %28, align 8, !tbaa !5
  %7463 = load i64, ptr %59, align 8, !tbaa !9
  %7464 = load ptr, ptr %20, align 8, !tbaa !5
  %7465 = load i64, ptr %7464, align 8, !tbaa !9
  %7466 = sub nsw i64 %7463, %7465
  %7467 = load i64, ptr %64, align 8, !tbaa !9
  %7468 = add nsw i64 %7466, %7467
  %7469 = getelementptr inbounds float, ptr %7462, i64 %7468
  %7470 = load ptr, ptr %27, align 8, !tbaa !5
  %7471 = load i64, ptr %59, align 8, !tbaa !9
  %7472 = load ptr, ptr %20, align 8, !tbaa !5
  %7473 = load i64, ptr %7472, align 8, !tbaa !9
  %7474 = sub nsw i64 %7471, %7473
  %7475 = load i64, ptr %64, align 8, !tbaa !9
  %7476 = add nsw i64 %7474, %7475
  %7477 = getelementptr inbounds %struct.complex, ptr %7470, i64 %7476
  %7478 = call i32 @clar2v_(ptr noundef %67, ptr noundef %7445, ptr noundef %7453, ptr noundef %7461, ptr noundef %77, ptr noundef %7469, ptr noundef %7477, ptr noundef %69)
  %7479 = load ptr, ptr %27, align 8, !tbaa !5
  %7480 = load i64, ptr %59, align 8, !tbaa !9
  %7481 = load ptr, ptr %20, align 8, !tbaa !5
  %7482 = load i64, ptr %7481, align 8, !tbaa !9
  %7483 = sub nsw i64 %7480, %7482
  %7484 = load i64, ptr %64, align 8, !tbaa !9
  %7485 = add nsw i64 %7483, %7484
  %7486 = getelementptr inbounds %struct.complex, ptr %7479, i64 %7485
  %7487 = call i32 @clacgv_(ptr noundef %67, ptr noundef %7486, ptr noundef %69)
  br label %7488

7488:                                             ; preds = %7438, %7340
  %7489 = load ptr, ptr %20, align 8, !tbaa !5
  %7490 = load i64, ptr %7489, align 8, !tbaa !9
  %7491 = load i64, ptr %57, align 8, !tbaa !9
  %7492 = sub nsw i64 %7490, %7491
  %7493 = add nsw i64 %7492, 1
  store i64 %7493, ptr %38, align 8, !tbaa !9
  %7494 = load ptr, ptr %19, align 8, !tbaa !5
  %7495 = load i64, ptr %7494, align 8, !tbaa !9
  %7496 = sub nsw i64 %7495, 1
  store i64 %7496, ptr %58, align 8, !tbaa !9
  br label %7497

7497:                                             ; preds = %7551, %7488
  %7498 = load i64, ptr %58, align 8, !tbaa !9
  %7499 = load i64, ptr %38, align 8, !tbaa !9
  %7500 = icmp sge i64 %7498, %7499
  br i1 %7500, label %7501, label %7554

7501:                                             ; preds = %7497
  %7502 = load i64, ptr %65, align 8, !tbaa !9
  %7503 = load i64, ptr %58, align 8, !tbaa !9
  %7504 = add nsw i64 %7502, %7503
  %7505 = sub nsw i64 %7504, 1
  %7506 = load i64, ptr %69, align 8, !tbaa !9
  %7507 = sdiv i64 %7505, %7506
  store i64 %7507, ptr %76, align 8, !tbaa !9
  %7508 = load i64, ptr %65, align 8, !tbaa !9
  %7509 = load i64, ptr %76, align 8, !tbaa !9
  %7510 = sub nsw i64 %7509, 1
  %7511 = load i64, ptr %69, align 8, !tbaa !9
  %7512 = mul nsw i64 %7510, %7511
  %7513 = sub nsw i64 %7508, %7512
  store i64 %7513, ptr %72, align 8, !tbaa !9
  %7514 = load i64, ptr %76, align 8, !tbaa !9
  %7515 = icmp sgt i64 %7514, 0
  br i1 %7515, label %7516, label %7550

7516:                                             ; preds = %7501
  %7517 = load ptr, ptr %21, align 8, !tbaa !5
  %7518 = load i64, ptr %58, align 8, !tbaa !9
  %7519 = load i64, ptr %72, align 8, !tbaa !9
  %7520 = load i64, ptr %30, align 8, !tbaa !9
  %7521 = mul nsw i64 %7519, %7520
  %7522 = add nsw i64 %7518, %7521
  %7523 = getelementptr inbounds %struct.complex, ptr %7517, i64 %7522
  %7524 = load ptr, ptr %21, align 8, !tbaa !5
  %7525 = load i64, ptr %58, align 8, !tbaa !9
  %7526 = add nsw i64 %7525, 1
  %7527 = load i64, ptr %72, align 8, !tbaa !9
  %7528 = sub nsw i64 %7527, 1
  %7529 = load i64, ptr %30, align 8, !tbaa !9
  %7530 = mul nsw i64 %7528, %7529
  %7531 = add nsw i64 %7526, %7530
  %7532 = getelementptr inbounds %struct.complex, ptr %7524, i64 %7531
  %7533 = load ptr, ptr %28, align 8, !tbaa !5
  %7534 = load i64, ptr %59, align 8, !tbaa !9
  %7535 = load ptr, ptr %20, align 8, !tbaa !5
  %7536 = load i64, ptr %7535, align 8, !tbaa !9
  %7537 = sub nsw i64 %7534, %7536
  %7538 = load i64, ptr %72, align 8, !tbaa !9
  %7539 = add nsw i64 %7537, %7538
  %7540 = getelementptr inbounds float, ptr %7533, i64 %7539
  %7541 = load ptr, ptr %27, align 8, !tbaa !5
  %7542 = load i64, ptr %59, align 8, !tbaa !9
  %7543 = load ptr, ptr %20, align 8, !tbaa !5
  %7544 = load i64, ptr %7543, align 8, !tbaa !9
  %7545 = sub nsw i64 %7542, %7544
  %7546 = load i64, ptr %72, align 8, !tbaa !9
  %7547 = add nsw i64 %7545, %7546
  %7548 = getelementptr inbounds %struct.complex, ptr %7541, i64 %7547
  %7549 = call i32 @clartv_(ptr noundef %76, ptr noundef %7523, ptr noundef %77, ptr noundef %7532, ptr noundef %77, ptr noundef %7540, ptr noundef %7548, ptr noundef %69)
  br label %7550

7550:                                             ; preds = %7516, %7501
  br label %7551

7551:                                             ; preds = %7550
  %7552 = load i64, ptr %58, align 8, !tbaa !9
  %7553 = add nsw i64 %7552, -1
  store i64 %7553, ptr %58, align 8, !tbaa !9
  br label %7497, !llvm.loop !80

7554:                                             ; preds = %7497
  %7555 = load i64, ptr %79, align 8, !tbaa !9
  %7556 = icmp ne i64 %7555, 0
  br i1 %7556, label %7557, label %7613

7557:                                             ; preds = %7554
  %7558 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %7558, ptr %38, align 8, !tbaa !9
  %7559 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %7559, ptr %39, align 8, !tbaa !9
  %7560 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %7560, ptr %56, align 8, !tbaa !9
  br label %7561

7561:                                             ; preds = %7608, %7557
  %7562 = load i64, ptr %39, align 8, !tbaa !9
  %7563 = icmp slt i64 %7562, 0
  br i1 %7563, label %7564, label %7569

7564:                                             ; preds = %7561
  %7565 = load i64, ptr %56, align 8, !tbaa !9
  %7566 = load i64, ptr %38, align 8, !tbaa !9
  %7567 = icmp sge i64 %7565, %7566
  %7568 = zext i1 %7567 to i32
  br label %7574

7569:                                             ; preds = %7561
  %7570 = load i64, ptr %56, align 8, !tbaa !9
  %7571 = load i64, ptr %38, align 8, !tbaa !9
  %7572 = icmp sle i64 %7570, %7571
  %7573 = zext i1 %7572 to i32
  br label %7574

7574:                                             ; preds = %7569, %7564
  %7575 = phi i32 [ %7568, %7564 ], [ %7573, %7569 ]
  %7576 = icmp ne i32 %7575, 0
  br i1 %7576, label %7577, label %7612

7577:                                             ; preds = %7574
  %7578 = load ptr, ptr %25, align 8, !tbaa !5
  %7579 = load i64, ptr %56, align 8, !tbaa !9
  %7580 = load i64, ptr %34, align 8, !tbaa !9
  %7581 = mul nsw i64 %7579, %7580
  %7582 = add nsw i64 %7581, 1
  %7583 = getelementptr inbounds %struct.complex, ptr %7578, i64 %7582
  %7584 = load ptr, ptr %25, align 8, !tbaa !5
  %7585 = load i64, ptr %56, align 8, !tbaa !9
  %7586 = sub nsw i64 %7585, 1
  %7587 = load i64, ptr %34, align 8, !tbaa !9
  %7588 = mul nsw i64 %7586, %7587
  %7589 = add nsw i64 %7588, 1
  %7590 = getelementptr inbounds %struct.complex, ptr %7584, i64 %7589
  %7591 = load ptr, ptr %28, align 8, !tbaa !5
  %7592 = load i64, ptr %59, align 8, !tbaa !9
  %7593 = load ptr, ptr %20, align 8, !tbaa !5
  %7594 = load i64, ptr %7593, align 8, !tbaa !9
  %7595 = sub nsw i64 %7592, %7594
  %7596 = load i64, ptr %56, align 8, !tbaa !9
  %7597 = add nsw i64 %7595, %7596
  %7598 = getelementptr inbounds float, ptr %7591, i64 %7597
  %7599 = load ptr, ptr %27, align 8, !tbaa !5
  %7600 = load i64, ptr %59, align 8, !tbaa !9
  %7601 = load ptr, ptr %20, align 8, !tbaa !5
  %7602 = load i64, ptr %7601, align 8, !tbaa !9
  %7603 = sub nsw i64 %7600, %7602
  %7604 = load i64, ptr %56, align 8, !tbaa !9
  %7605 = add nsw i64 %7603, %7604
  %7606 = getelementptr inbounds %struct.complex, ptr %7599, i64 %7605
  %7607 = call i32 @crot_(ptr noundef %68, ptr noundef %7583, ptr noundef @c__1, ptr noundef %7590, ptr noundef @c__1, ptr noundef %7598, ptr noundef %7606)
  br label %7608

7608:                                             ; preds = %7577
  %7609 = load i64, ptr %39, align 8, !tbaa !9
  %7610 = load i64, ptr %56, align 8, !tbaa !9
  %7611 = add nsw i64 %7610, %7609
  store i64 %7611, ptr %56, align 8, !tbaa !9
  br label %7561, !llvm.loop !81

7612:                                             ; preds = %7574
  br label %7613

7613:                                             ; preds = %7612, %7554
  br label %7614

7614:                                             ; preds = %7613
  %7615 = load i64, ptr %57, align 8, !tbaa !9
  %7616 = add nsw i64 %7615, -1
  store i64 %7616, ptr %57, align 8, !tbaa !9
  br label %7320, !llvm.loop !82

7617:                                             ; preds = %7320
  %7618 = load ptr, ptr %20, align 8, !tbaa !5
  %7619 = load i64, ptr %7618, align 8, !tbaa !9
  %7620 = sub nsw i64 %7619, 1
  store i64 %7620, ptr %39, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %7621

7621:                                             ; preds = %7699, %7617
  %7622 = load i64, ptr %57, align 8, !tbaa !9
  %7623 = load i64, ptr %39, align 8, !tbaa !9
  %7624 = icmp sle i64 %7622, %7623
  br i1 %7624, label %7625, label %7702

7625:                                             ; preds = %7621
  store i64 1, ptr %38, align 8, !tbaa !9
  %7626 = load i64, ptr %57, align 8, !tbaa !9
  %7627 = load i64, ptr %61, align 8, !tbaa !9
  %7628 = add nsw i64 %7626, %7627
  %7629 = load i64, ptr %59, align 8, !tbaa !9
  %7630 = sub nsw i64 %7628, %7629
  %7631 = add nsw i64 %7630, 1
  store i64 %7631, ptr %36, align 8, !tbaa !9
  %7632 = load i64, ptr %55, align 8, !tbaa !9
  %7633 = load i64, ptr %57, align 8, !tbaa !9
  %7634 = add nsw i64 %7632, %7633
  %7635 = add nsw i64 %7634, 1
  %7636 = load i64, ptr %38, align 8, !tbaa !9
  %7637 = load i64, ptr %36, align 8, !tbaa !9
  %7638 = icmp sge i64 %7636, %7637
  br i1 %7638, label %7639, label %7641

7639:                                             ; preds = %7625
  %7640 = load i64, ptr %38, align 8, !tbaa !9
  br label %7643

7641:                                             ; preds = %7625
  %7642 = load i64, ptr %36, align 8, !tbaa !9
  br label %7643

7643:                                             ; preds = %7641, %7639
  %7644 = phi i64 [ %7640, %7639 ], [ %7642, %7641 ]
  %7645 = load i64, ptr %69, align 8, !tbaa !9
  %7646 = mul nsw i64 %7644, %7645
  %7647 = sub nsw i64 %7635, %7646
  store i64 %7647, ptr %65, align 8, !tbaa !9
  %7648 = load ptr, ptr %20, align 8, !tbaa !5
  %7649 = load i64, ptr %7648, align 8, !tbaa !9
  %7650 = load i64, ptr %57, align 8, !tbaa !9
  %7651 = sub nsw i64 %7649, %7650
  store i64 %7651, ptr %58, align 8, !tbaa !9
  br label %7652

7652:                                             ; preds = %7695, %7643
  %7653 = load i64, ptr %58, align 8, !tbaa !9
  %7654 = icmp sge i64 %7653, 1
  br i1 %7654, label %7655, label %7698

7655:                                             ; preds = %7652
  %7656 = load i64, ptr %65, align 8, !tbaa !9
  %7657 = load i64, ptr %58, align 8, !tbaa !9
  %7658 = add nsw i64 %7656, %7657
  %7659 = sub nsw i64 %7658, 1
  %7660 = load i64, ptr %69, align 8, !tbaa !9
  %7661 = sdiv i64 %7659, %7660
  store i64 %7661, ptr %76, align 8, !tbaa !9
  %7662 = load i64, ptr %65, align 8, !tbaa !9
  %7663 = load i64, ptr %76, align 8, !tbaa !9
  %7664 = sub nsw i64 %7663, 1
  %7665 = load i64, ptr %69, align 8, !tbaa !9
  %7666 = mul nsw i64 %7664, %7665
  %7667 = sub nsw i64 %7662, %7666
  store i64 %7667, ptr %72, align 8, !tbaa !9
  %7668 = load i64, ptr %76, align 8, !tbaa !9
  %7669 = icmp sgt i64 %7668, 0
  br i1 %7669, label %7670, label %7694

7670:                                             ; preds = %7655
  %7671 = load ptr, ptr %21, align 8, !tbaa !5
  %7672 = load i64, ptr %58, align 8, !tbaa !9
  %7673 = load i64, ptr %72, align 8, !tbaa !9
  %7674 = load i64, ptr %30, align 8, !tbaa !9
  %7675 = mul nsw i64 %7673, %7674
  %7676 = add nsw i64 %7672, %7675
  %7677 = getelementptr inbounds %struct.complex, ptr %7671, i64 %7676
  %7678 = load ptr, ptr %21, align 8, !tbaa !5
  %7679 = load i64, ptr %58, align 8, !tbaa !9
  %7680 = add nsw i64 %7679, 1
  %7681 = load i64, ptr %72, align 8, !tbaa !9
  %7682 = sub nsw i64 %7681, 1
  %7683 = load i64, ptr %30, align 8, !tbaa !9
  %7684 = mul nsw i64 %7682, %7683
  %7685 = add nsw i64 %7680, %7684
  %7686 = getelementptr inbounds %struct.complex, ptr %7678, i64 %7685
  %7687 = load ptr, ptr %28, align 8, !tbaa !5
  %7688 = load i64, ptr %72, align 8, !tbaa !9
  %7689 = getelementptr inbounds float, ptr %7687, i64 %7688
  %7690 = load ptr, ptr %27, align 8, !tbaa !5
  %7691 = load i64, ptr %72, align 8, !tbaa !9
  %7692 = getelementptr inbounds %struct.complex, ptr %7690, i64 %7691
  %7693 = call i32 @clartv_(ptr noundef %76, ptr noundef %7677, ptr noundef %77, ptr noundef %7686, ptr noundef %77, ptr noundef %7689, ptr noundef %7692, ptr noundef %69)
  br label %7694

7694:                                             ; preds = %7670, %7655
  br label %7695

7695:                                             ; preds = %7694
  %7696 = load i64, ptr %58, align 8, !tbaa !9
  %7697 = add nsw i64 %7696, -1
  store i64 %7697, ptr %58, align 8, !tbaa !9
  br label %7652, !llvm.loop !83

7698:                                             ; preds = %7652
  br label %7699

7699:                                             ; preds = %7698
  %7700 = load i64, ptr %57, align 8, !tbaa !9
  %7701 = add nsw i64 %7700, 1
  store i64 %7701, ptr %57, align 8, !tbaa !9
  br label %7621, !llvm.loop !84

7702:                                             ; preds = %7621
  %7703 = load ptr, ptr %20, align 8, !tbaa !5
  %7704 = load i64, ptr %7703, align 8, !tbaa !9
  %7705 = icmp sgt i64 %7704, 1
  br i1 %7705, label %7706, label %7753

7706:                                             ; preds = %7702
  %7707 = load i64, ptr %63, align 8, !tbaa !9
  %7708 = load ptr, ptr %19, align 8, !tbaa !5
  %7709 = load i64, ptr %7708, align 8, !tbaa !9
  %7710 = sub nsw i64 %7707, %7709
  store i64 %7710, ptr %39, align 8, !tbaa !9
  store i64 2, ptr %56, align 8, !tbaa !9
  br label %7711

7711:                                             ; preds = %7749, %7706
  %7712 = load i64, ptr %56, align 8, !tbaa !9
  %7713 = load i64, ptr %39, align 8, !tbaa !9
  %7714 = icmp sle i64 %7712, %7713
  br i1 %7714, label %7715, label %7752

7715:                                             ; preds = %7711
  %7716 = load ptr, ptr %28, align 8, !tbaa !5
  %7717 = load i64, ptr %56, align 8, !tbaa !9
  %7718 = load ptr, ptr %19, align 8, !tbaa !5
  %7719 = load i64, ptr %7718, align 8, !tbaa !9
  %7720 = add nsw i64 %7717, %7719
  %7721 = getelementptr inbounds float, ptr %7716, i64 %7720
  %7722 = load float, ptr %7721, align 4, !tbaa !14
  %7723 = load ptr, ptr %28, align 8, !tbaa !5
  %7724 = load i64, ptr %56, align 8, !tbaa !9
  %7725 = getelementptr inbounds float, ptr %7723, i64 %7724
  store float %7722, ptr %7725, align 4, !tbaa !14
  %7726 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %7726, ptr %38, align 8, !tbaa !9
  %7727 = load i64, ptr %56, align 8, !tbaa !9
  %7728 = load ptr, ptr %19, align 8, !tbaa !5
  %7729 = load i64, ptr %7728, align 8, !tbaa !9
  %7730 = add nsw i64 %7727, %7729
  store i64 %7730, ptr %36, align 8, !tbaa !9
  %7731 = load ptr, ptr %27, align 8, !tbaa !5
  %7732 = load i64, ptr %36, align 8, !tbaa !9
  %7733 = getelementptr inbounds %struct.complex, ptr %7731, i64 %7732
  %7734 = getelementptr inbounds %struct.complex, ptr %7733, i32 0, i32 0
  %7735 = load float, ptr %7734, align 4, !tbaa !11
  %7736 = load ptr, ptr %27, align 8, !tbaa !5
  %7737 = load i64, ptr %38, align 8, !tbaa !9
  %7738 = getelementptr inbounds %struct.complex, ptr %7736, i64 %7737
  %7739 = getelementptr inbounds %struct.complex, ptr %7738, i32 0, i32 0
  store float %7735, ptr %7739, align 4, !tbaa !11
  %7740 = load ptr, ptr %27, align 8, !tbaa !5
  %7741 = load i64, ptr %36, align 8, !tbaa !9
  %7742 = getelementptr inbounds %struct.complex, ptr %7740, i64 %7741
  %7743 = getelementptr inbounds %struct.complex, ptr %7742, i32 0, i32 1
  %7744 = load float, ptr %7743, align 4, !tbaa !15
  %7745 = load ptr, ptr %27, align 8, !tbaa !5
  %7746 = load i64, ptr %38, align 8, !tbaa !9
  %7747 = getelementptr inbounds %struct.complex, ptr %7745, i64 %7746
  %7748 = getelementptr inbounds %struct.complex, ptr %7747, i32 0, i32 1
  store float %7744, ptr %7748, align 4, !tbaa !15
  br label %7749

7749:                                             ; preds = %7715
  %7750 = load i64, ptr %56, align 8, !tbaa !9
  %7751 = add nsw i64 %7750, 1
  store i64 %7751, ptr %56, align 8, !tbaa !9
  br label %7711, !llvm.loop !85

7752:                                             ; preds = %7711
  br label %7753

7753:                                             ; preds = %7752, %7702
  br label %10223

7754:                                             ; preds = %5265
  %7755 = load i64, ptr %80, align 8, !tbaa !9
  %7756 = icmp ne i64 %7755, 0
  br i1 %7756, label %7757, label %8522

7757:                                             ; preds = %7754
  %7758 = load i64, ptr %55, align 8, !tbaa !9
  %7759 = load i64, ptr %32, align 8, !tbaa !9
  %7760 = mul nsw i64 %7758, %7759
  %7761 = add nsw i64 %7760, 1
  store i64 %7761, ptr %39, align 8, !tbaa !9
  %7762 = load ptr, ptr %23, align 8, !tbaa !5
  %7763 = load i64, ptr %39, align 8, !tbaa !9
  %7764 = getelementptr inbounds %struct.complex, ptr %7762, i64 %7763
  %7765 = getelementptr inbounds %struct.complex, ptr %7764, i32 0, i32 0
  %7766 = load float, ptr %7765, align 4, !tbaa !11
  store float %7766, ptr %74, align 4, !tbaa !14
  %7767 = load i64, ptr %55, align 8, !tbaa !9
  %7768 = load i64, ptr %30, align 8, !tbaa !9
  %7769 = mul nsw i64 %7767, %7768
  %7770 = add nsw i64 %7769, 1
  store i64 %7770, ptr %39, align 8, !tbaa !9
  %7771 = load i64, ptr %55, align 8, !tbaa !9
  %7772 = load i64, ptr %30, align 8, !tbaa !9
  %7773 = mul nsw i64 %7771, %7772
  %7774 = add nsw i64 %7773, 1
  store i64 %7774, ptr %38, align 8, !tbaa !9
  %7775 = load ptr, ptr %21, align 8, !tbaa !5
  %7776 = load i64, ptr %38, align 8, !tbaa !9
  %7777 = getelementptr inbounds %struct.complex, ptr %7775, i64 %7776
  %7778 = getelementptr inbounds %struct.complex, ptr %7777, i32 0, i32 0
  %7779 = load float, ptr %7778, align 4, !tbaa !11
  %7780 = load float, ptr %74, align 4, !tbaa !14
  %7781 = fdiv float %7779, %7780
  %7782 = load float, ptr %74, align 4, !tbaa !14
  %7783 = fdiv float %7781, %7782
  store float %7783, ptr %44, align 4, !tbaa !14
  %7784 = load float, ptr %44, align 4, !tbaa !14
  %7785 = load ptr, ptr %21, align 8, !tbaa !5
  %7786 = load i64, ptr %39, align 8, !tbaa !9
  %7787 = getelementptr inbounds %struct.complex, ptr %7785, i64 %7786
  %7788 = getelementptr inbounds %struct.complex, ptr %7787, i32 0, i32 0
  store float %7784, ptr %7788, align 4, !tbaa !11
  %7789 = load ptr, ptr %21, align 8, !tbaa !5
  %7790 = load i64, ptr %39, align 8, !tbaa !9
  %7791 = getelementptr inbounds %struct.complex, ptr %7789, i64 %7790
  %7792 = getelementptr inbounds %struct.complex, ptr %7791, i32 0, i32 1
  store float 0.000000e+00, ptr %7792, align 4, !tbaa !15
  %7793 = load i64, ptr %55, align 8, !tbaa !9
  %7794 = sub nsw i64 %7793, 1
  store i64 %7794, ptr %39, align 8, !tbaa !9
  %7795 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %7795, ptr %56, align 8, !tbaa !9
  br label %7796

7796:                                             ; preds = %7845, %7757
  %7797 = load i64, ptr %56, align 8, !tbaa !9
  %7798 = load i64, ptr %39, align 8, !tbaa !9
  %7799 = icmp sle i64 %7797, %7798
  br i1 %7799, label %7800, label %7848

7800:                                             ; preds = %7796
  %7801 = load i64, ptr %55, align 8, !tbaa !9
  %7802 = load i64, ptr %56, align 8, !tbaa !9
  %7803 = sub nsw i64 %7801, %7802
  %7804 = add nsw i64 %7803, 1
  %7805 = load i64, ptr %56, align 8, !tbaa !9
  %7806 = load i64, ptr %30, align 8, !tbaa !9
  %7807 = mul nsw i64 %7805, %7806
  %7808 = add nsw i64 %7804, %7807
  store i64 %7808, ptr %38, align 8, !tbaa !9
  %7809 = load i64, ptr %55, align 8, !tbaa !9
  %7810 = load i64, ptr %56, align 8, !tbaa !9
  %7811 = sub nsw i64 %7809, %7810
  %7812 = add nsw i64 %7811, 1
  %7813 = load i64, ptr %56, align 8, !tbaa !9
  %7814 = load i64, ptr %30, align 8, !tbaa !9
  %7815 = mul nsw i64 %7813, %7814
  %7816 = add nsw i64 %7812, %7815
  store i64 %7816, ptr %36, align 8, !tbaa !9
  %7817 = load ptr, ptr %21, align 8, !tbaa !5
  %7818 = load i64, ptr %36, align 8, !tbaa !9
  %7819 = getelementptr inbounds %struct.complex, ptr %7817, i64 %7818
  %7820 = getelementptr inbounds %struct.complex, ptr %7819, i32 0, i32 0
  %7821 = load float, ptr %7820, align 4, !tbaa !11
  %7822 = load float, ptr %74, align 4, !tbaa !14
  %7823 = fdiv float %7821, %7822
  %7824 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %7823, ptr %7824, align 4, !tbaa !11
  %7825 = load ptr, ptr %21, align 8, !tbaa !5
  %7826 = load i64, ptr %36, align 8, !tbaa !9
  %7827 = getelementptr inbounds %struct.complex, ptr %7825, i64 %7826
  %7828 = getelementptr inbounds %struct.complex, ptr %7827, i32 0, i32 1
  %7829 = load float, ptr %7828, align 4, !tbaa !15
  %7830 = load float, ptr %74, align 4, !tbaa !14
  %7831 = fdiv float %7829, %7830
  %7832 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %7831, ptr %7832, align 4, !tbaa !15
  %7833 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %7834 = load float, ptr %7833, align 4, !tbaa !11
  %7835 = load ptr, ptr %21, align 8, !tbaa !5
  %7836 = load i64, ptr %38, align 8, !tbaa !9
  %7837 = getelementptr inbounds %struct.complex, ptr %7835, i64 %7836
  %7838 = getelementptr inbounds %struct.complex, ptr %7837, i32 0, i32 0
  store float %7834, ptr %7838, align 4, !tbaa !11
  %7839 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %7840 = load float, ptr %7839, align 4, !tbaa !15
  %7841 = load ptr, ptr %21, align 8, !tbaa !5
  %7842 = load i64, ptr %38, align 8, !tbaa !9
  %7843 = getelementptr inbounds %struct.complex, ptr %7841, i64 %7842
  %7844 = getelementptr inbounds %struct.complex, ptr %7843, i32 0, i32 1
  store float %7840, ptr %7844, align 4, !tbaa !15
  br label %7845

7845:                                             ; preds = %7800
  %7846 = load i64, ptr %56, align 8, !tbaa !9
  %7847 = add nsw i64 %7846, 1
  store i64 %7847, ptr %56, align 8, !tbaa !9
  br label %7796, !llvm.loop !86

7848:                                             ; preds = %7796
  %7849 = load ptr, ptr %18, align 8, !tbaa !5
  %7850 = load i64, ptr %7849, align 8, !tbaa !9
  store i64 %7850, ptr %38, align 8, !tbaa !9
  %7851 = load i64, ptr %55, align 8, !tbaa !9
  %7852 = load ptr, ptr %19, align 8, !tbaa !5
  %7853 = load i64, ptr %7852, align 8, !tbaa !9
  %7854 = add nsw i64 %7851, %7853
  store i64 %7854, ptr %36, align 8, !tbaa !9
  %7855 = load i64, ptr %38, align 8, !tbaa !9
  %7856 = load i64, ptr %36, align 8, !tbaa !9
  %7857 = icmp sle i64 %7855, %7856
  br i1 %7857, label %7858, label %7860

7858:                                             ; preds = %7848
  %7859 = load i64, ptr %38, align 8, !tbaa !9
  br label %7862

7860:                                             ; preds = %7848
  %7861 = load i64, ptr %36, align 8, !tbaa !9
  br label %7862

7862:                                             ; preds = %7860, %7858
  %7863 = phi i64 [ %7859, %7858 ], [ %7861, %7860 ]
  store i64 %7863, ptr %39, align 8, !tbaa !9
  %7864 = load i64, ptr %55, align 8, !tbaa !9
  %7865 = add nsw i64 %7864, 1
  store i64 %7865, ptr %56, align 8, !tbaa !9
  br label %7866

7866:                                             ; preds = %7915, %7862
  %7867 = load i64, ptr %56, align 8, !tbaa !9
  %7868 = load i64, ptr %39, align 8, !tbaa !9
  %7869 = icmp sle i64 %7867, %7868
  br i1 %7869, label %7870, label %7918

7870:                                             ; preds = %7866
  %7871 = load i64, ptr %56, align 8, !tbaa !9
  %7872 = load i64, ptr %55, align 8, !tbaa !9
  %7873 = sub nsw i64 %7871, %7872
  %7874 = add nsw i64 %7873, 1
  %7875 = load i64, ptr %55, align 8, !tbaa !9
  %7876 = load i64, ptr %30, align 8, !tbaa !9
  %7877 = mul nsw i64 %7875, %7876
  %7878 = add nsw i64 %7874, %7877
  store i64 %7878, ptr %38, align 8, !tbaa !9
  %7879 = load i64, ptr %56, align 8, !tbaa !9
  %7880 = load i64, ptr %55, align 8, !tbaa !9
  %7881 = sub nsw i64 %7879, %7880
  %7882 = add nsw i64 %7881, 1
  %7883 = load i64, ptr %55, align 8, !tbaa !9
  %7884 = load i64, ptr %30, align 8, !tbaa !9
  %7885 = mul nsw i64 %7883, %7884
  %7886 = add nsw i64 %7882, %7885
  store i64 %7886, ptr %36, align 8, !tbaa !9
  %7887 = load ptr, ptr %21, align 8, !tbaa !5
  %7888 = load i64, ptr %36, align 8, !tbaa !9
  %7889 = getelementptr inbounds %struct.complex, ptr %7887, i64 %7888
  %7890 = getelementptr inbounds %struct.complex, ptr %7889, i32 0, i32 0
  %7891 = load float, ptr %7890, align 4, !tbaa !11
  %7892 = load float, ptr %74, align 4, !tbaa !14
  %7893 = fdiv float %7891, %7892
  %7894 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %7893, ptr %7894, align 4, !tbaa !11
  %7895 = load ptr, ptr %21, align 8, !tbaa !5
  %7896 = load i64, ptr %36, align 8, !tbaa !9
  %7897 = getelementptr inbounds %struct.complex, ptr %7895, i64 %7896
  %7898 = getelementptr inbounds %struct.complex, ptr %7897, i32 0, i32 1
  %7899 = load float, ptr %7898, align 4, !tbaa !15
  %7900 = load float, ptr %74, align 4, !tbaa !14
  %7901 = fdiv float %7899, %7900
  %7902 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %7901, ptr %7902, align 4, !tbaa !15
  %7903 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %7904 = load float, ptr %7903, align 4, !tbaa !11
  %7905 = load ptr, ptr %21, align 8, !tbaa !5
  %7906 = load i64, ptr %38, align 8, !tbaa !9
  %7907 = getelementptr inbounds %struct.complex, ptr %7905, i64 %7906
  %7908 = getelementptr inbounds %struct.complex, ptr %7907, i32 0, i32 0
  store float %7904, ptr %7908, align 4, !tbaa !11
  %7909 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %7910 = load float, ptr %7909, align 4, !tbaa !15
  %7911 = load ptr, ptr %21, align 8, !tbaa !5
  %7912 = load i64, ptr %38, align 8, !tbaa !9
  %7913 = getelementptr inbounds %struct.complex, ptr %7911, i64 %7912
  %7914 = getelementptr inbounds %struct.complex, ptr %7913, i32 0, i32 1
  store float %7910, ptr %7914, align 4, !tbaa !15
  br label %7915

7915:                                             ; preds = %7870
  %7916 = load i64, ptr %56, align 8, !tbaa !9
  %7917 = add nsw i64 %7916, 1
  store i64 %7917, ptr %56, align 8, !tbaa !9
  br label %7866, !llvm.loop !87

7918:                                             ; preds = %7866
  %7919 = load i64, ptr %55, align 8, !tbaa !9
  %7920 = load i64, ptr %75, align 8, !tbaa !9
  %7921 = add nsw i64 %7919, %7920
  store i64 %7921, ptr %39, align 8, !tbaa !9
  %7922 = load i64, ptr %55, align 8, !tbaa !9
  %7923 = add nsw i64 %7922, 1
  store i64 %7923, ptr %57, align 8, !tbaa !9
  br label %7924

7924:                                             ; preds = %8311, %7918
  %7925 = load i64, ptr %57, align 8, !tbaa !9
  %7926 = load i64, ptr %39, align 8, !tbaa !9
  %7927 = icmp sle i64 %7925, %7926
  br i1 %7927, label %7928, label %8314

7928:                                             ; preds = %7924
  %7929 = load i64, ptr %55, align 8, !tbaa !9
  %7930 = load i64, ptr %75, align 8, !tbaa !9
  %7931 = add nsw i64 %7929, %7930
  store i64 %7931, ptr %38, align 8, !tbaa !9
  %7932 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %7932, ptr %56, align 8, !tbaa !9
  br label %7933

7933:                                             ; preds = %8180, %7928
  %7934 = load i64, ptr %56, align 8, !tbaa !9
  %7935 = load i64, ptr %38, align 8, !tbaa !9
  %7936 = icmp sle i64 %7934, %7935
  br i1 %7936, label %7937, label %8183

7937:                                             ; preds = %7933
  %7938 = load i64, ptr %56, align 8, !tbaa !9
  %7939 = load i64, ptr %57, align 8, !tbaa !9
  %7940 = sub nsw i64 %7938, %7939
  %7941 = add nsw i64 %7940, 1
  %7942 = load i64, ptr %57, align 8, !tbaa !9
  %7943 = load i64, ptr %30, align 8, !tbaa !9
  %7944 = mul nsw i64 %7942, %7943
  %7945 = add nsw i64 %7941, %7944
  store i64 %7945, ptr %36, align 8, !tbaa !9
  %7946 = load i64, ptr %56, align 8, !tbaa !9
  %7947 = load i64, ptr %57, align 8, !tbaa !9
  %7948 = sub nsw i64 %7946, %7947
  %7949 = add nsw i64 %7948, 1
  %7950 = load i64, ptr %57, align 8, !tbaa !9
  %7951 = load i64, ptr %30, align 8, !tbaa !9
  %7952 = mul nsw i64 %7950, %7951
  %7953 = add nsw i64 %7949, %7952
  store i64 %7953, ptr %37, align 8, !tbaa !9
  %7954 = load i64, ptr %56, align 8, !tbaa !9
  %7955 = load i64, ptr %55, align 8, !tbaa !9
  %7956 = sub nsw i64 %7954, %7955
  %7957 = add nsw i64 %7956, 1
  %7958 = load i64, ptr %55, align 8, !tbaa !9
  %7959 = load i64, ptr %32, align 8, !tbaa !9
  %7960 = mul nsw i64 %7958, %7959
  %7961 = add nsw i64 %7957, %7960
  store i64 %7961, ptr %40, align 8, !tbaa !9
  %7962 = load ptr, ptr %21, align 8, !tbaa !5
  %7963 = load i64, ptr %57, align 8, !tbaa !9
  %7964 = load i64, ptr %55, align 8, !tbaa !9
  %7965 = sub nsw i64 %7963, %7964
  %7966 = add nsw i64 %7965, 1
  %7967 = load i64, ptr %55, align 8, !tbaa !9
  %7968 = load i64, ptr %30, align 8, !tbaa !9
  %7969 = mul nsw i64 %7967, %7968
  %7970 = add nsw i64 %7966, %7969
  %7971 = getelementptr inbounds %struct.complex, ptr %7962, i64 %7970
  call void @r_cnjg(ptr noundef %49, ptr noundef %7971)
  %7972 = load ptr, ptr %23, align 8, !tbaa !5
  %7973 = load i64, ptr %40, align 8, !tbaa !9
  %7974 = getelementptr inbounds %struct.complex, ptr %7972, i64 %7973
  %7975 = getelementptr inbounds %struct.complex, ptr %7974, i32 0, i32 0
  %7976 = load float, ptr %7975, align 4, !tbaa !11
  %7977 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %7978 = load float, ptr %7977, align 4, !tbaa !11
  %7979 = load ptr, ptr %23, align 8, !tbaa !5
  %7980 = load i64, ptr %40, align 8, !tbaa !9
  %7981 = getelementptr inbounds %struct.complex, ptr %7979, i64 %7980
  %7982 = getelementptr inbounds %struct.complex, ptr %7981, i32 0, i32 1
  %7983 = load float, ptr %7982, align 4, !tbaa !15
  %7984 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %7985 = load float, ptr %7984, align 4, !tbaa !15
  %7986 = fmul float %7983, %7985
  %7987 = fneg float %7986
  %7988 = call float @llvm.fmuladd.f32(float %7976, float %7978, float %7987)
  %7989 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %7988, ptr %7989, align 4, !tbaa !11
  %7990 = load ptr, ptr %23, align 8, !tbaa !5
  %7991 = load i64, ptr %40, align 8, !tbaa !9
  %7992 = getelementptr inbounds %struct.complex, ptr %7990, i64 %7991
  %7993 = getelementptr inbounds %struct.complex, ptr %7992, i32 0, i32 0
  %7994 = load float, ptr %7993, align 4, !tbaa !11
  %7995 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %7996 = load float, ptr %7995, align 4, !tbaa !15
  %7997 = load ptr, ptr %23, align 8, !tbaa !5
  %7998 = load i64, ptr %40, align 8, !tbaa !9
  %7999 = getelementptr inbounds %struct.complex, ptr %7997, i64 %7998
  %8000 = getelementptr inbounds %struct.complex, ptr %7999, i32 0, i32 1
  %8001 = load float, ptr %8000, align 4, !tbaa !15
  %8002 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %8003 = load float, ptr %8002, align 4, !tbaa !11
  %8004 = fmul float %8001, %8003
  %8005 = call float @llvm.fmuladd.f32(float %7994, float %7996, float %8004)
  %8006 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %8005, ptr %8006, align 4, !tbaa !15
  %8007 = load ptr, ptr %21, align 8, !tbaa !5
  %8008 = load i64, ptr %37, align 8, !tbaa !9
  %8009 = getelementptr inbounds %struct.complex, ptr %8007, i64 %8008
  %8010 = getelementptr inbounds %struct.complex, ptr %8009, i32 0, i32 0
  %8011 = load float, ptr %8010, align 4, !tbaa !11
  %8012 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %8013 = load float, ptr %8012, align 4, !tbaa !11
  %8014 = fsub float %8011, %8013
  %8015 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %8014, ptr %8015, align 4, !tbaa !11
  %8016 = load ptr, ptr %21, align 8, !tbaa !5
  %8017 = load i64, ptr %37, align 8, !tbaa !9
  %8018 = getelementptr inbounds %struct.complex, ptr %8016, i64 %8017
  %8019 = getelementptr inbounds %struct.complex, ptr %8018, i32 0, i32 1
  %8020 = load float, ptr %8019, align 4, !tbaa !15
  %8021 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %8022 = load float, ptr %8021, align 4, !tbaa !15
  %8023 = fsub float %8020, %8022
  %8024 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %8023, ptr %8024, align 4, !tbaa !15
  %8025 = load ptr, ptr %23, align 8, !tbaa !5
  %8026 = load i64, ptr %57, align 8, !tbaa !9
  %8027 = load i64, ptr %55, align 8, !tbaa !9
  %8028 = sub nsw i64 %8026, %8027
  %8029 = add nsw i64 %8028, 1
  %8030 = load i64, ptr %55, align 8, !tbaa !9
  %8031 = load i64, ptr %32, align 8, !tbaa !9
  %8032 = mul nsw i64 %8030, %8031
  %8033 = add nsw i64 %8029, %8032
  %8034 = getelementptr inbounds %struct.complex, ptr %8025, i64 %8033
  call void @r_cnjg(ptr noundef %51, ptr noundef %8034)
  %8035 = load i64, ptr %56, align 8, !tbaa !9
  %8036 = load i64, ptr %55, align 8, !tbaa !9
  %8037 = sub nsw i64 %8035, %8036
  %8038 = add nsw i64 %8037, 1
  %8039 = load i64, ptr %55, align 8, !tbaa !9
  %8040 = load i64, ptr %30, align 8, !tbaa !9
  %8041 = mul nsw i64 %8039, %8040
  %8042 = add nsw i64 %8038, %8041
  store i64 %8042, ptr %41, align 8, !tbaa !9
  %8043 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %8044 = load float, ptr %8043, align 4, !tbaa !11
  %8045 = load ptr, ptr %21, align 8, !tbaa !5
  %8046 = load i64, ptr %41, align 8, !tbaa !9
  %8047 = getelementptr inbounds %struct.complex, ptr %8045, i64 %8046
  %8048 = getelementptr inbounds %struct.complex, ptr %8047, i32 0, i32 0
  %8049 = load float, ptr %8048, align 4, !tbaa !11
  %8050 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %8051 = load float, ptr %8050, align 4, !tbaa !15
  %8052 = load ptr, ptr %21, align 8, !tbaa !5
  %8053 = load i64, ptr %41, align 8, !tbaa !9
  %8054 = getelementptr inbounds %struct.complex, ptr %8052, i64 %8053
  %8055 = getelementptr inbounds %struct.complex, ptr %8054, i32 0, i32 1
  %8056 = load float, ptr %8055, align 4, !tbaa !15
  %8057 = fmul float %8051, %8056
  %8058 = fneg float %8057
  %8059 = call float @llvm.fmuladd.f32(float %8044, float %8049, float %8058)
  %8060 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %8059, ptr %8060, align 4, !tbaa !11
  %8061 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %8062 = load float, ptr %8061, align 4, !tbaa !11
  %8063 = load ptr, ptr %21, align 8, !tbaa !5
  %8064 = load i64, ptr %41, align 8, !tbaa !9
  %8065 = getelementptr inbounds %struct.complex, ptr %8063, i64 %8064
  %8066 = getelementptr inbounds %struct.complex, ptr %8065, i32 0, i32 1
  %8067 = load float, ptr %8066, align 4, !tbaa !15
  %8068 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %8069 = load float, ptr %8068, align 4, !tbaa !15
  %8070 = load ptr, ptr %21, align 8, !tbaa !5
  %8071 = load i64, ptr %41, align 8, !tbaa !9
  %8072 = getelementptr inbounds %struct.complex, ptr %8070, i64 %8071
  %8073 = getelementptr inbounds %struct.complex, ptr %8072, i32 0, i32 0
  %8074 = load float, ptr %8073, align 4, !tbaa !11
  %8075 = fmul float %8069, %8074
  %8076 = call float @llvm.fmuladd.f32(float %8062, float %8067, float %8075)
  %8077 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %8076, ptr %8077, align 4, !tbaa !15
  %8078 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %8079 = load float, ptr %8078, align 4, !tbaa !11
  %8080 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %8081 = load float, ptr %8080, align 4, !tbaa !11
  %8082 = fsub float %8079, %8081
  %8083 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %8082, ptr %8083, align 4, !tbaa !11
  %8084 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %8085 = load float, ptr %8084, align 4, !tbaa !15
  %8086 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %8087 = load float, ptr %8086, align 4, !tbaa !15
  %8088 = fsub float %8085, %8087
  %8089 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %8088, ptr %8089, align 4, !tbaa !15
  %8090 = load i64, ptr %55, align 8, !tbaa !9
  %8091 = load i64, ptr %30, align 8, !tbaa !9
  %8092 = mul nsw i64 %8090, %8091
  %8093 = add nsw i64 %8092, 1
  store i64 %8093, ptr %42, align 8, !tbaa !9
  %8094 = load ptr, ptr %21, align 8, !tbaa !5
  %8095 = load i64, ptr %42, align 8, !tbaa !9
  %8096 = getelementptr inbounds %struct.complex, ptr %8094, i64 %8095
  %8097 = getelementptr inbounds %struct.complex, ptr %8096, i32 0, i32 0
  %8098 = load float, ptr %8097, align 4, !tbaa !11
  store float %8098, ptr %44, align 4, !tbaa !14
  %8099 = load i64, ptr %56, align 8, !tbaa !9
  %8100 = load i64, ptr %55, align 8, !tbaa !9
  %8101 = sub nsw i64 %8099, %8100
  %8102 = add nsw i64 %8101, 1
  %8103 = load i64, ptr %55, align 8, !tbaa !9
  %8104 = load i64, ptr %32, align 8, !tbaa !9
  %8105 = mul nsw i64 %8103, %8104
  %8106 = add nsw i64 %8102, %8105
  store i64 %8106, ptr %43, align 8, !tbaa !9
  %8107 = load float, ptr %44, align 4, !tbaa !14
  %8108 = load ptr, ptr %23, align 8, !tbaa !5
  %8109 = load i64, ptr %43, align 8, !tbaa !9
  %8110 = getelementptr inbounds %struct.complex, ptr %8108, i64 %8109
  %8111 = getelementptr inbounds %struct.complex, ptr %8110, i32 0, i32 0
  %8112 = load float, ptr %8111, align 4, !tbaa !11
  %8113 = fmul float %8107, %8112
  %8114 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  store float %8113, ptr %8114, align 4, !tbaa !11
  %8115 = load float, ptr %44, align 4, !tbaa !14
  %8116 = load ptr, ptr %23, align 8, !tbaa !5
  %8117 = load i64, ptr %43, align 8, !tbaa !9
  %8118 = getelementptr inbounds %struct.complex, ptr %8116, i64 %8117
  %8119 = getelementptr inbounds %struct.complex, ptr %8118, i32 0, i32 1
  %8120 = load float, ptr %8119, align 4, !tbaa !15
  %8121 = fmul float %8115, %8120
  %8122 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  store float %8121, ptr %8122, align 4, !tbaa !15
  %8123 = load ptr, ptr %23, align 8, !tbaa !5
  %8124 = load i64, ptr %57, align 8, !tbaa !9
  %8125 = load i64, ptr %55, align 8, !tbaa !9
  %8126 = sub nsw i64 %8124, %8125
  %8127 = add nsw i64 %8126, 1
  %8128 = load i64, ptr %55, align 8, !tbaa !9
  %8129 = load i64, ptr %32, align 8, !tbaa !9
  %8130 = mul nsw i64 %8128, %8129
  %8131 = add nsw i64 %8127, %8130
  %8132 = getelementptr inbounds %struct.complex, ptr %8123, i64 %8131
  call void @r_cnjg(ptr noundef %54, ptr noundef %8132)
  %8133 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %8134 = load float, ptr %8133, align 4, !tbaa !11
  %8135 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %8136 = load float, ptr %8135, align 4, !tbaa !11
  %8137 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %8138 = load float, ptr %8137, align 4, !tbaa !15
  %8139 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %8140 = load float, ptr %8139, align 4, !tbaa !15
  %8141 = fmul float %8138, %8140
  %8142 = fneg float %8141
  %8143 = call float @llvm.fmuladd.f32(float %8134, float %8136, float %8142)
  %8144 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %8143, ptr %8144, align 4, !tbaa !11
  %8145 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %8146 = load float, ptr %8145, align 4, !tbaa !11
  %8147 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %8148 = load float, ptr %8147, align 4, !tbaa !15
  %8149 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %8150 = load float, ptr %8149, align 4, !tbaa !15
  %8151 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %8152 = load float, ptr %8151, align 4, !tbaa !11
  %8153 = fmul float %8150, %8152
  %8154 = call float @llvm.fmuladd.f32(float %8146, float %8148, float %8153)
  %8155 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %8154, ptr %8155, align 4, !tbaa !15
  %8156 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %8157 = load float, ptr %8156, align 4, !tbaa !11
  %8158 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %8159 = load float, ptr %8158, align 4, !tbaa !11
  %8160 = fadd float %8157, %8159
  %8161 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %8160, ptr %8161, align 4, !tbaa !11
  %8162 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %8163 = load float, ptr %8162, align 4, !tbaa !15
  %8164 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %8165 = load float, ptr %8164, align 4, !tbaa !15
  %8166 = fadd float %8163, %8165
  %8167 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %8166, ptr %8167, align 4, !tbaa !15
  %8168 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %8169 = load float, ptr %8168, align 4, !tbaa !11
  %8170 = load ptr, ptr %21, align 8, !tbaa !5
  %8171 = load i64, ptr %36, align 8, !tbaa !9
  %8172 = getelementptr inbounds %struct.complex, ptr %8170, i64 %8171
  %8173 = getelementptr inbounds %struct.complex, ptr %8172, i32 0, i32 0
  store float %8169, ptr %8173, align 4, !tbaa !11
  %8174 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %8175 = load float, ptr %8174, align 4, !tbaa !15
  %8176 = load ptr, ptr %21, align 8, !tbaa !5
  %8177 = load i64, ptr %36, align 8, !tbaa !9
  %8178 = getelementptr inbounds %struct.complex, ptr %8176, i64 %8177
  %8179 = getelementptr inbounds %struct.complex, ptr %8178, i32 0, i32 1
  store float %8175, ptr %8179, align 4, !tbaa !15
  br label %8180

8180:                                             ; preds = %7937
  %8181 = load i64, ptr %56, align 8, !tbaa !9
  %8182 = add nsw i64 %8181, 1
  store i64 %8182, ptr %56, align 8, !tbaa !9
  br label %7933, !llvm.loop !88

8183:                                             ; preds = %7933
  %8184 = load ptr, ptr %18, align 8, !tbaa !5
  %8185 = load i64, ptr %8184, align 8, !tbaa !9
  store i64 %8185, ptr %36, align 8, !tbaa !9
  %8186 = load i64, ptr %55, align 8, !tbaa !9
  %8187 = load ptr, ptr %19, align 8, !tbaa !5
  %8188 = load i64, ptr %8187, align 8, !tbaa !9
  %8189 = add nsw i64 %8186, %8188
  store i64 %8189, ptr %37, align 8, !tbaa !9
  %8190 = load i64, ptr %36, align 8, !tbaa !9
  %8191 = load i64, ptr %37, align 8, !tbaa !9
  %8192 = icmp sle i64 %8190, %8191
  br i1 %8192, label %8193, label %8195

8193:                                             ; preds = %8183
  %8194 = load i64, ptr %36, align 8, !tbaa !9
  br label %8197

8195:                                             ; preds = %8183
  %8196 = load i64, ptr %37, align 8, !tbaa !9
  br label %8197

8197:                                             ; preds = %8195, %8193
  %8198 = phi i64 [ %8194, %8193 ], [ %8196, %8195 ]
  store i64 %8198, ptr %38, align 8, !tbaa !9
  %8199 = load i64, ptr %55, align 8, !tbaa !9
  %8200 = load i64, ptr %75, align 8, !tbaa !9
  %8201 = add nsw i64 %8199, %8200
  %8202 = add nsw i64 %8201, 1
  store i64 %8202, ptr %56, align 8, !tbaa !9
  br label %8203

8203:                                             ; preds = %8307, %8197
  %8204 = load i64, ptr %56, align 8, !tbaa !9
  %8205 = load i64, ptr %38, align 8, !tbaa !9
  %8206 = icmp sle i64 %8204, %8205
  br i1 %8206, label %8207, label %8310

8207:                                             ; preds = %8203
  %8208 = load i64, ptr %56, align 8, !tbaa !9
  %8209 = load i64, ptr %57, align 8, !tbaa !9
  %8210 = sub nsw i64 %8208, %8209
  %8211 = add nsw i64 %8210, 1
  %8212 = load i64, ptr %57, align 8, !tbaa !9
  %8213 = load i64, ptr %30, align 8, !tbaa !9
  %8214 = mul nsw i64 %8212, %8213
  %8215 = add nsw i64 %8211, %8214
  store i64 %8215, ptr %36, align 8, !tbaa !9
  %8216 = load i64, ptr %56, align 8, !tbaa !9
  %8217 = load i64, ptr %57, align 8, !tbaa !9
  %8218 = sub nsw i64 %8216, %8217
  %8219 = add nsw i64 %8218, 1
  %8220 = load i64, ptr %57, align 8, !tbaa !9
  %8221 = load i64, ptr %30, align 8, !tbaa !9
  %8222 = mul nsw i64 %8220, %8221
  %8223 = add nsw i64 %8219, %8222
  store i64 %8223, ptr %37, align 8, !tbaa !9
  %8224 = load ptr, ptr %23, align 8, !tbaa !5
  %8225 = load i64, ptr %57, align 8, !tbaa !9
  %8226 = load i64, ptr %55, align 8, !tbaa !9
  %8227 = sub nsw i64 %8225, %8226
  %8228 = add nsw i64 %8227, 1
  %8229 = load i64, ptr %55, align 8, !tbaa !9
  %8230 = load i64, ptr %32, align 8, !tbaa !9
  %8231 = mul nsw i64 %8229, %8230
  %8232 = add nsw i64 %8228, %8231
  %8233 = getelementptr inbounds %struct.complex, ptr %8224, i64 %8232
  call void @r_cnjg(ptr noundef %47, ptr noundef %8233)
  %8234 = load i64, ptr %56, align 8, !tbaa !9
  %8235 = load i64, ptr %55, align 8, !tbaa !9
  %8236 = sub nsw i64 %8234, %8235
  %8237 = add nsw i64 %8236, 1
  %8238 = load i64, ptr %55, align 8, !tbaa !9
  %8239 = load i64, ptr %30, align 8, !tbaa !9
  %8240 = mul nsw i64 %8238, %8239
  %8241 = add nsw i64 %8237, %8240
  store i64 %8241, ptr %40, align 8, !tbaa !9
  %8242 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %8243 = load float, ptr %8242, align 4, !tbaa !11
  %8244 = load ptr, ptr %21, align 8, !tbaa !5
  %8245 = load i64, ptr %40, align 8, !tbaa !9
  %8246 = getelementptr inbounds %struct.complex, ptr %8244, i64 %8245
  %8247 = getelementptr inbounds %struct.complex, ptr %8246, i32 0, i32 0
  %8248 = load float, ptr %8247, align 4, !tbaa !11
  %8249 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %8250 = load float, ptr %8249, align 4, !tbaa !15
  %8251 = load ptr, ptr %21, align 8, !tbaa !5
  %8252 = load i64, ptr %40, align 8, !tbaa !9
  %8253 = getelementptr inbounds %struct.complex, ptr %8251, i64 %8252
  %8254 = getelementptr inbounds %struct.complex, ptr %8253, i32 0, i32 1
  %8255 = load float, ptr %8254, align 4, !tbaa !15
  %8256 = fmul float %8250, %8255
  %8257 = fneg float %8256
  %8258 = call float @llvm.fmuladd.f32(float %8243, float %8248, float %8257)
  %8259 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %8258, ptr %8259, align 4, !tbaa !11
  %8260 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %8261 = load float, ptr %8260, align 4, !tbaa !11
  %8262 = load ptr, ptr %21, align 8, !tbaa !5
  %8263 = load i64, ptr %40, align 8, !tbaa !9
  %8264 = getelementptr inbounds %struct.complex, ptr %8262, i64 %8263
  %8265 = getelementptr inbounds %struct.complex, ptr %8264, i32 0, i32 1
  %8266 = load float, ptr %8265, align 4, !tbaa !15
  %8267 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %8268 = load float, ptr %8267, align 4, !tbaa !15
  %8269 = load ptr, ptr %21, align 8, !tbaa !5
  %8270 = load i64, ptr %40, align 8, !tbaa !9
  %8271 = getelementptr inbounds %struct.complex, ptr %8269, i64 %8270
  %8272 = getelementptr inbounds %struct.complex, ptr %8271, i32 0, i32 0
  %8273 = load float, ptr %8272, align 4, !tbaa !11
  %8274 = fmul float %8268, %8273
  %8275 = call float @llvm.fmuladd.f32(float %8261, float %8266, float %8274)
  %8276 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %8275, ptr %8276, align 4, !tbaa !15
  %8277 = load ptr, ptr %21, align 8, !tbaa !5
  %8278 = load i64, ptr %37, align 8, !tbaa !9
  %8279 = getelementptr inbounds %struct.complex, ptr %8277, i64 %8278
  %8280 = getelementptr inbounds %struct.complex, ptr %8279, i32 0, i32 0
  %8281 = load float, ptr %8280, align 4, !tbaa !11
  %8282 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %8283 = load float, ptr %8282, align 4, !tbaa !11
  %8284 = fsub float %8281, %8283
  %8285 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %8284, ptr %8285, align 4, !tbaa !11
  %8286 = load ptr, ptr %21, align 8, !tbaa !5
  %8287 = load i64, ptr %37, align 8, !tbaa !9
  %8288 = getelementptr inbounds %struct.complex, ptr %8286, i64 %8287
  %8289 = getelementptr inbounds %struct.complex, ptr %8288, i32 0, i32 1
  %8290 = load float, ptr %8289, align 4, !tbaa !15
  %8291 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %8292 = load float, ptr %8291, align 4, !tbaa !15
  %8293 = fsub float %8290, %8292
  %8294 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %8293, ptr %8294, align 4, !tbaa !15
  %8295 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %8296 = load float, ptr %8295, align 4, !tbaa !11
  %8297 = load ptr, ptr %21, align 8, !tbaa !5
  %8298 = load i64, ptr %36, align 8, !tbaa !9
  %8299 = getelementptr inbounds %struct.complex, ptr %8297, i64 %8298
  %8300 = getelementptr inbounds %struct.complex, ptr %8299, i32 0, i32 0
  store float %8296, ptr %8300, align 4, !tbaa !11
  %8301 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %8302 = load float, ptr %8301, align 4, !tbaa !15
  %8303 = load ptr, ptr %21, align 8, !tbaa !5
  %8304 = load i64, ptr %36, align 8, !tbaa !9
  %8305 = getelementptr inbounds %struct.complex, ptr %8303, i64 %8304
  %8306 = getelementptr inbounds %struct.complex, ptr %8305, i32 0, i32 1
  store float %8302, ptr %8306, align 4, !tbaa !15
  br label %8307

8307:                                             ; preds = %8207
  %8308 = load i64, ptr %56, align 8, !tbaa !9
  %8309 = add nsw i64 %8308, 1
  store i64 %8309, ptr %56, align 8, !tbaa !9
  br label %8203, !llvm.loop !89

8310:                                             ; preds = %8203
  br label %8311

8311:                                             ; preds = %8310
  %8312 = load i64, ptr %57, align 8, !tbaa !9
  %8313 = add nsw i64 %8312, 1
  store i64 %8313, ptr %57, align 8, !tbaa !9
  br label %7924, !llvm.loop !90

8314:                                             ; preds = %7924
  %8315 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %8315, ptr %39, align 8, !tbaa !9
  %8316 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %8316, ptr %56, align 8, !tbaa !9
  br label %8317

8317:                                             ; preds = %8458, %8314
  %8318 = load i64, ptr %56, align 8, !tbaa !9
  %8319 = load i64, ptr %39, align 8, !tbaa !9
  %8320 = icmp sle i64 %8318, %8319
  br i1 %8320, label %8321, label %8461

8321:                                             ; preds = %8317
  %8322 = load i64, ptr %56, align 8, !tbaa !9
  %8323 = load ptr, ptr %19, align 8, !tbaa !5
  %8324 = load i64, ptr %8323, align 8, !tbaa !9
  %8325 = add nsw i64 %8322, %8324
  store i64 %8325, ptr %36, align 8, !tbaa !9
  %8326 = load i64, ptr %55, align 8, !tbaa !9
  %8327 = load i64, ptr %75, align 8, !tbaa !9
  %8328 = add nsw i64 %8326, %8327
  store i64 %8328, ptr %37, align 8, !tbaa !9
  %8329 = load i64, ptr %36, align 8, !tbaa !9
  %8330 = load i64, ptr %37, align 8, !tbaa !9
  %8331 = icmp sle i64 %8329, %8330
  br i1 %8331, label %8332, label %8334

8332:                                             ; preds = %8321
  %8333 = load i64, ptr %36, align 8, !tbaa !9
  br label %8336

8334:                                             ; preds = %8321
  %8335 = load i64, ptr %37, align 8, !tbaa !9
  br label %8336

8336:                                             ; preds = %8334, %8332
  %8337 = phi i64 [ %8333, %8332 ], [ %8335, %8334 ]
  store i64 %8337, ptr %38, align 8, !tbaa !9
  %8338 = load i64, ptr %55, align 8, !tbaa !9
  %8339 = add nsw i64 %8338, 1
  store i64 %8339, ptr %57, align 8, !tbaa !9
  br label %8340

8340:                                             ; preds = %8454, %8336
  %8341 = load i64, ptr %57, align 8, !tbaa !9
  %8342 = load i64, ptr %38, align 8, !tbaa !9
  %8343 = icmp sle i64 %8341, %8342
  br i1 %8343, label %8344, label %8457

8344:                                             ; preds = %8340
  %8345 = load i64, ptr %57, align 8, !tbaa !9
  %8346 = load i64, ptr %56, align 8, !tbaa !9
  %8347 = sub nsw i64 %8345, %8346
  %8348 = add nsw i64 %8347, 1
  %8349 = load i64, ptr %56, align 8, !tbaa !9
  %8350 = load i64, ptr %30, align 8, !tbaa !9
  %8351 = mul nsw i64 %8349, %8350
  %8352 = add nsw i64 %8348, %8351
  store i64 %8352, ptr %36, align 8, !tbaa !9
  %8353 = load i64, ptr %57, align 8, !tbaa !9
  %8354 = load i64, ptr %56, align 8, !tbaa !9
  %8355 = sub nsw i64 %8353, %8354
  %8356 = add nsw i64 %8355, 1
  %8357 = load i64, ptr %56, align 8, !tbaa !9
  %8358 = load i64, ptr %30, align 8, !tbaa !9
  %8359 = mul nsw i64 %8357, %8358
  %8360 = add nsw i64 %8356, %8359
  store i64 %8360, ptr %37, align 8, !tbaa !9
  %8361 = load i64, ptr %57, align 8, !tbaa !9
  %8362 = load i64, ptr %55, align 8, !tbaa !9
  %8363 = sub nsw i64 %8361, %8362
  %8364 = add nsw i64 %8363, 1
  %8365 = load i64, ptr %55, align 8, !tbaa !9
  %8366 = load i64, ptr %32, align 8, !tbaa !9
  %8367 = mul nsw i64 %8365, %8366
  %8368 = add nsw i64 %8364, %8367
  store i64 %8368, ptr %40, align 8, !tbaa !9
  %8369 = load i64, ptr %55, align 8, !tbaa !9
  %8370 = load i64, ptr %56, align 8, !tbaa !9
  %8371 = sub nsw i64 %8369, %8370
  %8372 = add nsw i64 %8371, 1
  %8373 = load i64, ptr %56, align 8, !tbaa !9
  %8374 = load i64, ptr %30, align 8, !tbaa !9
  %8375 = mul nsw i64 %8373, %8374
  %8376 = add nsw i64 %8372, %8375
  store i64 %8376, ptr %41, align 8, !tbaa !9
  %8377 = load ptr, ptr %23, align 8, !tbaa !5
  %8378 = load i64, ptr %40, align 8, !tbaa !9
  %8379 = getelementptr inbounds %struct.complex, ptr %8377, i64 %8378
  %8380 = getelementptr inbounds %struct.complex, ptr %8379, i32 0, i32 0
  %8381 = load float, ptr %8380, align 4, !tbaa !11
  %8382 = load ptr, ptr %21, align 8, !tbaa !5
  %8383 = load i64, ptr %41, align 8, !tbaa !9
  %8384 = getelementptr inbounds %struct.complex, ptr %8382, i64 %8383
  %8385 = getelementptr inbounds %struct.complex, ptr %8384, i32 0, i32 0
  %8386 = load float, ptr %8385, align 4, !tbaa !11
  %8387 = load ptr, ptr %23, align 8, !tbaa !5
  %8388 = load i64, ptr %40, align 8, !tbaa !9
  %8389 = getelementptr inbounds %struct.complex, ptr %8387, i64 %8388
  %8390 = getelementptr inbounds %struct.complex, ptr %8389, i32 0, i32 1
  %8391 = load float, ptr %8390, align 4, !tbaa !15
  %8392 = load ptr, ptr %21, align 8, !tbaa !5
  %8393 = load i64, ptr %41, align 8, !tbaa !9
  %8394 = getelementptr inbounds %struct.complex, ptr %8392, i64 %8393
  %8395 = getelementptr inbounds %struct.complex, ptr %8394, i32 0, i32 1
  %8396 = load float, ptr %8395, align 4, !tbaa !15
  %8397 = fmul float %8391, %8396
  %8398 = fneg float %8397
  %8399 = call float @llvm.fmuladd.f32(float %8381, float %8386, float %8398)
  %8400 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %8399, ptr %8400, align 4, !tbaa !11
  %8401 = load ptr, ptr %23, align 8, !tbaa !5
  %8402 = load i64, ptr %40, align 8, !tbaa !9
  %8403 = getelementptr inbounds %struct.complex, ptr %8401, i64 %8402
  %8404 = getelementptr inbounds %struct.complex, ptr %8403, i32 0, i32 0
  %8405 = load float, ptr %8404, align 4, !tbaa !11
  %8406 = load ptr, ptr %21, align 8, !tbaa !5
  %8407 = load i64, ptr %41, align 8, !tbaa !9
  %8408 = getelementptr inbounds %struct.complex, ptr %8406, i64 %8407
  %8409 = getelementptr inbounds %struct.complex, ptr %8408, i32 0, i32 1
  %8410 = load float, ptr %8409, align 4, !tbaa !15
  %8411 = load ptr, ptr %23, align 8, !tbaa !5
  %8412 = load i64, ptr %40, align 8, !tbaa !9
  %8413 = getelementptr inbounds %struct.complex, ptr %8411, i64 %8412
  %8414 = getelementptr inbounds %struct.complex, ptr %8413, i32 0, i32 1
  %8415 = load float, ptr %8414, align 4, !tbaa !15
  %8416 = load ptr, ptr %21, align 8, !tbaa !5
  %8417 = load i64, ptr %41, align 8, !tbaa !9
  %8418 = getelementptr inbounds %struct.complex, ptr %8416, i64 %8417
  %8419 = getelementptr inbounds %struct.complex, ptr %8418, i32 0, i32 0
  %8420 = load float, ptr %8419, align 4, !tbaa !11
  %8421 = fmul float %8415, %8420
  %8422 = call float @llvm.fmuladd.f32(float %8405, float %8410, float %8421)
  %8423 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %8422, ptr %8423, align 4, !tbaa !15
  %8424 = load ptr, ptr %21, align 8, !tbaa !5
  %8425 = load i64, ptr %37, align 8, !tbaa !9
  %8426 = getelementptr inbounds %struct.complex, ptr %8424, i64 %8425
  %8427 = getelementptr inbounds %struct.complex, ptr %8426, i32 0, i32 0
  %8428 = load float, ptr %8427, align 4, !tbaa !11
  %8429 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %8430 = load float, ptr %8429, align 4, !tbaa !11
  %8431 = fsub float %8428, %8430
  %8432 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %8431, ptr %8432, align 4, !tbaa !11
  %8433 = load ptr, ptr %21, align 8, !tbaa !5
  %8434 = load i64, ptr %37, align 8, !tbaa !9
  %8435 = getelementptr inbounds %struct.complex, ptr %8433, i64 %8434
  %8436 = getelementptr inbounds %struct.complex, ptr %8435, i32 0, i32 1
  %8437 = load float, ptr %8436, align 4, !tbaa !15
  %8438 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %8439 = load float, ptr %8438, align 4, !tbaa !15
  %8440 = fsub float %8437, %8439
  %8441 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %8440, ptr %8441, align 4, !tbaa !15
  %8442 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %8443 = load float, ptr %8442, align 4, !tbaa !11
  %8444 = load ptr, ptr %21, align 8, !tbaa !5
  %8445 = load i64, ptr %36, align 8, !tbaa !9
  %8446 = getelementptr inbounds %struct.complex, ptr %8444, i64 %8445
  %8447 = getelementptr inbounds %struct.complex, ptr %8446, i32 0, i32 0
  store float %8443, ptr %8447, align 4, !tbaa !11
  %8448 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %8449 = load float, ptr %8448, align 4, !tbaa !15
  %8450 = load ptr, ptr %21, align 8, !tbaa !5
  %8451 = load i64, ptr %36, align 8, !tbaa !9
  %8452 = getelementptr inbounds %struct.complex, ptr %8450, i64 %8451
  %8453 = getelementptr inbounds %struct.complex, ptr %8452, i32 0, i32 1
  store float %8449, ptr %8453, align 4, !tbaa !15
  br label %8454

8454:                                             ; preds = %8344
  %8455 = load i64, ptr %57, align 8, !tbaa !9
  %8456 = add nsw i64 %8455, 1
  store i64 %8456, ptr %57, align 8, !tbaa !9
  br label %8340, !llvm.loop !91

8457:                                             ; preds = %8340
  br label %8458

8458:                                             ; preds = %8457
  %8459 = load i64, ptr %56, align 8, !tbaa !9
  %8460 = add nsw i64 %8459, 1
  store i64 %8460, ptr %56, align 8, !tbaa !9
  br label %8317, !llvm.loop !92

8461:                                             ; preds = %8317
  %8462 = load i64, ptr %79, align 8, !tbaa !9
  %8463 = icmp ne i64 %8462, 0
  br i1 %8463, label %8464, label %8501

8464:                                             ; preds = %8461
  %8465 = load float, ptr %74, align 4, !tbaa !14
  %8466 = fdiv float 1.000000e+00, %8465
  store float %8466, ptr %44, align 4, !tbaa !14
  %8467 = load ptr, ptr %25, align 8, !tbaa !5
  %8468 = load i64, ptr %55, align 8, !tbaa !9
  %8469 = load i64, ptr %34, align 8, !tbaa !9
  %8470 = mul nsw i64 %8468, %8469
  %8471 = add nsw i64 %8470, 1
  %8472 = getelementptr inbounds %struct.complex, ptr %8467, i64 %8471
  %8473 = call i32 @f2c_csscal(ptr noundef %68, ptr noundef %44, ptr noundef %8472, ptr noundef @c__1)
  %8474 = load i64, ptr %75, align 8, !tbaa !9
  %8475 = icmp sgt i64 %8474, 0
  br i1 %8475, label %8476, label %8500

8476:                                             ; preds = %8464
  %8477 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float -1.000000e+00, ptr %8477, align 4, !tbaa !11
  %8478 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float -0.000000e+00, ptr %8478, align 4, !tbaa !15
  %8479 = load ptr, ptr %25, align 8, !tbaa !5
  %8480 = load i64, ptr %55, align 8, !tbaa !9
  %8481 = load i64, ptr %34, align 8, !tbaa !9
  %8482 = mul nsw i64 %8480, %8481
  %8483 = add nsw i64 %8482, 1
  %8484 = getelementptr inbounds %struct.complex, ptr %8479, i64 %8483
  %8485 = load ptr, ptr %23, align 8, !tbaa !5
  %8486 = load i64, ptr %55, align 8, !tbaa !9
  %8487 = load i64, ptr %32, align 8, !tbaa !9
  %8488 = mul nsw i64 %8486, %8487
  %8489 = add nsw i64 %8488, 2
  %8490 = getelementptr inbounds %struct.complex, ptr %8485, i64 %8489
  %8491 = load ptr, ptr %25, align 8, !tbaa !5
  %8492 = load i64, ptr %55, align 8, !tbaa !9
  %8493 = add nsw i64 %8492, 1
  %8494 = load i64, ptr %34, align 8, !tbaa !9
  %8495 = mul nsw i64 %8493, %8494
  %8496 = add nsw i64 %8495, 1
  %8497 = getelementptr inbounds %struct.complex, ptr %8491, i64 %8496
  %8498 = load ptr, ptr %26, align 8, !tbaa !5
  %8499 = call i32 @f2c_cgerc(ptr noundef %68, ptr noundef %75, ptr noundef %45, ptr noundef %8484, ptr noundef @c__1, ptr noundef %8490, ptr noundef @c__1, ptr noundef %8497, ptr noundef %8498)
  br label %8500

8500:                                             ; preds = %8476, %8464
  br label %8501

8501:                                             ; preds = %8500, %8461
  %8502 = load i64, ptr %55, align 8, !tbaa !9
  %8503 = load i64, ptr %62, align 8, !tbaa !9
  %8504 = sub nsw i64 %8502, %8503
  %8505 = add nsw i64 %8504, 1
  %8506 = load i64, ptr %62, align 8, !tbaa !9
  %8507 = load i64, ptr %30, align 8, !tbaa !9
  %8508 = mul nsw i64 %8506, %8507
  %8509 = add nsw i64 %8505, %8508
  store i64 %8509, ptr %39, align 8, !tbaa !9
  %8510 = load ptr, ptr %21, align 8, !tbaa !5
  %8511 = load i64, ptr %39, align 8, !tbaa !9
  %8512 = getelementptr inbounds %struct.complex, ptr %8510, i64 %8511
  %8513 = getelementptr inbounds %struct.complex, ptr %8512, i32 0, i32 0
  %8514 = load float, ptr %8513, align 4, !tbaa !11
  %8515 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %8514, ptr %8515, align 4, !tbaa !11
  %8516 = load ptr, ptr %21, align 8, !tbaa !5
  %8517 = load i64, ptr %39, align 8, !tbaa !9
  %8518 = getelementptr inbounds %struct.complex, ptr %8516, i64 %8517
  %8519 = getelementptr inbounds %struct.complex, ptr %8518, i32 0, i32 1
  %8520 = load float, ptr %8519, align 4, !tbaa !15
  %8521 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %8520, ptr %8521, align 4, !tbaa !15
  br label %8522

8522:                                             ; preds = %8501, %7754
  %8523 = load ptr, ptr %20, align 8, !tbaa !5
  %8524 = load i64, ptr %8523, align 8, !tbaa !9
  %8525 = sub nsw i64 %8524, 1
  store i64 %8525, ptr %39, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %8526

8526:                                             ; preds = %9265, %8522
  %8527 = load i64, ptr %57, align 8, !tbaa !9
  %8528 = load i64, ptr %39, align 8, !tbaa !9
  %8529 = icmp sle i64 %8527, %8528
  br i1 %8529, label %8530, label %9268

8530:                                             ; preds = %8526
  %8531 = load i64, ptr %80, align 8, !tbaa !9
  %8532 = icmp ne i64 %8531, 0
  br i1 %8532, label %8533, label %8854

8533:                                             ; preds = %8530
  %8534 = load i64, ptr %55, align 8, !tbaa !9
  %8535 = load i64, ptr %57, align 8, !tbaa !9
  %8536 = add nsw i64 %8534, %8535
  %8537 = load i64, ptr %69, align 8, !tbaa !9
  %8538 = sub nsw i64 %8536, %8537
  %8539 = icmp sgt i64 %8538, 0
  br i1 %8539, label %8540, label %8853

8540:                                             ; preds = %8533
  %8541 = load i64, ptr %55, align 8, !tbaa !9
  %8542 = load i64, ptr %57, align 8, !tbaa !9
  %8543 = add nsw i64 %8541, %8542
  %8544 = load i64, ptr %59, align 8, !tbaa !9
  %8545 = icmp slt i64 %8543, %8544
  br i1 %8545, label %8546, label %8853

8546:                                             ; preds = %8540
  %8547 = load ptr, ptr %21, align 8, !tbaa !5
  %8548 = load i64, ptr %69, align 8, !tbaa !9
  %8549 = load i64, ptr %57, align 8, !tbaa !9
  %8550 = sub nsw i64 %8548, %8549
  %8551 = load i64, ptr %55, align 8, !tbaa !9
  %8552 = load i64, ptr %57, align 8, !tbaa !9
  %8553 = add nsw i64 %8551, %8552
  %8554 = load ptr, ptr %19, align 8, !tbaa !5
  %8555 = load i64, ptr %8554, align 8, !tbaa !9
  %8556 = sub nsw i64 %8553, %8555
  %8557 = load i64, ptr %30, align 8, !tbaa !9
  %8558 = mul nsw i64 %8556, %8557
  %8559 = add nsw i64 %8550, %8558
  %8560 = getelementptr inbounds %struct.complex, ptr %8547, i64 %8559
  %8561 = load ptr, ptr %28, align 8, !tbaa !5
  %8562 = load i64, ptr %55, align 8, !tbaa !9
  %8563 = load i64, ptr %57, align 8, !tbaa !9
  %8564 = add nsw i64 %8562, %8563
  %8565 = load ptr, ptr %19, align 8, !tbaa !5
  %8566 = load i64, ptr %8565, align 8, !tbaa !9
  %8567 = sub nsw i64 %8564, %8566
  %8568 = getelementptr inbounds float, ptr %8561, i64 %8567
  %8569 = load ptr, ptr %27, align 8, !tbaa !5
  %8570 = load i64, ptr %55, align 8, !tbaa !9
  %8571 = load i64, ptr %57, align 8, !tbaa !9
  %8572 = add nsw i64 %8570, %8571
  %8573 = load ptr, ptr %19, align 8, !tbaa !5
  %8574 = load i64, ptr %8573, align 8, !tbaa !9
  %8575 = sub nsw i64 %8572, %8574
  %8576 = getelementptr inbounds %struct.complex, ptr %8569, i64 %8575
  %8577 = call i32 @clartg_(ptr noundef %8560, ptr noundef %71, ptr noundef %8568, ptr noundef %8576, ptr noundef %66)
  %8578 = load i64, ptr %57, align 8, !tbaa !9
  %8579 = add nsw i64 %8578, 1
  %8580 = load i64, ptr %55, align 8, !tbaa !9
  %8581 = load i64, ptr %32, align 8, !tbaa !9
  %8582 = mul nsw i64 %8580, %8581
  %8583 = add nsw i64 %8579, %8582
  store i64 %8583, ptr %38, align 8, !tbaa !9
  %8584 = load ptr, ptr %23, align 8, !tbaa !5
  %8585 = load i64, ptr %38, align 8, !tbaa !9
  %8586 = getelementptr inbounds %struct.complex, ptr %8584, i64 %8585
  %8587 = getelementptr inbounds %struct.complex, ptr %8586, i32 0, i32 0
  %8588 = load float, ptr %8587, align 4, !tbaa !11
  %8589 = fneg float %8588
  %8590 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %8589, ptr %8590, align 4, !tbaa !11
  %8591 = load ptr, ptr %23, align 8, !tbaa !5
  %8592 = load i64, ptr %38, align 8, !tbaa !9
  %8593 = getelementptr inbounds %struct.complex, ptr %8591, i64 %8592
  %8594 = getelementptr inbounds %struct.complex, ptr %8593, i32 0, i32 1
  %8595 = load float, ptr %8594, align 4, !tbaa !15
  %8596 = fneg float %8595
  %8597 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %8596, ptr %8597, align 4, !tbaa !15
  %8598 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %8599 = load float, ptr %8598, align 4, !tbaa !11
  %8600 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %8601 = load float, ptr %8600, align 4, !tbaa !11
  %8602 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %8603 = load float, ptr %8602, align 4, !tbaa !15
  %8604 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %8605 = load float, ptr %8604, align 4, !tbaa !15
  %8606 = fmul float %8603, %8605
  %8607 = fneg float %8606
  %8608 = call float @llvm.fmuladd.f32(float %8599, float %8601, float %8607)
  %8609 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %8608, ptr %8609, align 4, !tbaa !11
  %8610 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %8611 = load float, ptr %8610, align 4, !tbaa !11
  %8612 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %8613 = load float, ptr %8612, align 4, !tbaa !15
  %8614 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %8615 = load float, ptr %8614, align 4, !tbaa !15
  %8616 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %8617 = load float, ptr %8616, align 4, !tbaa !11
  %8618 = fmul float %8615, %8617
  %8619 = call float @llvm.fmuladd.f32(float %8611, float %8613, float %8618)
  %8620 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %8619, ptr %8620, align 4, !tbaa !15
  %8621 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %8622 = load float, ptr %8621, align 4, !tbaa !11
  %8623 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %8622, ptr %8623, align 4, !tbaa !11
  %8624 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %8625 = load float, ptr %8624, align 4, !tbaa !15
  %8626 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %8625, ptr %8626, align 4, !tbaa !15
  %8627 = load i64, ptr %59, align 8, !tbaa !9
  %8628 = load ptr, ptr %20, align 8, !tbaa !5
  %8629 = load i64, ptr %8628, align 8, !tbaa !9
  %8630 = sub nsw i64 %8627, %8629
  %8631 = load i64, ptr %55, align 8, !tbaa !9
  %8632 = add nsw i64 %8630, %8631
  %8633 = load i64, ptr %57, align 8, !tbaa !9
  %8634 = add nsw i64 %8632, %8633
  store i64 %8634, ptr %38, align 8, !tbaa !9
  %8635 = load i64, ptr %55, align 8, !tbaa !9
  %8636 = load i64, ptr %57, align 8, !tbaa !9
  %8637 = add nsw i64 %8635, %8636
  %8638 = load ptr, ptr %19, align 8, !tbaa !5
  %8639 = load i64, ptr %8638, align 8, !tbaa !9
  %8640 = sub nsw i64 %8637, %8639
  store i64 %8640, ptr %36, align 8, !tbaa !9
  %8641 = load ptr, ptr %28, align 8, !tbaa !5
  %8642 = load i64, ptr %36, align 8, !tbaa !9
  %8643 = getelementptr inbounds float, ptr %8641, i64 %8642
  %8644 = load float, ptr %8643, align 4, !tbaa !14
  %8645 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %8646 = load float, ptr %8645, align 4, !tbaa !11
  %8647 = fmul float %8644, %8646
  %8648 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %8647, ptr %8648, align 4, !tbaa !11
  %8649 = load ptr, ptr %28, align 8, !tbaa !5
  %8650 = load i64, ptr %36, align 8, !tbaa !9
  %8651 = getelementptr inbounds float, ptr %8649, i64 %8650
  %8652 = load float, ptr %8651, align 4, !tbaa !14
  %8653 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %8654 = load float, ptr %8653, align 4, !tbaa !15
  %8655 = fmul float %8652, %8654
  %8656 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %8655, ptr %8656, align 4, !tbaa !15
  %8657 = load ptr, ptr %27, align 8, !tbaa !5
  %8658 = load i64, ptr %55, align 8, !tbaa !9
  %8659 = load i64, ptr %57, align 8, !tbaa !9
  %8660 = add nsw i64 %8658, %8659
  %8661 = load ptr, ptr %19, align 8, !tbaa !5
  %8662 = load i64, ptr %8661, align 8, !tbaa !9
  %8663 = sub nsw i64 %8660, %8662
  %8664 = getelementptr inbounds %struct.complex, ptr %8657, i64 %8663
  call void @r_cnjg(ptr noundef %48, ptr noundef %8664)
  %8665 = load i64, ptr %69, align 8, !tbaa !9
  %8666 = load i64, ptr %55, align 8, !tbaa !9
  %8667 = load i64, ptr %57, align 8, !tbaa !9
  %8668 = add nsw i64 %8666, %8667
  %8669 = load ptr, ptr %19, align 8, !tbaa !5
  %8670 = load i64, ptr %8669, align 8, !tbaa !9
  %8671 = sub nsw i64 %8668, %8670
  %8672 = load i64, ptr %30, align 8, !tbaa !9
  %8673 = mul nsw i64 %8671, %8672
  %8674 = add nsw i64 %8665, %8673
  store i64 %8674, ptr %37, align 8, !tbaa !9
  %8675 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %8676 = load float, ptr %8675, align 4, !tbaa !11
  %8677 = load ptr, ptr %21, align 8, !tbaa !5
  %8678 = load i64, ptr %37, align 8, !tbaa !9
  %8679 = getelementptr inbounds %struct.complex, ptr %8677, i64 %8678
  %8680 = getelementptr inbounds %struct.complex, ptr %8679, i32 0, i32 0
  %8681 = load float, ptr %8680, align 4, !tbaa !11
  %8682 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %8683 = load float, ptr %8682, align 4, !tbaa !15
  %8684 = load ptr, ptr %21, align 8, !tbaa !5
  %8685 = load i64, ptr %37, align 8, !tbaa !9
  %8686 = getelementptr inbounds %struct.complex, ptr %8684, i64 %8685
  %8687 = getelementptr inbounds %struct.complex, ptr %8686, i32 0, i32 1
  %8688 = load float, ptr %8687, align 4, !tbaa !15
  %8689 = fmul float %8683, %8688
  %8690 = fneg float %8689
  %8691 = call float @llvm.fmuladd.f32(float %8676, float %8681, float %8690)
  %8692 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %8691, ptr %8692, align 4, !tbaa !11
  %8693 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %8694 = load float, ptr %8693, align 4, !tbaa !11
  %8695 = load ptr, ptr %21, align 8, !tbaa !5
  %8696 = load i64, ptr %37, align 8, !tbaa !9
  %8697 = getelementptr inbounds %struct.complex, ptr %8695, i64 %8696
  %8698 = getelementptr inbounds %struct.complex, ptr %8697, i32 0, i32 1
  %8699 = load float, ptr %8698, align 4, !tbaa !15
  %8700 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %8701 = load float, ptr %8700, align 4, !tbaa !15
  %8702 = load ptr, ptr %21, align 8, !tbaa !5
  %8703 = load i64, ptr %37, align 8, !tbaa !9
  %8704 = getelementptr inbounds %struct.complex, ptr %8702, i64 %8703
  %8705 = getelementptr inbounds %struct.complex, ptr %8704, i32 0, i32 0
  %8706 = load float, ptr %8705, align 4, !tbaa !11
  %8707 = fmul float %8701, %8706
  %8708 = call float @llvm.fmuladd.f32(float %8694, float %8699, float %8707)
  %8709 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %8708, ptr %8709, align 4, !tbaa !15
  %8710 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %8711 = load float, ptr %8710, align 4, !tbaa !11
  %8712 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %8713 = load float, ptr %8712, align 4, !tbaa !11
  %8714 = fsub float %8711, %8713
  %8715 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %8714, ptr %8715, align 4, !tbaa !11
  %8716 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %8717 = load float, ptr %8716, align 4, !tbaa !15
  %8718 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %8719 = load float, ptr %8718, align 4, !tbaa !15
  %8720 = fsub float %8717, %8719
  %8721 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %8720, ptr %8721, align 4, !tbaa !15
  %8722 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %8723 = load float, ptr %8722, align 4, !tbaa !11
  %8724 = load ptr, ptr %27, align 8, !tbaa !5
  %8725 = load i64, ptr %38, align 8, !tbaa !9
  %8726 = getelementptr inbounds %struct.complex, ptr %8724, i64 %8725
  %8727 = getelementptr inbounds %struct.complex, ptr %8726, i32 0, i32 0
  store float %8723, ptr %8727, align 4, !tbaa !11
  %8728 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %8729 = load float, ptr %8728, align 4, !tbaa !15
  %8730 = load ptr, ptr %27, align 8, !tbaa !5
  %8731 = load i64, ptr %38, align 8, !tbaa !9
  %8732 = getelementptr inbounds %struct.complex, ptr %8730, i64 %8731
  %8733 = getelementptr inbounds %struct.complex, ptr %8732, i32 0, i32 1
  store float %8729, ptr %8733, align 4, !tbaa !15
  %8734 = load i64, ptr %69, align 8, !tbaa !9
  %8735 = load i64, ptr %55, align 8, !tbaa !9
  %8736 = load i64, ptr %57, align 8, !tbaa !9
  %8737 = add nsw i64 %8735, %8736
  %8738 = load ptr, ptr %19, align 8, !tbaa !5
  %8739 = load i64, ptr %8738, align 8, !tbaa !9
  %8740 = sub nsw i64 %8737, %8739
  %8741 = load i64, ptr %30, align 8, !tbaa !9
  %8742 = mul nsw i64 %8740, %8741
  %8743 = add nsw i64 %8734, %8742
  store i64 %8743, ptr %38, align 8, !tbaa !9
  %8744 = load i64, ptr %55, align 8, !tbaa !9
  %8745 = load i64, ptr %57, align 8, !tbaa !9
  %8746 = add nsw i64 %8744, %8745
  %8747 = load ptr, ptr %19, align 8, !tbaa !5
  %8748 = load i64, ptr %8747, align 8, !tbaa !9
  %8749 = sub nsw i64 %8746, %8748
  store i64 %8749, ptr %36, align 8, !tbaa !9
  %8750 = load ptr, ptr %27, align 8, !tbaa !5
  %8751 = load i64, ptr %36, align 8, !tbaa !9
  %8752 = getelementptr inbounds %struct.complex, ptr %8750, i64 %8751
  %8753 = getelementptr inbounds %struct.complex, ptr %8752, i32 0, i32 0
  %8754 = load float, ptr %8753, align 4, !tbaa !11
  %8755 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %8756 = load float, ptr %8755, align 4, !tbaa !11
  %8757 = load ptr, ptr %27, align 8, !tbaa !5
  %8758 = load i64, ptr %36, align 8, !tbaa !9
  %8759 = getelementptr inbounds %struct.complex, ptr %8757, i64 %8758
  %8760 = getelementptr inbounds %struct.complex, ptr %8759, i32 0, i32 1
  %8761 = load float, ptr %8760, align 4, !tbaa !15
  %8762 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %8763 = load float, ptr %8762, align 4, !tbaa !15
  %8764 = fmul float %8761, %8763
  %8765 = fneg float %8764
  %8766 = call float @llvm.fmuladd.f32(float %8754, float %8756, float %8765)
  %8767 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %8766, ptr %8767, align 4, !tbaa !11
  %8768 = load ptr, ptr %27, align 8, !tbaa !5
  %8769 = load i64, ptr %36, align 8, !tbaa !9
  %8770 = getelementptr inbounds %struct.complex, ptr %8768, i64 %8769
  %8771 = getelementptr inbounds %struct.complex, ptr %8770, i32 0, i32 0
  %8772 = load float, ptr %8771, align 4, !tbaa !11
  %8773 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %8774 = load float, ptr %8773, align 4, !tbaa !15
  %8775 = load ptr, ptr %27, align 8, !tbaa !5
  %8776 = load i64, ptr %36, align 8, !tbaa !9
  %8777 = getelementptr inbounds %struct.complex, ptr %8775, i64 %8776
  %8778 = getelementptr inbounds %struct.complex, ptr %8777, i32 0, i32 1
  %8779 = load float, ptr %8778, align 4, !tbaa !15
  %8780 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %8781 = load float, ptr %8780, align 4, !tbaa !11
  %8782 = fmul float %8779, %8781
  %8783 = call float @llvm.fmuladd.f32(float %8772, float %8774, float %8782)
  %8784 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %8783, ptr %8784, align 4, !tbaa !15
  %8785 = load i64, ptr %55, align 8, !tbaa !9
  %8786 = load i64, ptr %57, align 8, !tbaa !9
  %8787 = add nsw i64 %8785, %8786
  %8788 = load ptr, ptr %19, align 8, !tbaa !5
  %8789 = load i64, ptr %8788, align 8, !tbaa !9
  %8790 = sub nsw i64 %8787, %8789
  store i64 %8790, ptr %37, align 8, !tbaa !9
  %8791 = load i64, ptr %69, align 8, !tbaa !9
  %8792 = load i64, ptr %55, align 8, !tbaa !9
  %8793 = load i64, ptr %57, align 8, !tbaa !9
  %8794 = add nsw i64 %8792, %8793
  %8795 = load ptr, ptr %19, align 8, !tbaa !5
  %8796 = load i64, ptr %8795, align 8, !tbaa !9
  %8797 = sub nsw i64 %8794, %8796
  %8798 = load i64, ptr %30, align 8, !tbaa !9
  %8799 = mul nsw i64 %8797, %8798
  %8800 = add nsw i64 %8791, %8799
  store i64 %8800, ptr %40, align 8, !tbaa !9
  %8801 = load ptr, ptr %28, align 8, !tbaa !5
  %8802 = load i64, ptr %37, align 8, !tbaa !9
  %8803 = getelementptr inbounds float, ptr %8801, i64 %8802
  %8804 = load float, ptr %8803, align 4, !tbaa !14
  %8805 = load ptr, ptr %21, align 8, !tbaa !5
  %8806 = load i64, ptr %40, align 8, !tbaa !9
  %8807 = getelementptr inbounds %struct.complex, ptr %8805, i64 %8806
  %8808 = getelementptr inbounds %struct.complex, ptr %8807, i32 0, i32 0
  %8809 = load float, ptr %8808, align 4, !tbaa !11
  %8810 = fmul float %8804, %8809
  %8811 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  store float %8810, ptr %8811, align 4, !tbaa !11
  %8812 = load ptr, ptr %28, align 8, !tbaa !5
  %8813 = load i64, ptr %37, align 8, !tbaa !9
  %8814 = getelementptr inbounds float, ptr %8812, i64 %8813
  %8815 = load float, ptr %8814, align 4, !tbaa !14
  %8816 = load ptr, ptr %21, align 8, !tbaa !5
  %8817 = load i64, ptr %40, align 8, !tbaa !9
  %8818 = getelementptr inbounds %struct.complex, ptr %8816, i64 %8817
  %8819 = getelementptr inbounds %struct.complex, ptr %8818, i32 0, i32 1
  %8820 = load float, ptr %8819, align 4, !tbaa !15
  %8821 = fmul float %8815, %8820
  %8822 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  store float %8821, ptr %8822, align 4, !tbaa !15
  %8823 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %8824 = load float, ptr %8823, align 4, !tbaa !11
  %8825 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %8826 = load float, ptr %8825, align 4, !tbaa !11
  %8827 = fadd float %8824, %8826
  %8828 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %8827, ptr %8828, align 4, !tbaa !11
  %8829 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %8830 = load float, ptr %8829, align 4, !tbaa !15
  %8831 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %8832 = load float, ptr %8831, align 4, !tbaa !15
  %8833 = fadd float %8830, %8832
  %8834 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %8833, ptr %8834, align 4, !tbaa !15
  %8835 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %8836 = load float, ptr %8835, align 4, !tbaa !11
  %8837 = load ptr, ptr %21, align 8, !tbaa !5
  %8838 = load i64, ptr %38, align 8, !tbaa !9
  %8839 = getelementptr inbounds %struct.complex, ptr %8837, i64 %8838
  %8840 = getelementptr inbounds %struct.complex, ptr %8839, i32 0, i32 0
  store float %8836, ptr %8840, align 4, !tbaa !11
  %8841 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %8842 = load float, ptr %8841, align 4, !tbaa !15
  %8843 = load ptr, ptr %21, align 8, !tbaa !5
  %8844 = load i64, ptr %38, align 8, !tbaa !9
  %8845 = getelementptr inbounds %struct.complex, ptr %8843, i64 %8844
  %8846 = getelementptr inbounds %struct.complex, ptr %8845, i32 0, i32 1
  store float %8842, ptr %8846, align 4, !tbaa !15
  %8847 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 0
  %8848 = load float, ptr %8847, align 4, !tbaa !11
  %8849 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  store float %8848, ptr %8849, align 4, !tbaa !11
  %8850 = getelementptr inbounds %struct.complex, ptr %66, i32 0, i32 1
  %8851 = load float, ptr %8850, align 4, !tbaa !15
  %8852 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  store float %8851, ptr %8852, align 4, !tbaa !15
  br label %8853

8853:                                             ; preds = %8546, %8540, %8533
  br label %8854

8854:                                             ; preds = %8853, %8530
  store i64 1, ptr %38, align 8, !tbaa !9
  %8855 = load i64, ptr %57, align 8, !tbaa !9
  %8856 = load i64, ptr %61, align 8, !tbaa !9
  %8857 = add nsw i64 %8855, %8856
  %8858 = load i64, ptr %59, align 8, !tbaa !9
  %8859 = sub nsw i64 %8857, %8858
  %8860 = add nsw i64 %8859, 1
  store i64 %8860, ptr %36, align 8, !tbaa !9
  %8861 = load i64, ptr %55, align 8, !tbaa !9
  %8862 = load i64, ptr %57, align 8, !tbaa !9
  %8863 = add nsw i64 %8861, %8862
  %8864 = add nsw i64 %8863, 1
  %8865 = load i64, ptr %38, align 8, !tbaa !9
  %8866 = load i64, ptr %36, align 8, !tbaa !9
  %8867 = icmp sge i64 %8865, %8866
  br i1 %8867, label %8868, label %8870

8868:                                             ; preds = %8854
  %8869 = load i64, ptr %38, align 8, !tbaa !9
  br label %8872

8870:                                             ; preds = %8854
  %8871 = load i64, ptr %36, align 8, !tbaa !9
  br label %8872

8872:                                             ; preds = %8870, %8868
  %8873 = phi i64 [ %8869, %8868 ], [ %8871, %8870 ]
  %8874 = load i64, ptr %69, align 8, !tbaa !9
  %8875 = mul nsw i64 %8873, %8874
  %8876 = sub nsw i64 %8864, %8875
  store i64 %8876, ptr %65, align 8, !tbaa !9
  %8877 = load i64, ptr %65, align 8, !tbaa !9
  %8878 = load ptr, ptr %19, align 8, !tbaa !5
  %8879 = load i64, ptr %8878, align 8, !tbaa !9
  %8880 = add nsw i64 %8877, %8879
  %8881 = sub nsw i64 %8880, 1
  %8882 = load i64, ptr %69, align 8, !tbaa !9
  %8883 = sdiv i64 %8881, %8882
  store i64 %8883, ptr %67, align 8, !tbaa !9
  %8884 = load i64, ptr %65, align 8, !tbaa !9
  %8885 = load i64, ptr %67, align 8, !tbaa !9
  %8886 = sub nsw i64 %8885, 1
  %8887 = load i64, ptr %69, align 8, !tbaa !9
  %8888 = mul nsw i64 %8886, %8887
  %8889 = sub nsw i64 %8884, %8888
  store i64 %8889, ptr %64, align 8, !tbaa !9
  %8890 = load i64, ptr %80, align 8, !tbaa !9
  %8891 = icmp ne i64 %8890, 0
  br i1 %8891, label %8892, label %8911

8892:                                             ; preds = %8872
  %8893 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %8893, ptr %38, align 8, !tbaa !9
  %8894 = load i64, ptr %55, align 8, !tbaa !9
  %8895 = load ptr, ptr %19, align 8, !tbaa !5
  %8896 = load i64, ptr %8895, align 8, !tbaa !9
  %8897 = shl i64 %8896, 1
  %8898 = sub nsw i64 %8894, %8897
  %8899 = load i64, ptr %57, align 8, !tbaa !9
  %8900 = add nsw i64 %8898, %8899
  %8901 = sub nsw i64 %8900, 1
  store i64 %8901, ptr %36, align 8, !tbaa !9
  %8902 = load i64, ptr %38, align 8, !tbaa !9
  %8903 = load i64, ptr %36, align 8, !tbaa !9
  %8904 = icmp sle i64 %8902, %8903
  br i1 %8904, label %8905, label %8907

8905:                                             ; preds = %8892
  %8906 = load i64, ptr %38, align 8, !tbaa !9
  br label %8909

8907:                                             ; preds = %8892
  %8908 = load i64, ptr %36, align 8, !tbaa !9
  br label %8909

8909:                                             ; preds = %8907, %8905
  %8910 = phi i64 [ %8906, %8905 ], [ %8908, %8907 ]
  store i64 %8910, ptr %73, align 8, !tbaa !9
  br label %8913

8911:                                             ; preds = %8872
  %8912 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %8912, ptr %73, align 8, !tbaa !9
  br label %8913

8913:                                             ; preds = %8911, %8909
  %8914 = load i64, ptr %73, align 8, !tbaa !9
  %8915 = load ptr, ptr %19, align 8, !tbaa !5
  %8916 = load i64, ptr %8915, align 8, !tbaa !9
  %8917 = add nsw i64 %8914, %8916
  %8918 = sub nsw i64 %8917, 1
  %8919 = load i64, ptr %69, align 8, !tbaa !9
  %8920 = sdiv i64 %8918, %8919
  store i64 %8920, ptr %76, align 8, !tbaa !9
  %8921 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %8921, ptr %38, align 8, !tbaa !9
  %8922 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %8922, ptr %36, align 8, !tbaa !9
  %8923 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %8923, ptr %56, align 8, !tbaa !9
  br label %8924

8924:                                             ; preds = %9055, %8913
  %8925 = load i64, ptr %36, align 8, !tbaa !9
  %8926 = icmp slt i64 %8925, 0
  br i1 %8926, label %8927, label %8932

8927:                                             ; preds = %8924
  %8928 = load i64, ptr %56, align 8, !tbaa !9
  %8929 = load i64, ptr %38, align 8, !tbaa !9
  %8930 = icmp sge i64 %8928, %8929
  %8931 = zext i1 %8930 to i32
  br label %8937

8932:                                             ; preds = %8924
  %8933 = load i64, ptr %56, align 8, !tbaa !9
  %8934 = load i64, ptr %38, align 8, !tbaa !9
  %8935 = icmp sle i64 %8933, %8934
  %8936 = zext i1 %8935 to i32
  br label %8937

8937:                                             ; preds = %8932, %8927
  %8938 = phi i32 [ %8931, %8927 ], [ %8936, %8932 ]
  %8939 = icmp ne i32 %8938, 0
  br i1 %8939, label %8940, label %9059

8940:                                             ; preds = %8937
  %8941 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %8941, ptr %37, align 8, !tbaa !9
  %8942 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %8942, ptr %40, align 8, !tbaa !9
  %8943 = load i64, ptr %69, align 8, !tbaa !9
  %8944 = load i64, ptr %56, align 8, !tbaa !9
  %8945 = sub nsw i64 %8944, 1
  %8946 = load i64, ptr %30, align 8, !tbaa !9
  %8947 = mul nsw i64 %8945, %8946
  %8948 = add nsw i64 %8943, %8947
  store i64 %8948, ptr %41, align 8, !tbaa !9
  %8949 = load ptr, ptr %27, align 8, !tbaa !5
  %8950 = load i64, ptr %40, align 8, !tbaa !9
  %8951 = getelementptr inbounds %struct.complex, ptr %8949, i64 %8950
  %8952 = getelementptr inbounds %struct.complex, ptr %8951, i32 0, i32 0
  %8953 = load float, ptr %8952, align 4, !tbaa !11
  %8954 = load ptr, ptr %21, align 8, !tbaa !5
  %8955 = load i64, ptr %41, align 8, !tbaa !9
  %8956 = getelementptr inbounds %struct.complex, ptr %8954, i64 %8955
  %8957 = getelementptr inbounds %struct.complex, ptr %8956, i32 0, i32 0
  %8958 = load float, ptr %8957, align 4, !tbaa !11
  %8959 = load ptr, ptr %27, align 8, !tbaa !5
  %8960 = load i64, ptr %40, align 8, !tbaa !9
  %8961 = getelementptr inbounds %struct.complex, ptr %8959, i64 %8960
  %8962 = getelementptr inbounds %struct.complex, ptr %8961, i32 0, i32 1
  %8963 = load float, ptr %8962, align 4, !tbaa !15
  %8964 = load ptr, ptr %21, align 8, !tbaa !5
  %8965 = load i64, ptr %41, align 8, !tbaa !9
  %8966 = getelementptr inbounds %struct.complex, ptr %8964, i64 %8965
  %8967 = getelementptr inbounds %struct.complex, ptr %8966, i32 0, i32 1
  %8968 = load float, ptr %8967, align 4, !tbaa !15
  %8969 = fmul float %8963, %8968
  %8970 = fneg float %8969
  %8971 = call float @llvm.fmuladd.f32(float %8953, float %8958, float %8970)
  %8972 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %8971, ptr %8972, align 4, !tbaa !11
  %8973 = load ptr, ptr %27, align 8, !tbaa !5
  %8974 = load i64, ptr %40, align 8, !tbaa !9
  %8975 = getelementptr inbounds %struct.complex, ptr %8973, i64 %8974
  %8976 = getelementptr inbounds %struct.complex, ptr %8975, i32 0, i32 0
  %8977 = load float, ptr %8976, align 4, !tbaa !11
  %8978 = load ptr, ptr %21, align 8, !tbaa !5
  %8979 = load i64, ptr %41, align 8, !tbaa !9
  %8980 = getelementptr inbounds %struct.complex, ptr %8978, i64 %8979
  %8981 = getelementptr inbounds %struct.complex, ptr %8980, i32 0, i32 1
  %8982 = load float, ptr %8981, align 4, !tbaa !15
  %8983 = load ptr, ptr %27, align 8, !tbaa !5
  %8984 = load i64, ptr %40, align 8, !tbaa !9
  %8985 = getelementptr inbounds %struct.complex, ptr %8983, i64 %8984
  %8986 = getelementptr inbounds %struct.complex, ptr %8985, i32 0, i32 1
  %8987 = load float, ptr %8986, align 4, !tbaa !15
  %8988 = load ptr, ptr %21, align 8, !tbaa !5
  %8989 = load i64, ptr %41, align 8, !tbaa !9
  %8990 = getelementptr inbounds %struct.complex, ptr %8988, i64 %8989
  %8991 = getelementptr inbounds %struct.complex, ptr %8990, i32 0, i32 0
  %8992 = load float, ptr %8991, align 4, !tbaa !11
  %8993 = fmul float %8987, %8992
  %8994 = call float @llvm.fmuladd.f32(float %8977, float %8982, float %8993)
  %8995 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %8994, ptr %8995, align 4, !tbaa !15
  %8996 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %8997 = load float, ptr %8996, align 4, !tbaa !11
  %8998 = load ptr, ptr %27, align 8, !tbaa !5
  %8999 = load i64, ptr %37, align 8, !tbaa !9
  %9000 = getelementptr inbounds %struct.complex, ptr %8998, i64 %8999
  %9001 = getelementptr inbounds %struct.complex, ptr %9000, i32 0, i32 0
  store float %8997, ptr %9001, align 4, !tbaa !11
  %9002 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %9003 = load float, ptr %9002, align 4, !tbaa !15
  %9004 = load ptr, ptr %27, align 8, !tbaa !5
  %9005 = load i64, ptr %37, align 8, !tbaa !9
  %9006 = getelementptr inbounds %struct.complex, ptr %9004, i64 %9005
  %9007 = getelementptr inbounds %struct.complex, ptr %9006, i32 0, i32 1
  store float %9003, ptr %9007, align 4, !tbaa !15
  %9008 = load i64, ptr %69, align 8, !tbaa !9
  %9009 = load i64, ptr %56, align 8, !tbaa !9
  %9010 = sub nsw i64 %9009, 1
  %9011 = load i64, ptr %30, align 8, !tbaa !9
  %9012 = mul nsw i64 %9010, %9011
  %9013 = add nsw i64 %9008, %9012
  store i64 %9013, ptr %37, align 8, !tbaa !9
  %9014 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %9014, ptr %40, align 8, !tbaa !9
  %9015 = load i64, ptr %69, align 8, !tbaa !9
  %9016 = load i64, ptr %56, align 8, !tbaa !9
  %9017 = sub nsw i64 %9016, 1
  %9018 = load i64, ptr %30, align 8, !tbaa !9
  %9019 = mul nsw i64 %9017, %9018
  %9020 = add nsw i64 %9015, %9019
  store i64 %9020, ptr %41, align 8, !tbaa !9
  %9021 = load ptr, ptr %28, align 8, !tbaa !5
  %9022 = load i64, ptr %40, align 8, !tbaa !9
  %9023 = getelementptr inbounds float, ptr %9021, i64 %9022
  %9024 = load float, ptr %9023, align 4, !tbaa !14
  %9025 = load ptr, ptr %21, align 8, !tbaa !5
  %9026 = load i64, ptr %41, align 8, !tbaa !9
  %9027 = getelementptr inbounds %struct.complex, ptr %9025, i64 %9026
  %9028 = getelementptr inbounds %struct.complex, ptr %9027, i32 0, i32 0
  %9029 = load float, ptr %9028, align 4, !tbaa !11
  %9030 = fmul float %9024, %9029
  %9031 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %9030, ptr %9031, align 4, !tbaa !11
  %9032 = load ptr, ptr %28, align 8, !tbaa !5
  %9033 = load i64, ptr %40, align 8, !tbaa !9
  %9034 = getelementptr inbounds float, ptr %9032, i64 %9033
  %9035 = load float, ptr %9034, align 4, !tbaa !14
  %9036 = load ptr, ptr %21, align 8, !tbaa !5
  %9037 = load i64, ptr %41, align 8, !tbaa !9
  %9038 = getelementptr inbounds %struct.complex, ptr %9036, i64 %9037
  %9039 = getelementptr inbounds %struct.complex, ptr %9038, i32 0, i32 1
  %9040 = load float, ptr %9039, align 4, !tbaa !15
  %9041 = fmul float %9035, %9040
  %9042 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %9041, ptr %9042, align 4, !tbaa !15
  %9043 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %9044 = load float, ptr %9043, align 4, !tbaa !11
  %9045 = load ptr, ptr %21, align 8, !tbaa !5
  %9046 = load i64, ptr %37, align 8, !tbaa !9
  %9047 = getelementptr inbounds %struct.complex, ptr %9045, i64 %9046
  %9048 = getelementptr inbounds %struct.complex, ptr %9047, i32 0, i32 0
  store float %9044, ptr %9048, align 4, !tbaa !11
  %9049 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %9050 = load float, ptr %9049, align 4, !tbaa !15
  %9051 = load ptr, ptr %21, align 8, !tbaa !5
  %9052 = load i64, ptr %37, align 8, !tbaa !9
  %9053 = getelementptr inbounds %struct.complex, ptr %9051, i64 %9052
  %9054 = getelementptr inbounds %struct.complex, ptr %9053, i32 0, i32 1
  store float %9050, ptr %9054, align 4, !tbaa !15
  br label %9055

9055:                                             ; preds = %8940
  %9056 = load i64, ptr %36, align 8, !tbaa !9
  %9057 = load i64, ptr %56, align 8, !tbaa !9
  %9058 = add nsw i64 %9057, %9056
  store i64 %9058, ptr %56, align 8, !tbaa !9
  br label %8924, !llvm.loop !93

9059:                                             ; preds = %8937
  %9060 = load i64, ptr %76, align 8, !tbaa !9
  %9061 = icmp sgt i64 %9060, 0
  br i1 %9061, label %9062, label %9077

9062:                                             ; preds = %9059
  %9063 = load ptr, ptr %21, align 8, !tbaa !5
  %9064 = load i64, ptr %69, align 8, !tbaa !9
  %9065 = load i64, ptr %64, align 8, !tbaa !9
  %9066 = load i64, ptr %30, align 8, !tbaa !9
  %9067 = mul nsw i64 %9065, %9066
  %9068 = add nsw i64 %9064, %9067
  %9069 = getelementptr inbounds %struct.complex, ptr %9063, i64 %9068
  %9070 = load ptr, ptr %27, align 8, !tbaa !5
  %9071 = load i64, ptr %64, align 8, !tbaa !9
  %9072 = getelementptr inbounds %struct.complex, ptr %9070, i64 %9071
  %9073 = load ptr, ptr %28, align 8, !tbaa !5
  %9074 = load i64, ptr %64, align 8, !tbaa !9
  %9075 = getelementptr inbounds float, ptr %9073, i64 %9074
  %9076 = call i32 @clargv_(ptr noundef %76, ptr noundef %9069, ptr noundef %77, ptr noundef %9072, ptr noundef %69, ptr noundef %9075, ptr noundef %69)
  br label %9077

9077:                                             ; preds = %9062, %9059
  %9078 = load i64, ptr %67, align 8, !tbaa !9
  %9079 = icmp sgt i64 %9078, 0
  br i1 %9079, label %9080, label %9148

9080:                                             ; preds = %9077
  %9081 = load ptr, ptr %19, align 8, !tbaa !5
  %9082 = load i64, ptr %9081, align 8, !tbaa !9
  %9083 = sub nsw i64 %9082, 1
  store i64 %9083, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %9084

9084:                                             ; preds = %9113, %9080
  %9085 = load i64, ptr %58, align 8, !tbaa !9
  %9086 = load i64, ptr %36, align 8, !tbaa !9
  %9087 = icmp sle i64 %9085, %9086
  br i1 %9087, label %9088, label %9116

9088:                                             ; preds = %9084
  %9089 = load ptr, ptr %21, align 8, !tbaa !5
  %9090 = load i64, ptr %58, align 8, !tbaa !9
  %9091 = add nsw i64 %9090, 1
  %9092 = load i64, ptr %64, align 8, !tbaa !9
  %9093 = load i64, ptr %30, align 8, !tbaa !9
  %9094 = mul nsw i64 %9092, %9093
  %9095 = add nsw i64 %9091, %9094
  %9096 = getelementptr inbounds %struct.complex, ptr %9089, i64 %9095
  %9097 = load ptr, ptr %21, align 8, !tbaa !5
  %9098 = load i64, ptr %58, align 8, !tbaa !9
  %9099 = add nsw i64 %9098, 2
  %9100 = load i64, ptr %64, align 8, !tbaa !9
  %9101 = sub nsw i64 %9100, 1
  %9102 = load i64, ptr %30, align 8, !tbaa !9
  %9103 = mul nsw i64 %9101, %9102
  %9104 = add nsw i64 %9099, %9103
  %9105 = getelementptr inbounds %struct.complex, ptr %9097, i64 %9104
  %9106 = load ptr, ptr %28, align 8, !tbaa !5
  %9107 = load i64, ptr %64, align 8, !tbaa !9
  %9108 = getelementptr inbounds float, ptr %9106, i64 %9107
  %9109 = load ptr, ptr %27, align 8, !tbaa !5
  %9110 = load i64, ptr %64, align 8, !tbaa !9
  %9111 = getelementptr inbounds %struct.complex, ptr %9109, i64 %9110
  %9112 = call i32 @clartv_(ptr noundef %67, ptr noundef %9096, ptr noundef %77, ptr noundef %9105, ptr noundef %77, ptr noundef %9108, ptr noundef %9111, ptr noundef %69)
  br label %9113

9113:                                             ; preds = %9088
  %9114 = load i64, ptr %58, align 8, !tbaa !9
  %9115 = add nsw i64 %9114, 1
  store i64 %9115, ptr %58, align 8, !tbaa !9
  br label %9084, !llvm.loop !94

9116:                                             ; preds = %9084
  %9117 = load ptr, ptr %21, align 8, !tbaa !5
  %9118 = load i64, ptr %64, align 8, !tbaa !9
  %9119 = load i64, ptr %30, align 8, !tbaa !9
  %9120 = mul nsw i64 %9118, %9119
  %9121 = add nsw i64 %9120, 1
  %9122 = getelementptr inbounds %struct.complex, ptr %9117, i64 %9121
  %9123 = load ptr, ptr %21, align 8, !tbaa !5
  %9124 = load i64, ptr %64, align 8, !tbaa !9
  %9125 = sub nsw i64 %9124, 1
  %9126 = load i64, ptr %30, align 8, !tbaa !9
  %9127 = mul nsw i64 %9125, %9126
  %9128 = add nsw i64 %9127, 1
  %9129 = getelementptr inbounds %struct.complex, ptr %9123, i64 %9128
  %9130 = load ptr, ptr %21, align 8, !tbaa !5
  %9131 = load i64, ptr %64, align 8, !tbaa !9
  %9132 = sub nsw i64 %9131, 1
  %9133 = load i64, ptr %30, align 8, !tbaa !9
  %9134 = mul nsw i64 %9132, %9133
  %9135 = add nsw i64 %9134, 2
  %9136 = getelementptr inbounds %struct.complex, ptr %9130, i64 %9135
  %9137 = load ptr, ptr %28, align 8, !tbaa !5
  %9138 = load i64, ptr %64, align 8, !tbaa !9
  %9139 = getelementptr inbounds float, ptr %9137, i64 %9138
  %9140 = load ptr, ptr %27, align 8, !tbaa !5
  %9141 = load i64, ptr %64, align 8, !tbaa !9
  %9142 = getelementptr inbounds %struct.complex, ptr %9140, i64 %9141
  %9143 = call i32 @clar2v_(ptr noundef %67, ptr noundef %9122, ptr noundef %9129, ptr noundef %9136, ptr noundef %77, ptr noundef %9139, ptr noundef %9142, ptr noundef %69)
  %9144 = load ptr, ptr %27, align 8, !tbaa !5
  %9145 = load i64, ptr %64, align 8, !tbaa !9
  %9146 = getelementptr inbounds %struct.complex, ptr %9144, i64 %9145
  %9147 = call i32 @clacgv_(ptr noundef %67, ptr noundef %9146, ptr noundef %69)
  br label %9148

9148:                                             ; preds = %9116, %9077
  %9149 = load ptr, ptr %20, align 8, !tbaa !5
  %9150 = load i64, ptr %9149, align 8, !tbaa !9
  %9151 = load i64, ptr %57, align 8, !tbaa !9
  %9152 = sub nsw i64 %9150, %9151
  %9153 = add nsw i64 %9152, 1
  store i64 %9153, ptr %36, align 8, !tbaa !9
  %9154 = load ptr, ptr %19, align 8, !tbaa !5
  %9155 = load i64, ptr %9154, align 8, !tbaa !9
  %9156 = sub nsw i64 %9155, 1
  store i64 %9156, ptr %58, align 8, !tbaa !9
  br label %9157

9157:                                             ; preds = %9212, %9148
  %9158 = load i64, ptr %58, align 8, !tbaa !9
  %9159 = load i64, ptr %36, align 8, !tbaa !9
  %9160 = icmp sge i64 %9158, %9159
  br i1 %9160, label %9161, label %9215

9161:                                             ; preds = %9157
  %9162 = load i64, ptr %65, align 8, !tbaa !9
  %9163 = load i64, ptr %58, align 8, !tbaa !9
  %9164 = add nsw i64 %9162, %9163
  %9165 = sub nsw i64 %9164, 1
  %9166 = load i64, ptr %69, align 8, !tbaa !9
  %9167 = sdiv i64 %9165, %9166
  store i64 %9167, ptr %76, align 8, !tbaa !9
  %9168 = load i64, ptr %65, align 8, !tbaa !9
  %9169 = load i64, ptr %76, align 8, !tbaa !9
  %9170 = sub nsw i64 %9169, 1
  %9171 = load i64, ptr %69, align 8, !tbaa !9
  %9172 = mul nsw i64 %9170, %9171
  %9173 = sub nsw i64 %9168, %9172
  store i64 %9173, ptr %72, align 8, !tbaa !9
  %9174 = load i64, ptr %76, align 8, !tbaa !9
  %9175 = icmp sgt i64 %9174, 0
  br i1 %9175, label %9176, label %9211

9176:                                             ; preds = %9161
  %9177 = load ptr, ptr %21, align 8, !tbaa !5
  %9178 = load i64, ptr %69, align 8, !tbaa !9
  %9179 = load i64, ptr %58, align 8, !tbaa !9
  %9180 = sub nsw i64 %9178, %9179
  %9181 = add nsw i64 %9180, 1
  %9182 = load i64, ptr %72, align 8, !tbaa !9
  %9183 = load i64, ptr %69, align 8, !tbaa !9
  %9184 = sub nsw i64 %9182, %9183
  %9185 = load i64, ptr %58, align 8, !tbaa !9
  %9186 = add nsw i64 %9184, %9185
  %9187 = load i64, ptr %30, align 8, !tbaa !9
  %9188 = mul nsw i64 %9186, %9187
  %9189 = add nsw i64 %9181, %9188
  %9190 = getelementptr inbounds %struct.complex, ptr %9177, i64 %9189
  %9191 = load ptr, ptr %21, align 8, !tbaa !5
  %9192 = load i64, ptr %69, align 8, !tbaa !9
  %9193 = load i64, ptr %58, align 8, !tbaa !9
  %9194 = sub nsw i64 %9192, %9193
  %9195 = load i64, ptr %72, align 8, !tbaa !9
  %9196 = load i64, ptr %69, align 8, !tbaa !9
  %9197 = sub nsw i64 %9195, %9196
  %9198 = load i64, ptr %58, align 8, !tbaa !9
  %9199 = add nsw i64 %9197, %9198
  %9200 = load i64, ptr %30, align 8, !tbaa !9
  %9201 = mul nsw i64 %9199, %9200
  %9202 = add nsw i64 %9194, %9201
  %9203 = getelementptr inbounds %struct.complex, ptr %9191, i64 %9202
  %9204 = load ptr, ptr %28, align 8, !tbaa !5
  %9205 = load i64, ptr %72, align 8, !tbaa !9
  %9206 = getelementptr inbounds float, ptr %9204, i64 %9205
  %9207 = load ptr, ptr %27, align 8, !tbaa !5
  %9208 = load i64, ptr %72, align 8, !tbaa !9
  %9209 = getelementptr inbounds %struct.complex, ptr %9207, i64 %9208
  %9210 = call i32 @clartv_(ptr noundef %76, ptr noundef %9190, ptr noundef %77, ptr noundef %9203, ptr noundef %77, ptr noundef %9206, ptr noundef %9209, ptr noundef %69)
  br label %9211

9211:                                             ; preds = %9176, %9161
  br label %9212

9212:                                             ; preds = %9211
  %9213 = load i64, ptr %58, align 8, !tbaa !9
  %9214 = add nsw i64 %9213, -1
  store i64 %9214, ptr %58, align 8, !tbaa !9
  br label %9157, !llvm.loop !95

9215:                                             ; preds = %9157
  %9216 = load i64, ptr %79, align 8, !tbaa !9
  %9217 = icmp ne i64 %9216, 0
  br i1 %9217, label %9218, label %9264

9218:                                             ; preds = %9215
  %9219 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %9219, ptr %36, align 8, !tbaa !9
  %9220 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %9220, ptr %38, align 8, !tbaa !9
  %9221 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %9221, ptr %56, align 8, !tbaa !9
  br label %9222

9222:                                             ; preds = %9259, %9218
  %9223 = load i64, ptr %38, align 8, !tbaa !9
  %9224 = icmp slt i64 %9223, 0
  br i1 %9224, label %9225, label %9230

9225:                                             ; preds = %9222
  %9226 = load i64, ptr %56, align 8, !tbaa !9
  %9227 = load i64, ptr %36, align 8, !tbaa !9
  %9228 = icmp sge i64 %9226, %9227
  %9229 = zext i1 %9228 to i32
  br label %9235

9230:                                             ; preds = %9222
  %9231 = load i64, ptr %56, align 8, !tbaa !9
  %9232 = load i64, ptr %36, align 8, !tbaa !9
  %9233 = icmp sle i64 %9231, %9232
  %9234 = zext i1 %9233 to i32
  br label %9235

9235:                                             ; preds = %9230, %9225
  %9236 = phi i32 [ %9229, %9225 ], [ %9234, %9230 ]
  %9237 = icmp ne i32 %9236, 0
  br i1 %9237, label %9238, label %9263

9238:                                             ; preds = %9235
  %9239 = load ptr, ptr %27, align 8, !tbaa !5
  %9240 = load i64, ptr %56, align 8, !tbaa !9
  %9241 = getelementptr inbounds %struct.complex, ptr %9239, i64 %9240
  call void @r_cnjg(ptr noundef %45, ptr noundef %9241)
  %9242 = load ptr, ptr %25, align 8, !tbaa !5
  %9243 = load i64, ptr %56, align 8, !tbaa !9
  %9244 = load i64, ptr %34, align 8, !tbaa !9
  %9245 = mul nsw i64 %9243, %9244
  %9246 = add nsw i64 %9245, 1
  %9247 = getelementptr inbounds %struct.complex, ptr %9242, i64 %9246
  %9248 = load ptr, ptr %25, align 8, !tbaa !5
  %9249 = load i64, ptr %56, align 8, !tbaa !9
  %9250 = sub nsw i64 %9249, 1
  %9251 = load i64, ptr %34, align 8, !tbaa !9
  %9252 = mul nsw i64 %9250, %9251
  %9253 = add nsw i64 %9252, 1
  %9254 = getelementptr inbounds %struct.complex, ptr %9248, i64 %9253
  %9255 = load ptr, ptr %28, align 8, !tbaa !5
  %9256 = load i64, ptr %56, align 8, !tbaa !9
  %9257 = getelementptr inbounds float, ptr %9255, i64 %9256
  %9258 = call i32 @crot_(ptr noundef %68, ptr noundef %9247, ptr noundef @c__1, ptr noundef %9254, ptr noundef @c__1, ptr noundef %9257, ptr noundef %45)
  br label %9259

9259:                                             ; preds = %9238
  %9260 = load i64, ptr %38, align 8, !tbaa !9
  %9261 = load i64, ptr %56, align 8, !tbaa !9
  %9262 = add nsw i64 %9261, %9260
  store i64 %9262, ptr %56, align 8, !tbaa !9
  br label %9222, !llvm.loop !96

9263:                                             ; preds = %9235
  br label %9264

9264:                                             ; preds = %9263, %9215
  br label %9265

9265:                                             ; preds = %9264
  %9266 = load i64, ptr %57, align 8, !tbaa !9
  %9267 = add nsw i64 %9266, 1
  store i64 %9267, ptr %57, align 8, !tbaa !9
  br label %8526, !llvm.loop !97

9268:                                             ; preds = %8526
  %9269 = load i64, ptr %80, align 8, !tbaa !9
  %9270 = icmp ne i64 %9269, 0
  br i1 %9270, label %9271, label %9342

9271:                                             ; preds = %9268
  %9272 = load i64, ptr %63, align 8, !tbaa !9
  %9273 = icmp sgt i64 %9272, 0
  br i1 %9273, label %9274, label %9341

9274:                                             ; preds = %9271
  %9275 = load i64, ptr %75, align 8, !tbaa !9
  %9276 = icmp sgt i64 %9275, 0
  br i1 %9276, label %9277, label %9341

9277:                                             ; preds = %9274
  %9278 = load i64, ptr %59, align 8, !tbaa !9
  %9279 = load ptr, ptr %20, align 8, !tbaa !5
  %9280 = load i64, ptr %9279, align 8, !tbaa !9
  %9281 = sub nsw i64 %9278, %9280
  %9282 = load i64, ptr %55, align 8, !tbaa !9
  %9283 = add nsw i64 %9281, %9282
  %9284 = load i64, ptr %75, align 8, !tbaa !9
  %9285 = add nsw i64 %9283, %9284
  store i64 %9285, ptr %39, align 8, !tbaa !9
  %9286 = load i64, ptr %75, align 8, !tbaa !9
  %9287 = add nsw i64 %9286, 1
  %9288 = load i64, ptr %55, align 8, !tbaa !9
  %9289 = load i64, ptr %32, align 8, !tbaa !9
  %9290 = mul nsw i64 %9288, %9289
  %9291 = add nsw i64 %9287, %9290
  store i64 %9291, ptr %38, align 8, !tbaa !9
  %9292 = load ptr, ptr %23, align 8, !tbaa !5
  %9293 = load i64, ptr %38, align 8, !tbaa !9
  %9294 = getelementptr inbounds %struct.complex, ptr %9292, i64 %9293
  %9295 = getelementptr inbounds %struct.complex, ptr %9294, i32 0, i32 0
  %9296 = load float, ptr %9295, align 4, !tbaa !11
  %9297 = fneg float %9296
  %9298 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %9297, ptr %9298, align 4, !tbaa !11
  %9299 = load ptr, ptr %23, align 8, !tbaa !5
  %9300 = load i64, ptr %38, align 8, !tbaa !9
  %9301 = getelementptr inbounds %struct.complex, ptr %9299, i64 %9300
  %9302 = getelementptr inbounds %struct.complex, ptr %9301, i32 0, i32 1
  %9303 = load float, ptr %9302, align 4, !tbaa !15
  %9304 = fneg float %9303
  %9305 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %9304, ptr %9305, align 4, !tbaa !15
  %9306 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %9307 = load float, ptr %9306, align 4, !tbaa !11
  %9308 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %9309 = load float, ptr %9308, align 4, !tbaa !11
  %9310 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %9311 = load float, ptr %9310, align 4, !tbaa !15
  %9312 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %9313 = load float, ptr %9312, align 4, !tbaa !15
  %9314 = fmul float %9311, %9313
  %9315 = fneg float %9314
  %9316 = call float @llvm.fmuladd.f32(float %9307, float %9309, float %9315)
  %9317 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %9316, ptr %9317, align 4, !tbaa !11
  %9318 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %9319 = load float, ptr %9318, align 4, !tbaa !11
  %9320 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 1
  %9321 = load float, ptr %9320, align 4, !tbaa !15
  %9322 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %9323 = load float, ptr %9322, align 4, !tbaa !15
  %9324 = getelementptr inbounds %struct.complex, ptr %71, i32 0, i32 0
  %9325 = load float, ptr %9324, align 4, !tbaa !11
  %9326 = fmul float %9323, %9325
  %9327 = call float @llvm.fmuladd.f32(float %9319, float %9321, float %9326)
  %9328 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %9327, ptr %9328, align 4, !tbaa !15
  %9329 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %9330 = load float, ptr %9329, align 4, !tbaa !11
  %9331 = load ptr, ptr %27, align 8, !tbaa !5
  %9332 = load i64, ptr %39, align 8, !tbaa !9
  %9333 = getelementptr inbounds %struct.complex, ptr %9331, i64 %9332
  %9334 = getelementptr inbounds %struct.complex, ptr %9333, i32 0, i32 0
  store float %9330, ptr %9334, align 4, !tbaa !11
  %9335 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %9336 = load float, ptr %9335, align 4, !tbaa !15
  %9337 = load ptr, ptr %27, align 8, !tbaa !5
  %9338 = load i64, ptr %39, align 8, !tbaa !9
  %9339 = getelementptr inbounds %struct.complex, ptr %9337, i64 %9338
  %9340 = getelementptr inbounds %struct.complex, ptr %9339, i32 0, i32 1
  store float %9336, ptr %9340, align 4, !tbaa !15
  br label %9341

9341:                                             ; preds = %9277, %9274, %9271
  br label %9342

9342:                                             ; preds = %9341, %9268
  %9343 = load ptr, ptr %20, align 8, !tbaa !5
  %9344 = load i64, ptr %9343, align 8, !tbaa !9
  store i64 %9344, ptr %57, align 8, !tbaa !9
  br label %9345

9345:                                             ; preds = %9772, %9342
  %9346 = load i64, ptr %57, align 8, !tbaa !9
  %9347 = icmp sge i64 %9346, 1
  br i1 %9347, label %9348, label %9775

9348:                                             ; preds = %9345
  %9349 = load i64, ptr %80, align 8, !tbaa !9
  %9350 = icmp ne i64 %9349, 0
  br i1 %9350, label %9351, label %9373

9351:                                             ; preds = %9348
  store i64 2, ptr %39, align 8, !tbaa !9
  %9352 = load i64, ptr %57, align 8, !tbaa !9
  %9353 = load i64, ptr %61, align 8, !tbaa !9
  %9354 = add nsw i64 %9352, %9353
  %9355 = load i64, ptr %59, align 8, !tbaa !9
  %9356 = sub nsw i64 %9354, %9355
  store i64 %9356, ptr %38, align 8, !tbaa !9
  %9357 = load i64, ptr %55, align 8, !tbaa !9
  %9358 = load i64, ptr %57, align 8, !tbaa !9
  %9359 = add nsw i64 %9357, %9358
  %9360 = add nsw i64 %9359, 1
  %9361 = load i64, ptr %39, align 8, !tbaa !9
  %9362 = load i64, ptr %38, align 8, !tbaa !9
  %9363 = icmp sge i64 %9361, %9362
  br i1 %9363, label %9364, label %9366

9364:                                             ; preds = %9351
  %9365 = load i64, ptr %39, align 8, !tbaa !9
  br label %9368

9366:                                             ; preds = %9351
  %9367 = load i64, ptr %38, align 8, !tbaa !9
  br label %9368

9368:                                             ; preds = %9366, %9364
  %9369 = phi i64 [ %9365, %9364 ], [ %9367, %9366 ]
  %9370 = load i64, ptr %69, align 8, !tbaa !9
  %9371 = mul nsw i64 %9369, %9370
  %9372 = sub nsw i64 %9360, %9371
  store i64 %9372, ptr %65, align 8, !tbaa !9
  br label %9395

9373:                                             ; preds = %9348
  store i64 1, ptr %39, align 8, !tbaa !9
  %9374 = load i64, ptr %57, align 8, !tbaa !9
  %9375 = load i64, ptr %61, align 8, !tbaa !9
  %9376 = add nsw i64 %9374, %9375
  %9377 = load i64, ptr %59, align 8, !tbaa !9
  %9378 = sub nsw i64 %9376, %9377
  store i64 %9378, ptr %38, align 8, !tbaa !9
  %9379 = load i64, ptr %55, align 8, !tbaa !9
  %9380 = load i64, ptr %57, align 8, !tbaa !9
  %9381 = add nsw i64 %9379, %9380
  %9382 = add nsw i64 %9381, 1
  %9383 = load i64, ptr %39, align 8, !tbaa !9
  %9384 = load i64, ptr %38, align 8, !tbaa !9
  %9385 = icmp sge i64 %9383, %9384
  br i1 %9385, label %9386, label %9388

9386:                                             ; preds = %9373
  %9387 = load i64, ptr %39, align 8, !tbaa !9
  br label %9390

9388:                                             ; preds = %9373
  %9389 = load i64, ptr %38, align 8, !tbaa !9
  br label %9390

9390:                                             ; preds = %9388, %9386
  %9391 = phi i64 [ %9387, %9386 ], [ %9389, %9388 ]
  %9392 = load i64, ptr %69, align 8, !tbaa !9
  %9393 = mul nsw i64 %9391, %9392
  %9394 = sub nsw i64 %9382, %9393
  store i64 %9394, ptr %65, align 8, !tbaa !9
  br label %9395

9395:                                             ; preds = %9390, %9368
  %9396 = load ptr, ptr %20, align 8, !tbaa !5
  %9397 = load i64, ptr %9396, align 8, !tbaa !9
  %9398 = load i64, ptr %57, align 8, !tbaa !9
  %9399 = sub nsw i64 %9397, %9398
  store i64 %9399, ptr %58, align 8, !tbaa !9
  br label %9400

9400:                                             ; preds = %9471, %9395
  %9401 = load i64, ptr %58, align 8, !tbaa !9
  %9402 = icmp sge i64 %9401, 1
  br i1 %9402, label %9403, label %9474

9403:                                             ; preds = %9400
  %9404 = load i64, ptr %65, align 8, !tbaa !9
  %9405 = load ptr, ptr %19, align 8, !tbaa !5
  %9406 = load i64, ptr %9405, align 8, !tbaa !9
  %9407 = add nsw i64 %9404, %9406
  %9408 = load i64, ptr %58, align 8, !tbaa !9
  %9409 = add nsw i64 %9407, %9408
  %9410 = sub nsw i64 %9409, 1
  %9411 = load i64, ptr %69, align 8, !tbaa !9
  %9412 = sdiv i64 %9410, %9411
  store i64 %9412, ptr %76, align 8, !tbaa !9
  %9413 = load i64, ptr %65, align 8, !tbaa !9
  %9414 = load i64, ptr %76, align 8, !tbaa !9
  %9415 = sub nsw i64 %9414, 1
  %9416 = load i64, ptr %69, align 8, !tbaa !9
  %9417 = mul nsw i64 %9415, %9416
  %9418 = sub nsw i64 %9413, %9417
  store i64 %9418, ptr %72, align 8, !tbaa !9
  %9419 = load i64, ptr %76, align 8, !tbaa !9
  %9420 = icmp sgt i64 %9419, 0
  br i1 %9420, label %9421, label %9470

9421:                                             ; preds = %9403
  %9422 = load ptr, ptr %21, align 8, !tbaa !5
  %9423 = load i64, ptr %69, align 8, !tbaa !9
  %9424 = load i64, ptr %58, align 8, !tbaa !9
  %9425 = sub nsw i64 %9423, %9424
  %9426 = add nsw i64 %9425, 1
  %9427 = load i64, ptr %72, align 8, !tbaa !9
  %9428 = load i64, ptr %58, align 8, !tbaa !9
  %9429 = add nsw i64 %9427, %9428
  %9430 = sub nsw i64 %9429, 1
  %9431 = load i64, ptr %30, align 8, !tbaa !9
  %9432 = mul nsw i64 %9430, %9431
  %9433 = add nsw i64 %9426, %9432
  %9434 = getelementptr inbounds %struct.complex, ptr %9422, i64 %9433
  %9435 = load ptr, ptr %21, align 8, !tbaa !5
  %9436 = load i64, ptr %69, align 8, !tbaa !9
  %9437 = load i64, ptr %58, align 8, !tbaa !9
  %9438 = sub nsw i64 %9436, %9437
  %9439 = load i64, ptr %72, align 8, !tbaa !9
  %9440 = load i64, ptr %58, align 8, !tbaa !9
  %9441 = add nsw i64 %9439, %9440
  %9442 = sub nsw i64 %9441, 1
  %9443 = load i64, ptr %30, align 8, !tbaa !9
  %9444 = mul nsw i64 %9442, %9443
  %9445 = add nsw i64 %9438, %9444
  %9446 = getelementptr inbounds %struct.complex, ptr %9435, i64 %9445
  %9447 = load ptr, ptr %28, align 8, !tbaa !5
  %9448 = load i64, ptr %59, align 8, !tbaa !9
  %9449 = load ptr, ptr %20, align 8, !tbaa !5
  %9450 = load i64, ptr %9449, align 8, !tbaa !9
  %9451 = sub nsw i64 %9448, %9450
  %9452 = load i64, ptr %72, align 8, !tbaa !9
  %9453 = add nsw i64 %9451, %9452
  %9454 = load ptr, ptr %19, align 8, !tbaa !5
  %9455 = load i64, ptr %9454, align 8, !tbaa !9
  %9456 = add nsw i64 %9453, %9455
  %9457 = getelementptr inbounds float, ptr %9447, i64 %9456
  %9458 = load ptr, ptr %27, align 8, !tbaa !5
  %9459 = load i64, ptr %59, align 8, !tbaa !9
  %9460 = load ptr, ptr %20, align 8, !tbaa !5
  %9461 = load i64, ptr %9460, align 8, !tbaa !9
  %9462 = sub nsw i64 %9459, %9461
  %9463 = load i64, ptr %72, align 8, !tbaa !9
  %9464 = add nsw i64 %9462, %9463
  %9465 = load ptr, ptr %19, align 8, !tbaa !5
  %9466 = load i64, ptr %9465, align 8, !tbaa !9
  %9467 = add nsw i64 %9464, %9466
  %9468 = getelementptr inbounds %struct.complex, ptr %9458, i64 %9467
  %9469 = call i32 @clartv_(ptr noundef %76, ptr noundef %9434, ptr noundef %77, ptr noundef %9446, ptr noundef %77, ptr noundef %9457, ptr noundef %9468, ptr noundef %69)
  br label %9470

9470:                                             ; preds = %9421, %9403
  br label %9471

9471:                                             ; preds = %9470
  %9472 = load i64, ptr %58, align 8, !tbaa !9
  %9473 = add nsw i64 %9472, -1
  store i64 %9473, ptr %58, align 8, !tbaa !9
  br label %9400, !llvm.loop !98

9474:                                             ; preds = %9400
  %9475 = load i64, ptr %65, align 8, !tbaa !9
  %9476 = load ptr, ptr %19, align 8, !tbaa !5
  %9477 = load i64, ptr %9476, align 8, !tbaa !9
  %9478 = add nsw i64 %9475, %9477
  %9479 = sub nsw i64 %9478, 1
  %9480 = load i64, ptr %69, align 8, !tbaa !9
  %9481 = sdiv i64 %9479, %9480
  store i64 %9481, ptr %67, align 8, !tbaa !9
  %9482 = load i64, ptr %65, align 8, !tbaa !9
  %9483 = load i64, ptr %67, align 8, !tbaa !9
  %9484 = sub nsw i64 %9483, 1
  %9485 = load i64, ptr %69, align 8, !tbaa !9
  %9486 = mul nsw i64 %9484, %9485
  %9487 = sub nsw i64 %9482, %9486
  store i64 %9487, ptr %64, align 8, !tbaa !9
  %9488 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %9488, ptr %39, align 8, !tbaa !9
  %9489 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %9489, ptr %38, align 8, !tbaa !9
  %9490 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %9490, ptr %56, align 8, !tbaa !9
  br label %9491

9491:                                             ; preds = %9561, %9474
  %9492 = load i64, ptr %38, align 8, !tbaa !9
  %9493 = icmp slt i64 %9492, 0
  br i1 %9493, label %9494, label %9499

9494:                                             ; preds = %9491
  %9495 = load i64, ptr %56, align 8, !tbaa !9
  %9496 = load i64, ptr %39, align 8, !tbaa !9
  %9497 = icmp sge i64 %9495, %9496
  %9498 = zext i1 %9497 to i32
  br label %9504

9499:                                             ; preds = %9491
  %9500 = load i64, ptr %56, align 8, !tbaa !9
  %9501 = load i64, ptr %39, align 8, !tbaa !9
  %9502 = icmp sle i64 %9500, %9501
  %9503 = zext i1 %9502 to i32
  br label %9504

9504:                                             ; preds = %9499, %9494
  %9505 = phi i32 [ %9498, %9494 ], [ %9503, %9499 ]
  %9506 = icmp ne i32 %9505, 0
  br i1 %9506, label %9507, label %9565

9507:                                             ; preds = %9504
  %9508 = load i64, ptr %59, align 8, !tbaa !9
  %9509 = load ptr, ptr %20, align 8, !tbaa !5
  %9510 = load i64, ptr %9509, align 8, !tbaa !9
  %9511 = sub nsw i64 %9508, %9510
  %9512 = load i64, ptr %56, align 8, !tbaa !9
  %9513 = add nsw i64 %9511, %9512
  store i64 %9513, ptr %36, align 8, !tbaa !9
  %9514 = load i64, ptr %59, align 8, !tbaa !9
  %9515 = load ptr, ptr %20, align 8, !tbaa !5
  %9516 = load i64, ptr %9515, align 8, !tbaa !9
  %9517 = sub nsw i64 %9514, %9516
  %9518 = load i64, ptr %56, align 8, !tbaa !9
  %9519 = add nsw i64 %9517, %9518
  %9520 = load ptr, ptr %19, align 8, !tbaa !5
  %9521 = load i64, ptr %9520, align 8, !tbaa !9
  %9522 = add nsw i64 %9519, %9521
  store i64 %9522, ptr %37, align 8, !tbaa !9
  %9523 = load ptr, ptr %27, align 8, !tbaa !5
  %9524 = load i64, ptr %37, align 8, !tbaa !9
  %9525 = getelementptr inbounds %struct.complex, ptr %9523, i64 %9524
  %9526 = getelementptr inbounds %struct.complex, ptr %9525, i32 0, i32 0
  %9527 = load float, ptr %9526, align 4, !tbaa !11
  %9528 = load ptr, ptr %27, align 8, !tbaa !5
  %9529 = load i64, ptr %36, align 8, !tbaa !9
  %9530 = getelementptr inbounds %struct.complex, ptr %9528, i64 %9529
  %9531 = getelementptr inbounds %struct.complex, ptr %9530, i32 0, i32 0
  store float %9527, ptr %9531, align 4, !tbaa !11
  %9532 = load ptr, ptr %27, align 8, !tbaa !5
  %9533 = load i64, ptr %37, align 8, !tbaa !9
  %9534 = getelementptr inbounds %struct.complex, ptr %9532, i64 %9533
  %9535 = getelementptr inbounds %struct.complex, ptr %9534, i32 0, i32 1
  %9536 = load float, ptr %9535, align 4, !tbaa !15
  %9537 = load ptr, ptr %27, align 8, !tbaa !5
  %9538 = load i64, ptr %36, align 8, !tbaa !9
  %9539 = getelementptr inbounds %struct.complex, ptr %9537, i64 %9538
  %9540 = getelementptr inbounds %struct.complex, ptr %9539, i32 0, i32 1
  store float %9536, ptr %9540, align 4, !tbaa !15
  %9541 = load ptr, ptr %28, align 8, !tbaa !5
  %9542 = load i64, ptr %59, align 8, !tbaa !9
  %9543 = load ptr, ptr %20, align 8, !tbaa !5
  %9544 = load i64, ptr %9543, align 8, !tbaa !9
  %9545 = sub nsw i64 %9542, %9544
  %9546 = load i64, ptr %56, align 8, !tbaa !9
  %9547 = add nsw i64 %9545, %9546
  %9548 = load ptr, ptr %19, align 8, !tbaa !5
  %9549 = load i64, ptr %9548, align 8, !tbaa !9
  %9550 = add nsw i64 %9547, %9549
  %9551 = getelementptr inbounds float, ptr %9541, i64 %9550
  %9552 = load float, ptr %9551, align 4, !tbaa !14
  %9553 = load ptr, ptr %28, align 8, !tbaa !5
  %9554 = load i64, ptr %59, align 8, !tbaa !9
  %9555 = load ptr, ptr %20, align 8, !tbaa !5
  %9556 = load i64, ptr %9555, align 8, !tbaa !9
  %9557 = sub nsw i64 %9554, %9556
  %9558 = load i64, ptr %56, align 8, !tbaa !9
  %9559 = add nsw i64 %9557, %9558
  %9560 = getelementptr inbounds float, ptr %9553, i64 %9559
  store float %9552, ptr %9560, align 4, !tbaa !14
  br label %9561

9561:                                             ; preds = %9507
  %9562 = load i64, ptr %38, align 8, !tbaa !9
  %9563 = load i64, ptr %56, align 8, !tbaa !9
  %9564 = add nsw i64 %9563, %9562
  store i64 %9564, ptr %56, align 8, !tbaa !9
  br label %9491, !llvm.loop !99

9565:                                             ; preds = %9504
  %9566 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %9566, ptr %38, align 8, !tbaa !9
  %9567 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %9567, ptr %39, align 8, !tbaa !9
  %9568 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %9568, ptr %56, align 8, !tbaa !9
  br label %9569

9569:                                             ; preds = %9715, %9565
  %9570 = load i64, ptr %39, align 8, !tbaa !9
  %9571 = icmp slt i64 %9570, 0
  br i1 %9571, label %9572, label %9577

9572:                                             ; preds = %9569
  %9573 = load i64, ptr %56, align 8, !tbaa !9
  %9574 = load i64, ptr %38, align 8, !tbaa !9
  %9575 = icmp sge i64 %9573, %9574
  %9576 = zext i1 %9575 to i32
  br label %9582

9577:                                             ; preds = %9569
  %9578 = load i64, ptr %56, align 8, !tbaa !9
  %9579 = load i64, ptr %38, align 8, !tbaa !9
  %9580 = icmp sle i64 %9578, %9579
  %9581 = zext i1 %9580 to i32
  br label %9582

9582:                                             ; preds = %9577, %9572
  %9583 = phi i32 [ %9576, %9572 ], [ %9581, %9577 ]
  %9584 = icmp ne i32 %9583, 0
  br i1 %9584, label %9585, label %9719

9585:                                             ; preds = %9582
  %9586 = load i64, ptr %59, align 8, !tbaa !9
  %9587 = load ptr, ptr %20, align 8, !tbaa !5
  %9588 = load i64, ptr %9587, align 8, !tbaa !9
  %9589 = sub nsw i64 %9586, %9588
  %9590 = load i64, ptr %56, align 8, !tbaa !9
  %9591 = add nsw i64 %9589, %9590
  store i64 %9591, ptr %36, align 8, !tbaa !9
  %9592 = load i64, ptr %59, align 8, !tbaa !9
  %9593 = load ptr, ptr %20, align 8, !tbaa !5
  %9594 = load i64, ptr %9593, align 8, !tbaa !9
  %9595 = sub nsw i64 %9592, %9594
  %9596 = load i64, ptr %56, align 8, !tbaa !9
  %9597 = add nsw i64 %9595, %9596
  store i64 %9597, ptr %37, align 8, !tbaa !9
  %9598 = load i64, ptr %69, align 8, !tbaa !9
  %9599 = load i64, ptr %56, align 8, !tbaa !9
  %9600 = sub nsw i64 %9599, 1
  %9601 = load i64, ptr %30, align 8, !tbaa !9
  %9602 = mul nsw i64 %9600, %9601
  %9603 = add nsw i64 %9598, %9602
  store i64 %9603, ptr %40, align 8, !tbaa !9
  %9604 = load ptr, ptr %27, align 8, !tbaa !5
  %9605 = load i64, ptr %37, align 8, !tbaa !9
  %9606 = getelementptr inbounds %struct.complex, ptr %9604, i64 %9605
  %9607 = getelementptr inbounds %struct.complex, ptr %9606, i32 0, i32 0
  %9608 = load float, ptr %9607, align 4, !tbaa !11
  %9609 = load ptr, ptr %21, align 8, !tbaa !5
  %9610 = load i64, ptr %40, align 8, !tbaa !9
  %9611 = getelementptr inbounds %struct.complex, ptr %9609, i64 %9610
  %9612 = getelementptr inbounds %struct.complex, ptr %9611, i32 0, i32 0
  %9613 = load float, ptr %9612, align 4, !tbaa !11
  %9614 = load ptr, ptr %27, align 8, !tbaa !5
  %9615 = load i64, ptr %37, align 8, !tbaa !9
  %9616 = getelementptr inbounds %struct.complex, ptr %9614, i64 %9615
  %9617 = getelementptr inbounds %struct.complex, ptr %9616, i32 0, i32 1
  %9618 = load float, ptr %9617, align 4, !tbaa !15
  %9619 = load ptr, ptr %21, align 8, !tbaa !5
  %9620 = load i64, ptr %40, align 8, !tbaa !9
  %9621 = getelementptr inbounds %struct.complex, ptr %9619, i64 %9620
  %9622 = getelementptr inbounds %struct.complex, ptr %9621, i32 0, i32 1
  %9623 = load float, ptr %9622, align 4, !tbaa !15
  %9624 = fmul float %9618, %9623
  %9625 = fneg float %9624
  %9626 = call float @llvm.fmuladd.f32(float %9608, float %9613, float %9625)
  %9627 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %9626, ptr %9627, align 4, !tbaa !11
  %9628 = load ptr, ptr %27, align 8, !tbaa !5
  %9629 = load i64, ptr %37, align 8, !tbaa !9
  %9630 = getelementptr inbounds %struct.complex, ptr %9628, i64 %9629
  %9631 = getelementptr inbounds %struct.complex, ptr %9630, i32 0, i32 0
  %9632 = load float, ptr %9631, align 4, !tbaa !11
  %9633 = load ptr, ptr %21, align 8, !tbaa !5
  %9634 = load i64, ptr %40, align 8, !tbaa !9
  %9635 = getelementptr inbounds %struct.complex, ptr %9633, i64 %9634
  %9636 = getelementptr inbounds %struct.complex, ptr %9635, i32 0, i32 1
  %9637 = load float, ptr %9636, align 4, !tbaa !15
  %9638 = load ptr, ptr %27, align 8, !tbaa !5
  %9639 = load i64, ptr %37, align 8, !tbaa !9
  %9640 = getelementptr inbounds %struct.complex, ptr %9638, i64 %9639
  %9641 = getelementptr inbounds %struct.complex, ptr %9640, i32 0, i32 1
  %9642 = load float, ptr %9641, align 4, !tbaa !15
  %9643 = load ptr, ptr %21, align 8, !tbaa !5
  %9644 = load i64, ptr %40, align 8, !tbaa !9
  %9645 = getelementptr inbounds %struct.complex, ptr %9643, i64 %9644
  %9646 = getelementptr inbounds %struct.complex, ptr %9645, i32 0, i32 0
  %9647 = load float, ptr %9646, align 4, !tbaa !11
  %9648 = fmul float %9642, %9647
  %9649 = call float @llvm.fmuladd.f32(float %9632, float %9637, float %9648)
  %9650 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %9649, ptr %9650, align 4, !tbaa !15
  %9651 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %9652 = load float, ptr %9651, align 4, !tbaa !11
  %9653 = load ptr, ptr %27, align 8, !tbaa !5
  %9654 = load i64, ptr %36, align 8, !tbaa !9
  %9655 = getelementptr inbounds %struct.complex, ptr %9653, i64 %9654
  %9656 = getelementptr inbounds %struct.complex, ptr %9655, i32 0, i32 0
  store float %9652, ptr %9656, align 4, !tbaa !11
  %9657 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %9658 = load float, ptr %9657, align 4, !tbaa !15
  %9659 = load ptr, ptr %27, align 8, !tbaa !5
  %9660 = load i64, ptr %36, align 8, !tbaa !9
  %9661 = getelementptr inbounds %struct.complex, ptr %9659, i64 %9660
  %9662 = getelementptr inbounds %struct.complex, ptr %9661, i32 0, i32 1
  store float %9658, ptr %9662, align 4, !tbaa !15
  %9663 = load i64, ptr %69, align 8, !tbaa !9
  %9664 = load i64, ptr %56, align 8, !tbaa !9
  %9665 = sub nsw i64 %9664, 1
  %9666 = load i64, ptr %30, align 8, !tbaa !9
  %9667 = mul nsw i64 %9665, %9666
  %9668 = add nsw i64 %9663, %9667
  store i64 %9668, ptr %36, align 8, !tbaa !9
  %9669 = load i64, ptr %59, align 8, !tbaa !9
  %9670 = load ptr, ptr %20, align 8, !tbaa !5
  %9671 = load i64, ptr %9670, align 8, !tbaa !9
  %9672 = sub nsw i64 %9669, %9671
  %9673 = load i64, ptr %56, align 8, !tbaa !9
  %9674 = add nsw i64 %9672, %9673
  store i64 %9674, ptr %37, align 8, !tbaa !9
  %9675 = load i64, ptr %69, align 8, !tbaa !9
  %9676 = load i64, ptr %56, align 8, !tbaa !9
  %9677 = sub nsw i64 %9676, 1
  %9678 = load i64, ptr %30, align 8, !tbaa !9
  %9679 = mul nsw i64 %9677, %9678
  %9680 = add nsw i64 %9675, %9679
  store i64 %9680, ptr %40, align 8, !tbaa !9
  %9681 = load ptr, ptr %28, align 8, !tbaa !5
  %9682 = load i64, ptr %37, align 8, !tbaa !9
  %9683 = getelementptr inbounds float, ptr %9681, i64 %9682
  %9684 = load float, ptr %9683, align 4, !tbaa !14
  %9685 = load ptr, ptr %21, align 8, !tbaa !5
  %9686 = load i64, ptr %40, align 8, !tbaa !9
  %9687 = getelementptr inbounds %struct.complex, ptr %9685, i64 %9686
  %9688 = getelementptr inbounds %struct.complex, ptr %9687, i32 0, i32 0
  %9689 = load float, ptr %9688, align 4, !tbaa !11
  %9690 = fmul float %9684, %9689
  %9691 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %9690, ptr %9691, align 4, !tbaa !11
  %9692 = load ptr, ptr %28, align 8, !tbaa !5
  %9693 = load i64, ptr %37, align 8, !tbaa !9
  %9694 = getelementptr inbounds float, ptr %9692, i64 %9693
  %9695 = load float, ptr %9694, align 4, !tbaa !14
  %9696 = load ptr, ptr %21, align 8, !tbaa !5
  %9697 = load i64, ptr %40, align 8, !tbaa !9
  %9698 = getelementptr inbounds %struct.complex, ptr %9696, i64 %9697
  %9699 = getelementptr inbounds %struct.complex, ptr %9698, i32 0, i32 1
  %9700 = load float, ptr %9699, align 4, !tbaa !15
  %9701 = fmul float %9695, %9700
  %9702 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %9701, ptr %9702, align 4, !tbaa !15
  %9703 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %9704 = load float, ptr %9703, align 4, !tbaa !11
  %9705 = load ptr, ptr %21, align 8, !tbaa !5
  %9706 = load i64, ptr %36, align 8, !tbaa !9
  %9707 = getelementptr inbounds %struct.complex, ptr %9705, i64 %9706
  %9708 = getelementptr inbounds %struct.complex, ptr %9707, i32 0, i32 0
  store float %9704, ptr %9708, align 4, !tbaa !11
  %9709 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %9710 = load float, ptr %9709, align 4, !tbaa !15
  %9711 = load ptr, ptr %21, align 8, !tbaa !5
  %9712 = load i64, ptr %36, align 8, !tbaa !9
  %9713 = getelementptr inbounds %struct.complex, ptr %9711, i64 %9712
  %9714 = getelementptr inbounds %struct.complex, ptr %9713, i32 0, i32 1
  store float %9710, ptr %9714, align 4, !tbaa !15
  br label %9715

9715:                                             ; preds = %9585
  %9716 = load i64, ptr %39, align 8, !tbaa !9
  %9717 = load i64, ptr %56, align 8, !tbaa !9
  %9718 = add nsw i64 %9717, %9716
  store i64 %9718, ptr %56, align 8, !tbaa !9
  br label %9569, !llvm.loop !100

9719:                                             ; preds = %9582
  %9720 = load i64, ptr %80, align 8, !tbaa !9
  %9721 = icmp ne i64 %9720, 0
  br i1 %9721, label %9722, label %9771

9722:                                             ; preds = %9719
  %9723 = load i64, ptr %55, align 8, !tbaa !9
  %9724 = load i64, ptr %57, align 8, !tbaa !9
  %9725 = add nsw i64 %9723, %9724
  %9726 = load i64, ptr %69, align 8, !tbaa !9
  %9727 = icmp sgt i64 %9725, %9726
  br i1 %9727, label %9728, label %9770

9728:                                             ; preds = %9722
  %9729 = load i64, ptr %57, align 8, !tbaa !9
  %9730 = load i64, ptr %75, align 8, !tbaa !9
  %9731 = icmp sle i64 %9729, %9730
  br i1 %9731, label %9732, label %9770

9732:                                             ; preds = %9728
  %9733 = load i64, ptr %59, align 8, !tbaa !9
  %9734 = load ptr, ptr %20, align 8, !tbaa !5
  %9735 = load i64, ptr %9734, align 8, !tbaa !9
  %9736 = sub nsw i64 %9733, %9735
  %9737 = load i64, ptr %55, align 8, !tbaa !9
  %9738 = add nsw i64 %9736, %9737
  %9739 = load i64, ptr %57, align 8, !tbaa !9
  %9740 = add nsw i64 %9738, %9739
  %9741 = load ptr, ptr %19, align 8, !tbaa !5
  %9742 = load i64, ptr %9741, align 8, !tbaa !9
  %9743 = sub nsw i64 %9740, %9742
  store i64 %9743, ptr %39, align 8, !tbaa !9
  %9744 = load i64, ptr %59, align 8, !tbaa !9
  %9745 = load ptr, ptr %20, align 8, !tbaa !5
  %9746 = load i64, ptr %9745, align 8, !tbaa !9
  %9747 = sub nsw i64 %9744, %9746
  %9748 = load i64, ptr %55, align 8, !tbaa !9
  %9749 = add nsw i64 %9747, %9748
  %9750 = load i64, ptr %57, align 8, !tbaa !9
  %9751 = add nsw i64 %9749, %9750
  store i64 %9751, ptr %38, align 8, !tbaa !9
  %9752 = load ptr, ptr %27, align 8, !tbaa !5
  %9753 = load i64, ptr %38, align 8, !tbaa !9
  %9754 = getelementptr inbounds %struct.complex, ptr %9752, i64 %9753
  %9755 = getelementptr inbounds %struct.complex, ptr %9754, i32 0, i32 0
  %9756 = load float, ptr %9755, align 4, !tbaa !11
  %9757 = load ptr, ptr %27, align 8, !tbaa !5
  %9758 = load i64, ptr %39, align 8, !tbaa !9
  %9759 = getelementptr inbounds %struct.complex, ptr %9757, i64 %9758
  %9760 = getelementptr inbounds %struct.complex, ptr %9759, i32 0, i32 0
  store float %9756, ptr %9760, align 4, !tbaa !11
  %9761 = load ptr, ptr %27, align 8, !tbaa !5
  %9762 = load i64, ptr %38, align 8, !tbaa !9
  %9763 = getelementptr inbounds %struct.complex, ptr %9761, i64 %9762
  %9764 = getelementptr inbounds %struct.complex, ptr %9763, i32 0, i32 1
  %9765 = load float, ptr %9764, align 4, !tbaa !15
  %9766 = load ptr, ptr %27, align 8, !tbaa !5
  %9767 = load i64, ptr %39, align 8, !tbaa !9
  %9768 = getelementptr inbounds %struct.complex, ptr %9766, i64 %9767
  %9769 = getelementptr inbounds %struct.complex, ptr %9768, i32 0, i32 1
  store float %9765, ptr %9769, align 4, !tbaa !15
  br label %9770

9770:                                             ; preds = %9732, %9728, %9722
  br label %9771

9771:                                             ; preds = %9770, %9719
  br label %9772

9772:                                             ; preds = %9771
  %9773 = load i64, ptr %57, align 8, !tbaa !9
  %9774 = add nsw i64 %9773, -1
  store i64 %9774, ptr %57, align 8, !tbaa !9
  br label %9345, !llvm.loop !101

9775:                                             ; preds = %9345
  %9776 = load ptr, ptr %20, align 8, !tbaa !5
  %9777 = load i64, ptr %9776, align 8, !tbaa !9
  store i64 %9777, ptr %57, align 8, !tbaa !9
  br label %9778

9778:                                             ; preds = %10072, %9775
  %9779 = load i64, ptr %57, align 8, !tbaa !9
  %9780 = icmp sge i64 %9779, 1
  br i1 %9780, label %9781, label %10075

9781:                                             ; preds = %9778
  store i64 1, ptr %39, align 8, !tbaa !9
  %9782 = load i64, ptr %57, align 8, !tbaa !9
  %9783 = load i64, ptr %61, align 8, !tbaa !9
  %9784 = add nsw i64 %9782, %9783
  %9785 = load i64, ptr %59, align 8, !tbaa !9
  %9786 = sub nsw i64 %9784, %9785
  store i64 %9786, ptr %38, align 8, !tbaa !9
  %9787 = load i64, ptr %55, align 8, !tbaa !9
  %9788 = load i64, ptr %57, align 8, !tbaa !9
  %9789 = add nsw i64 %9787, %9788
  %9790 = add nsw i64 %9789, 1
  %9791 = load i64, ptr %39, align 8, !tbaa !9
  %9792 = load i64, ptr %38, align 8, !tbaa !9
  %9793 = icmp sge i64 %9791, %9792
  br i1 %9793, label %9794, label %9796

9794:                                             ; preds = %9781
  %9795 = load i64, ptr %39, align 8, !tbaa !9
  br label %9798

9796:                                             ; preds = %9781
  %9797 = load i64, ptr %38, align 8, !tbaa !9
  br label %9798

9798:                                             ; preds = %9796, %9794
  %9799 = phi i64 [ %9795, %9794 ], [ %9797, %9796 ]
  %9800 = load i64, ptr %69, align 8, !tbaa !9
  %9801 = mul nsw i64 %9799, %9800
  %9802 = sub nsw i64 %9790, %9801
  store i64 %9802, ptr %65, align 8, !tbaa !9
  %9803 = load i64, ptr %65, align 8, !tbaa !9
  %9804 = load ptr, ptr %19, align 8, !tbaa !5
  %9805 = load i64, ptr %9804, align 8, !tbaa !9
  %9806 = add nsw i64 %9803, %9805
  %9807 = sub nsw i64 %9806, 1
  %9808 = load i64, ptr %69, align 8, !tbaa !9
  %9809 = sdiv i64 %9807, %9808
  store i64 %9809, ptr %67, align 8, !tbaa !9
  %9810 = load i64, ptr %65, align 8, !tbaa !9
  %9811 = load i64, ptr %67, align 8, !tbaa !9
  %9812 = sub nsw i64 %9811, 1
  %9813 = load i64, ptr %69, align 8, !tbaa !9
  %9814 = mul nsw i64 %9812, %9813
  %9815 = sub nsw i64 %9810, %9814
  store i64 %9815, ptr %64, align 8, !tbaa !9
  %9816 = load i64, ptr %67, align 8, !tbaa !9
  %9817 = icmp sgt i64 %9816, 0
  br i1 %9817, label %9818, label %9935

9818:                                             ; preds = %9798
  %9819 = load ptr, ptr %21, align 8, !tbaa !5
  %9820 = load i64, ptr %69, align 8, !tbaa !9
  %9821 = load i64, ptr %64, align 8, !tbaa !9
  %9822 = load i64, ptr %30, align 8, !tbaa !9
  %9823 = mul nsw i64 %9821, %9822
  %9824 = add nsw i64 %9820, %9823
  %9825 = getelementptr inbounds %struct.complex, ptr %9819, i64 %9824
  %9826 = load ptr, ptr %27, align 8, !tbaa !5
  %9827 = load i64, ptr %59, align 8, !tbaa !9
  %9828 = load ptr, ptr %20, align 8, !tbaa !5
  %9829 = load i64, ptr %9828, align 8, !tbaa !9
  %9830 = sub nsw i64 %9827, %9829
  %9831 = load i64, ptr %64, align 8, !tbaa !9
  %9832 = add nsw i64 %9830, %9831
  %9833 = getelementptr inbounds %struct.complex, ptr %9826, i64 %9832
  %9834 = load ptr, ptr %28, align 8, !tbaa !5
  %9835 = load i64, ptr %59, align 8, !tbaa !9
  %9836 = load ptr, ptr %20, align 8, !tbaa !5
  %9837 = load i64, ptr %9836, align 8, !tbaa !9
  %9838 = sub nsw i64 %9835, %9837
  %9839 = load i64, ptr %64, align 8, !tbaa !9
  %9840 = add nsw i64 %9838, %9839
  %9841 = getelementptr inbounds float, ptr %9834, i64 %9840
  %9842 = call i32 @clargv_(ptr noundef %67, ptr noundef %9825, ptr noundef %77, ptr noundef %9833, ptr noundef %69, ptr noundef %9841, ptr noundef %69)
  %9843 = load ptr, ptr %19, align 8, !tbaa !5
  %9844 = load i64, ptr %9843, align 8, !tbaa !9
  %9845 = sub nsw i64 %9844, 1
  store i64 %9845, ptr %39, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %9846

9846:                                             ; preds = %9885, %9818
  %9847 = load i64, ptr %58, align 8, !tbaa !9
  %9848 = load i64, ptr %39, align 8, !tbaa !9
  %9849 = icmp sle i64 %9847, %9848
  br i1 %9849, label %9850, label %9888

9850:                                             ; preds = %9846
  %9851 = load ptr, ptr %21, align 8, !tbaa !5
  %9852 = load i64, ptr %58, align 8, !tbaa !9
  %9853 = add nsw i64 %9852, 1
  %9854 = load i64, ptr %64, align 8, !tbaa !9
  %9855 = load i64, ptr %30, align 8, !tbaa !9
  %9856 = mul nsw i64 %9854, %9855
  %9857 = add nsw i64 %9853, %9856
  %9858 = getelementptr inbounds %struct.complex, ptr %9851, i64 %9857
  %9859 = load ptr, ptr %21, align 8, !tbaa !5
  %9860 = load i64, ptr %58, align 8, !tbaa !9
  %9861 = add nsw i64 %9860, 2
  %9862 = load i64, ptr %64, align 8, !tbaa !9
  %9863 = sub nsw i64 %9862, 1
  %9864 = load i64, ptr %30, align 8, !tbaa !9
  %9865 = mul nsw i64 %9863, %9864
  %9866 = add nsw i64 %9861, %9865
  %9867 = getelementptr inbounds %struct.complex, ptr %9859, i64 %9866
  %9868 = load ptr, ptr %28, align 8, !tbaa !5
  %9869 = load i64, ptr %59, align 8, !tbaa !9
  %9870 = load ptr, ptr %20, align 8, !tbaa !5
  %9871 = load i64, ptr %9870, align 8, !tbaa !9
  %9872 = sub nsw i64 %9869, %9871
  %9873 = load i64, ptr %64, align 8, !tbaa !9
  %9874 = add nsw i64 %9872, %9873
  %9875 = getelementptr inbounds float, ptr %9868, i64 %9874
  %9876 = load ptr, ptr %27, align 8, !tbaa !5
  %9877 = load i64, ptr %59, align 8, !tbaa !9
  %9878 = load ptr, ptr %20, align 8, !tbaa !5
  %9879 = load i64, ptr %9878, align 8, !tbaa !9
  %9880 = sub nsw i64 %9877, %9879
  %9881 = load i64, ptr %64, align 8, !tbaa !9
  %9882 = add nsw i64 %9880, %9881
  %9883 = getelementptr inbounds %struct.complex, ptr %9876, i64 %9882
  %9884 = call i32 @clartv_(ptr noundef %67, ptr noundef %9858, ptr noundef %77, ptr noundef %9867, ptr noundef %77, ptr noundef %9875, ptr noundef %9883, ptr noundef %69)
  br label %9885

9885:                                             ; preds = %9850
  %9886 = load i64, ptr %58, align 8, !tbaa !9
  %9887 = add nsw i64 %9886, 1
  store i64 %9887, ptr %58, align 8, !tbaa !9
  br label %9846, !llvm.loop !102

9888:                                             ; preds = %9846
  %9889 = load ptr, ptr %21, align 8, !tbaa !5
  %9890 = load i64, ptr %64, align 8, !tbaa !9
  %9891 = load i64, ptr %30, align 8, !tbaa !9
  %9892 = mul nsw i64 %9890, %9891
  %9893 = add nsw i64 %9892, 1
  %9894 = getelementptr inbounds %struct.complex, ptr %9889, i64 %9893
  %9895 = load ptr, ptr %21, align 8, !tbaa !5
  %9896 = load i64, ptr %64, align 8, !tbaa !9
  %9897 = sub nsw i64 %9896, 1
  %9898 = load i64, ptr %30, align 8, !tbaa !9
  %9899 = mul nsw i64 %9897, %9898
  %9900 = add nsw i64 %9899, 1
  %9901 = getelementptr inbounds %struct.complex, ptr %9895, i64 %9900
  %9902 = load ptr, ptr %21, align 8, !tbaa !5
  %9903 = load i64, ptr %64, align 8, !tbaa !9
  %9904 = sub nsw i64 %9903, 1
  %9905 = load i64, ptr %30, align 8, !tbaa !9
  %9906 = mul nsw i64 %9904, %9905
  %9907 = add nsw i64 %9906, 2
  %9908 = getelementptr inbounds %struct.complex, ptr %9902, i64 %9907
  %9909 = load ptr, ptr %28, align 8, !tbaa !5
  %9910 = load i64, ptr %59, align 8, !tbaa !9
  %9911 = load ptr, ptr %20, align 8, !tbaa !5
  %9912 = load i64, ptr %9911, align 8, !tbaa !9
  %9913 = sub nsw i64 %9910, %9912
  %9914 = load i64, ptr %64, align 8, !tbaa !9
  %9915 = add nsw i64 %9913, %9914
  %9916 = getelementptr inbounds float, ptr %9909, i64 %9915
  %9917 = load ptr, ptr %27, align 8, !tbaa !5
  %9918 = load i64, ptr %59, align 8, !tbaa !9
  %9919 = load ptr, ptr %20, align 8, !tbaa !5
  %9920 = load i64, ptr %9919, align 8, !tbaa !9
  %9921 = sub nsw i64 %9918, %9920
  %9922 = load i64, ptr %64, align 8, !tbaa !9
  %9923 = add nsw i64 %9921, %9922
  %9924 = getelementptr inbounds %struct.complex, ptr %9917, i64 %9923
  %9925 = call i32 @clar2v_(ptr noundef %67, ptr noundef %9894, ptr noundef %9901, ptr noundef %9908, ptr noundef %77, ptr noundef %9916, ptr noundef %9924, ptr noundef %69)
  %9926 = load ptr, ptr %27, align 8, !tbaa !5
  %9927 = load i64, ptr %59, align 8, !tbaa !9
  %9928 = load ptr, ptr %20, align 8, !tbaa !5
  %9929 = load i64, ptr %9928, align 8, !tbaa !9
  %9930 = sub nsw i64 %9927, %9929
  %9931 = load i64, ptr %64, align 8, !tbaa !9
  %9932 = add nsw i64 %9930, %9931
  %9933 = getelementptr inbounds %struct.complex, ptr %9926, i64 %9932
  %9934 = call i32 @clacgv_(ptr noundef %67, ptr noundef %9933, ptr noundef %69)
  br label %9935

9935:                                             ; preds = %9888, %9798
  %9936 = load ptr, ptr %20, align 8, !tbaa !5
  %9937 = load i64, ptr %9936, align 8, !tbaa !9
  %9938 = load i64, ptr %57, align 8, !tbaa !9
  %9939 = sub nsw i64 %9937, %9938
  %9940 = add nsw i64 %9939, 1
  store i64 %9940, ptr %39, align 8, !tbaa !9
  %9941 = load ptr, ptr %19, align 8, !tbaa !5
  %9942 = load i64, ptr %9941, align 8, !tbaa !9
  %9943 = sub nsw i64 %9942, 1
  store i64 %9943, ptr %58, align 8, !tbaa !9
  br label %9944

9944:                                             ; preds = %10009, %9935
  %9945 = load i64, ptr %58, align 8, !tbaa !9
  %9946 = load i64, ptr %39, align 8, !tbaa !9
  %9947 = icmp sge i64 %9945, %9946
  br i1 %9947, label %9948, label %10012

9948:                                             ; preds = %9944
  %9949 = load i64, ptr %65, align 8, !tbaa !9
  %9950 = load i64, ptr %58, align 8, !tbaa !9
  %9951 = add nsw i64 %9949, %9950
  %9952 = sub nsw i64 %9951, 1
  %9953 = load i64, ptr %69, align 8, !tbaa !9
  %9954 = sdiv i64 %9952, %9953
  store i64 %9954, ptr %76, align 8, !tbaa !9
  %9955 = load i64, ptr %65, align 8, !tbaa !9
  %9956 = load i64, ptr %76, align 8, !tbaa !9
  %9957 = sub nsw i64 %9956, 1
  %9958 = load i64, ptr %69, align 8, !tbaa !9
  %9959 = mul nsw i64 %9957, %9958
  %9960 = sub nsw i64 %9955, %9959
  store i64 %9960, ptr %72, align 8, !tbaa !9
  %9961 = load i64, ptr %76, align 8, !tbaa !9
  %9962 = icmp sgt i64 %9961, 0
  br i1 %9962, label %9963, label %10008

9963:                                             ; preds = %9948
  %9964 = load ptr, ptr %21, align 8, !tbaa !5
  %9965 = load i64, ptr %69, align 8, !tbaa !9
  %9966 = load i64, ptr %58, align 8, !tbaa !9
  %9967 = sub nsw i64 %9965, %9966
  %9968 = add nsw i64 %9967, 1
  %9969 = load i64, ptr %72, align 8, !tbaa !9
  %9970 = load i64, ptr %69, align 8, !tbaa !9
  %9971 = sub nsw i64 %9969, %9970
  %9972 = load i64, ptr %58, align 8, !tbaa !9
  %9973 = add nsw i64 %9971, %9972
  %9974 = load i64, ptr %30, align 8, !tbaa !9
  %9975 = mul nsw i64 %9973, %9974
  %9976 = add nsw i64 %9968, %9975
  %9977 = getelementptr inbounds %struct.complex, ptr %9964, i64 %9976
  %9978 = load ptr, ptr %21, align 8, !tbaa !5
  %9979 = load i64, ptr %69, align 8, !tbaa !9
  %9980 = load i64, ptr %58, align 8, !tbaa !9
  %9981 = sub nsw i64 %9979, %9980
  %9982 = load i64, ptr %72, align 8, !tbaa !9
  %9983 = load i64, ptr %69, align 8, !tbaa !9
  %9984 = sub nsw i64 %9982, %9983
  %9985 = load i64, ptr %58, align 8, !tbaa !9
  %9986 = add nsw i64 %9984, %9985
  %9987 = load i64, ptr %30, align 8, !tbaa !9
  %9988 = mul nsw i64 %9986, %9987
  %9989 = add nsw i64 %9981, %9988
  %9990 = getelementptr inbounds %struct.complex, ptr %9978, i64 %9989
  %9991 = load ptr, ptr %28, align 8, !tbaa !5
  %9992 = load i64, ptr %59, align 8, !tbaa !9
  %9993 = load ptr, ptr %20, align 8, !tbaa !5
  %9994 = load i64, ptr %9993, align 8, !tbaa !9
  %9995 = sub nsw i64 %9992, %9994
  %9996 = load i64, ptr %72, align 8, !tbaa !9
  %9997 = add nsw i64 %9995, %9996
  %9998 = getelementptr inbounds float, ptr %9991, i64 %9997
  %9999 = load ptr, ptr %27, align 8, !tbaa !5
  %10000 = load i64, ptr %59, align 8, !tbaa !9
  %10001 = load ptr, ptr %20, align 8, !tbaa !5
  %10002 = load i64, ptr %10001, align 8, !tbaa !9
  %10003 = sub nsw i64 %10000, %10002
  %10004 = load i64, ptr %72, align 8, !tbaa !9
  %10005 = add nsw i64 %10003, %10004
  %10006 = getelementptr inbounds %struct.complex, ptr %9999, i64 %10005
  %10007 = call i32 @clartv_(ptr noundef %76, ptr noundef %9977, ptr noundef %77, ptr noundef %9990, ptr noundef %77, ptr noundef %9998, ptr noundef %10006, ptr noundef %69)
  br label %10008

10008:                                            ; preds = %9963, %9948
  br label %10009

10009:                                            ; preds = %10008
  %10010 = load i64, ptr %58, align 8, !tbaa !9
  %10011 = add nsw i64 %10010, -1
  store i64 %10011, ptr %58, align 8, !tbaa !9
  br label %9944, !llvm.loop !103

10012:                                            ; preds = %9944
  %10013 = load i64, ptr %79, align 8, !tbaa !9
  %10014 = icmp ne i64 %10013, 0
  br i1 %10014, label %10015, label %10071

10015:                                            ; preds = %10012
  %10016 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %10016, ptr %39, align 8, !tbaa !9
  %10017 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %10017, ptr %38, align 8, !tbaa !9
  %10018 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %10018, ptr %56, align 8, !tbaa !9
  br label %10019

10019:                                            ; preds = %10066, %10015
  %10020 = load i64, ptr %38, align 8, !tbaa !9
  %10021 = icmp slt i64 %10020, 0
  br i1 %10021, label %10022, label %10027

10022:                                            ; preds = %10019
  %10023 = load i64, ptr %56, align 8, !tbaa !9
  %10024 = load i64, ptr %39, align 8, !tbaa !9
  %10025 = icmp sge i64 %10023, %10024
  %10026 = zext i1 %10025 to i32
  br label %10032

10027:                                            ; preds = %10019
  %10028 = load i64, ptr %56, align 8, !tbaa !9
  %10029 = load i64, ptr %39, align 8, !tbaa !9
  %10030 = icmp sle i64 %10028, %10029
  %10031 = zext i1 %10030 to i32
  br label %10032

10032:                                            ; preds = %10027, %10022
  %10033 = phi i32 [ %10026, %10022 ], [ %10031, %10027 ]
  %10034 = icmp ne i32 %10033, 0
  br i1 %10034, label %10035, label %10070

10035:                                            ; preds = %10032
  %10036 = load ptr, ptr %27, align 8, !tbaa !5
  %10037 = load i64, ptr %59, align 8, !tbaa !9
  %10038 = load ptr, ptr %20, align 8, !tbaa !5
  %10039 = load i64, ptr %10038, align 8, !tbaa !9
  %10040 = sub nsw i64 %10037, %10039
  %10041 = load i64, ptr %56, align 8, !tbaa !9
  %10042 = add nsw i64 %10040, %10041
  %10043 = getelementptr inbounds %struct.complex, ptr %10036, i64 %10042
  call void @r_cnjg(ptr noundef %45, ptr noundef %10043)
  %10044 = load ptr, ptr %25, align 8, !tbaa !5
  %10045 = load i64, ptr %56, align 8, !tbaa !9
  %10046 = load i64, ptr %34, align 8, !tbaa !9
  %10047 = mul nsw i64 %10045, %10046
  %10048 = add nsw i64 %10047, 1
  %10049 = getelementptr inbounds %struct.complex, ptr %10044, i64 %10048
  %10050 = load ptr, ptr %25, align 8, !tbaa !5
  %10051 = load i64, ptr %56, align 8, !tbaa !9
  %10052 = sub nsw i64 %10051, 1
  %10053 = load i64, ptr %34, align 8, !tbaa !9
  %10054 = mul nsw i64 %10052, %10053
  %10055 = add nsw i64 %10054, 1
  %10056 = getelementptr inbounds %struct.complex, ptr %10050, i64 %10055
  %10057 = load ptr, ptr %28, align 8, !tbaa !5
  %10058 = load i64, ptr %59, align 8, !tbaa !9
  %10059 = load ptr, ptr %20, align 8, !tbaa !5
  %10060 = load i64, ptr %10059, align 8, !tbaa !9
  %10061 = sub nsw i64 %10058, %10060
  %10062 = load i64, ptr %56, align 8, !tbaa !9
  %10063 = add nsw i64 %10061, %10062
  %10064 = getelementptr inbounds float, ptr %10057, i64 %10063
  %10065 = call i32 @crot_(ptr noundef %68, ptr noundef %10049, ptr noundef @c__1, ptr noundef %10056, ptr noundef @c__1, ptr noundef %10064, ptr noundef %45)
  br label %10066

10066:                                            ; preds = %10035
  %10067 = load i64, ptr %38, align 8, !tbaa !9
  %10068 = load i64, ptr %56, align 8, !tbaa !9
  %10069 = add nsw i64 %10068, %10067
  store i64 %10069, ptr %56, align 8, !tbaa !9
  br label %10019, !llvm.loop !104

10070:                                            ; preds = %10032
  br label %10071

10071:                                            ; preds = %10070, %10012
  br label %10072

10072:                                            ; preds = %10071
  %10073 = load i64, ptr %57, align 8, !tbaa !9
  %10074 = add nsw i64 %10073, -1
  store i64 %10074, ptr %57, align 8, !tbaa !9
  br label %9778, !llvm.loop !105

10075:                                            ; preds = %9778
  %10076 = load ptr, ptr %20, align 8, !tbaa !5
  %10077 = load i64, ptr %10076, align 8, !tbaa !9
  %10078 = sub nsw i64 %10077, 1
  store i64 %10078, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %10079

10079:                                            ; preds = %10168, %10075
  %10080 = load i64, ptr %57, align 8, !tbaa !9
  %10081 = load i64, ptr %38, align 8, !tbaa !9
  %10082 = icmp sle i64 %10080, %10081
  br i1 %10082, label %10083, label %10171

10083:                                            ; preds = %10079
  store i64 1, ptr %39, align 8, !tbaa !9
  %10084 = load i64, ptr %57, align 8, !tbaa !9
  %10085 = load i64, ptr %61, align 8, !tbaa !9
  %10086 = add nsw i64 %10084, %10085
  %10087 = load i64, ptr %59, align 8, !tbaa !9
  %10088 = sub nsw i64 %10086, %10087
  %10089 = add nsw i64 %10088, 1
  store i64 %10089, ptr %36, align 8, !tbaa !9
  %10090 = load i64, ptr %55, align 8, !tbaa !9
  %10091 = load i64, ptr %57, align 8, !tbaa !9
  %10092 = add nsw i64 %10090, %10091
  %10093 = add nsw i64 %10092, 1
  %10094 = load i64, ptr %39, align 8, !tbaa !9
  %10095 = load i64, ptr %36, align 8, !tbaa !9
  %10096 = icmp sge i64 %10094, %10095
  br i1 %10096, label %10097, label %10099

10097:                                            ; preds = %10083
  %10098 = load i64, ptr %39, align 8, !tbaa !9
  br label %10101

10099:                                            ; preds = %10083
  %10100 = load i64, ptr %36, align 8, !tbaa !9
  br label %10101

10101:                                            ; preds = %10099, %10097
  %10102 = phi i64 [ %10098, %10097 ], [ %10100, %10099 ]
  %10103 = load i64, ptr %69, align 8, !tbaa !9
  %10104 = mul nsw i64 %10102, %10103
  %10105 = sub nsw i64 %10093, %10104
  store i64 %10105, ptr %65, align 8, !tbaa !9
  %10106 = load ptr, ptr %20, align 8, !tbaa !5
  %10107 = load i64, ptr %10106, align 8, !tbaa !9
  %10108 = load i64, ptr %57, align 8, !tbaa !9
  %10109 = sub nsw i64 %10107, %10108
  store i64 %10109, ptr %58, align 8, !tbaa !9
  br label %10110

10110:                                            ; preds = %10164, %10101
  %10111 = load i64, ptr %58, align 8, !tbaa !9
  %10112 = icmp sge i64 %10111, 1
  br i1 %10112, label %10113, label %10167

10113:                                            ; preds = %10110
  %10114 = load i64, ptr %65, align 8, !tbaa !9
  %10115 = load i64, ptr %58, align 8, !tbaa !9
  %10116 = add nsw i64 %10114, %10115
  %10117 = sub nsw i64 %10116, 1
  %10118 = load i64, ptr %69, align 8, !tbaa !9
  %10119 = sdiv i64 %10117, %10118
  store i64 %10119, ptr %76, align 8, !tbaa !9
  %10120 = load i64, ptr %65, align 8, !tbaa !9
  %10121 = load i64, ptr %76, align 8, !tbaa !9
  %10122 = sub nsw i64 %10121, 1
  %10123 = load i64, ptr %69, align 8, !tbaa !9
  %10124 = mul nsw i64 %10122, %10123
  %10125 = sub nsw i64 %10120, %10124
  store i64 %10125, ptr %72, align 8, !tbaa !9
  %10126 = load i64, ptr %76, align 8, !tbaa !9
  %10127 = icmp sgt i64 %10126, 0
  br i1 %10127, label %10128, label %10163

10128:                                            ; preds = %10113
  %10129 = load ptr, ptr %21, align 8, !tbaa !5
  %10130 = load i64, ptr %69, align 8, !tbaa !9
  %10131 = load i64, ptr %58, align 8, !tbaa !9
  %10132 = sub nsw i64 %10130, %10131
  %10133 = add nsw i64 %10132, 1
  %10134 = load i64, ptr %72, align 8, !tbaa !9
  %10135 = load i64, ptr %69, align 8, !tbaa !9
  %10136 = sub nsw i64 %10134, %10135
  %10137 = load i64, ptr %58, align 8, !tbaa !9
  %10138 = add nsw i64 %10136, %10137
  %10139 = load i64, ptr %30, align 8, !tbaa !9
  %10140 = mul nsw i64 %10138, %10139
  %10141 = add nsw i64 %10133, %10140
  %10142 = getelementptr inbounds %struct.complex, ptr %10129, i64 %10141
  %10143 = load ptr, ptr %21, align 8, !tbaa !5
  %10144 = load i64, ptr %69, align 8, !tbaa !9
  %10145 = load i64, ptr %58, align 8, !tbaa !9
  %10146 = sub nsw i64 %10144, %10145
  %10147 = load i64, ptr %72, align 8, !tbaa !9
  %10148 = load i64, ptr %69, align 8, !tbaa !9
  %10149 = sub nsw i64 %10147, %10148
  %10150 = load i64, ptr %58, align 8, !tbaa !9
  %10151 = add nsw i64 %10149, %10150
  %10152 = load i64, ptr %30, align 8, !tbaa !9
  %10153 = mul nsw i64 %10151, %10152
  %10154 = add nsw i64 %10146, %10153
  %10155 = getelementptr inbounds %struct.complex, ptr %10143, i64 %10154
  %10156 = load ptr, ptr %28, align 8, !tbaa !5
  %10157 = load i64, ptr %72, align 8, !tbaa !9
  %10158 = getelementptr inbounds float, ptr %10156, i64 %10157
  %10159 = load ptr, ptr %27, align 8, !tbaa !5
  %10160 = load i64, ptr %72, align 8, !tbaa !9
  %10161 = getelementptr inbounds %struct.complex, ptr %10159, i64 %10160
  %10162 = call i32 @clartv_(ptr noundef %76, ptr noundef %10142, ptr noundef %77, ptr noundef %10155, ptr noundef %77, ptr noundef %10158, ptr noundef %10161, ptr noundef %69)
  br label %10163

10163:                                            ; preds = %10128, %10113
  br label %10164

10164:                                            ; preds = %10163
  %10165 = load i64, ptr %58, align 8, !tbaa !9
  %10166 = add nsw i64 %10165, -1
  store i64 %10166, ptr %58, align 8, !tbaa !9
  br label %10110, !llvm.loop !106

10167:                                            ; preds = %10110
  br label %10168

10168:                                            ; preds = %10167
  %10169 = load i64, ptr %57, align 8, !tbaa !9
  %10170 = add nsw i64 %10169, 1
  store i64 %10170, ptr %57, align 8, !tbaa !9
  br label %10079, !llvm.loop !107

10171:                                            ; preds = %10079
  %10172 = load ptr, ptr %20, align 8, !tbaa !5
  %10173 = load i64, ptr %10172, align 8, !tbaa !9
  %10174 = icmp sgt i64 %10173, 1
  br i1 %10174, label %10175, label %10222

10175:                                            ; preds = %10171
  %10176 = load i64, ptr %63, align 8, !tbaa !9
  %10177 = load ptr, ptr %19, align 8, !tbaa !5
  %10178 = load i64, ptr %10177, align 8, !tbaa !9
  %10179 = sub nsw i64 %10176, %10178
  store i64 %10179, ptr %38, align 8, !tbaa !9
  store i64 2, ptr %56, align 8, !tbaa !9
  br label %10180

10180:                                            ; preds = %10218, %10175
  %10181 = load i64, ptr %56, align 8, !tbaa !9
  %10182 = load i64, ptr %38, align 8, !tbaa !9
  %10183 = icmp sle i64 %10181, %10182
  br i1 %10183, label %10184, label %10221

10184:                                            ; preds = %10180
  %10185 = load ptr, ptr %28, align 8, !tbaa !5
  %10186 = load i64, ptr %56, align 8, !tbaa !9
  %10187 = load ptr, ptr %19, align 8, !tbaa !5
  %10188 = load i64, ptr %10187, align 8, !tbaa !9
  %10189 = add nsw i64 %10186, %10188
  %10190 = getelementptr inbounds float, ptr %10185, i64 %10189
  %10191 = load float, ptr %10190, align 4, !tbaa !14
  %10192 = load ptr, ptr %28, align 8, !tbaa !5
  %10193 = load i64, ptr %56, align 8, !tbaa !9
  %10194 = getelementptr inbounds float, ptr %10192, i64 %10193
  store float %10191, ptr %10194, align 4, !tbaa !14
  %10195 = load i64, ptr %56, align 8, !tbaa !9
  store i64 %10195, ptr %39, align 8, !tbaa !9
  %10196 = load i64, ptr %56, align 8, !tbaa !9
  %10197 = load ptr, ptr %19, align 8, !tbaa !5
  %10198 = load i64, ptr %10197, align 8, !tbaa !9
  %10199 = add nsw i64 %10196, %10198
  store i64 %10199, ptr %36, align 8, !tbaa !9
  %10200 = load ptr, ptr %27, align 8, !tbaa !5
  %10201 = load i64, ptr %36, align 8, !tbaa !9
  %10202 = getelementptr inbounds %struct.complex, ptr %10200, i64 %10201
  %10203 = getelementptr inbounds %struct.complex, ptr %10202, i32 0, i32 0
  %10204 = load float, ptr %10203, align 4, !tbaa !11
  %10205 = load ptr, ptr %27, align 8, !tbaa !5
  %10206 = load i64, ptr %39, align 8, !tbaa !9
  %10207 = getelementptr inbounds %struct.complex, ptr %10205, i64 %10206
  %10208 = getelementptr inbounds %struct.complex, ptr %10207, i32 0, i32 0
  store float %10204, ptr %10208, align 4, !tbaa !11
  %10209 = load ptr, ptr %27, align 8, !tbaa !5
  %10210 = load i64, ptr %36, align 8, !tbaa !9
  %10211 = getelementptr inbounds %struct.complex, ptr %10209, i64 %10210
  %10212 = getelementptr inbounds %struct.complex, ptr %10211, i32 0, i32 1
  %10213 = load float, ptr %10212, align 4, !tbaa !15
  %10214 = load ptr, ptr %27, align 8, !tbaa !5
  %10215 = load i64, ptr %39, align 8, !tbaa !9
  %10216 = getelementptr inbounds %struct.complex, ptr %10214, i64 %10215
  %10217 = getelementptr inbounds %struct.complex, ptr %10216, i32 0, i32 1
  store float %10213, ptr %10217, align 4, !tbaa !15
  br label %10218

10218:                                            ; preds = %10184
  %10219 = load i64, ptr %56, align 8, !tbaa !9
  %10220 = add nsw i64 %10219, 1
  store i64 %10220, ptr %56, align 8, !tbaa !9
  br label %10180, !llvm.loop !108

10221:                                            ; preds = %10180
  br label %10222

10222:                                            ; preds = %10221, %10171
  br label %10223

10223:                                            ; preds = %10222, %7753
  br label %5191

10224:                                            ; preds = %5252, %5242, %222, %213
  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 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 4, 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
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  %10225 = load i32, ptr %15, align 4
  ret i32 %10225
}

; 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 void @r_cnjg(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 i32 @f2c_csscal(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !13, i64 0}
!12 = !{!"", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!13, !13, i64 0}
!15 = !{!12, !13, i64 4}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17}
!25 = distinct !{!25, !17}
!26 = distinct !{!26, !17}
!27 = distinct !{!27, !17}
!28 = distinct !{!28, !17}
!29 = distinct !{!29, !17}
!30 = distinct !{!30, !17}
!31 = distinct !{!31, !17}
!32 = distinct !{!32, !17}
!33 = distinct !{!33, !17}
!34 = distinct !{!34, !17}
!35 = distinct !{!35, !17}
!36 = distinct !{!36, !17}
!37 = distinct !{!37, !17}
!38 = distinct !{!38, !17}
!39 = distinct !{!39, !17}
!40 = distinct !{!40, !17}
!41 = distinct !{!41, !17}
!42 = distinct !{!42, !17}
!43 = distinct !{!43, !17}
!44 = distinct !{!44, !17}
!45 = distinct !{!45, !17}
!46 = distinct !{!46, !17}
!47 = distinct !{!47, !17}
!48 = distinct !{!48, !17}
!49 = distinct !{!49, !17}
!50 = distinct !{!50, !17}
!51 = distinct !{!51, !17}
!52 = distinct !{!52, !17}
!53 = distinct !{!53, !17}
!54 = distinct !{!54, !17}
!55 = distinct !{!55, !17}
!56 = distinct !{!56, !17}
!57 = distinct !{!57, !17}
!58 = distinct !{!58, !17}
!59 = distinct !{!59, !17}
!60 = distinct !{!60, !17}
!61 = distinct !{!61, !17}
!62 = distinct !{!62, !17}
!63 = distinct !{!63, !17}
!64 = distinct !{!64, !17}
!65 = distinct !{!65, !17}
!66 = distinct !{!66, !17}
!67 = distinct !{!67, !17}
!68 = distinct !{!68, !17}
!69 = distinct !{!69, !17}
!70 = distinct !{!70, !17}
!71 = distinct !{!71, !17}
!72 = distinct !{!72, !17}
!73 = distinct !{!73, !17}
!74 = distinct !{!74, !17}
!75 = distinct !{!75, !17}
!76 = distinct !{!76, !17}
!77 = distinct !{!77, !17}
!78 = distinct !{!78, !17}
!79 = distinct !{!79, !17}
!80 = distinct !{!80, !17}
!81 = distinct !{!81, !17}
!82 = distinct !{!82, !17}
!83 = distinct !{!83, !17}
!84 = distinct !{!84, !17}
!85 = distinct !{!85, !17}
!86 = distinct !{!86, !17}
!87 = distinct !{!87, !17}
!88 = distinct !{!88, !17}
!89 = distinct !{!89, !17}
!90 = distinct !{!90, !17}
!91 = distinct !{!91, !17}
!92 = distinct !{!92, !17}
!93 = distinct !{!93, !17}
!94 = distinct !{!94, !17}
!95 = distinct !{!95, !17}
!96 = distinct !{!96, !17}
!97 = distinct !{!97, !17}
!98 = distinct !{!98, !17}
!99 = distinct !{!99, !17}
!100 = distinct !{!100, !17}
!101 = distinct !{!101, !17}
!102 = distinct !{!102, !17}
!103 = distinct !{!103, !17}
!104 = distinct !{!104, !17}
!105 = distinct !{!105, !17}
!106 = distinct !{!106, !17}
!107 = distinct !{!107, !17}
!108 = distinct !{!108, !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 [7 x i8], align 1
@.str.5 = 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
@c__1 = external hidden global i64, align 8

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

51:                                               ; preds = %14
  %52 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #4
  %.not3267 = icmp eq i64 %52, 0
  br i1 %.not3267, label %.thread.sink.split, label %53

53:                                               ; preds = %51, %14
  %.not3268 = icmp eq i64 %.fr, 0
  br i1 %.not3268, label %54, label %56

54:                                               ; preds = %53
  %55 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #4
  %.not3269 = icmp eq i64 %55, 0
  br i1 %.not3269, label %.thread.sink.split, label %56

56:                                               ; preds = %54, %53
  %57 = load i64, ptr %2, align 8, !tbaa !5
  %58 = icmp slt i64 %57, 0
  br i1 %58, label %.thread.sink.split, label %59

59:                                               ; preds = %56
  %60 = load i64, ptr %3, align 8, !tbaa !5
  %61 = icmp slt i64 %60, 0
  br i1 %61, label %.thread.sink.split, label %62

62:                                               ; preds = %59
  %63 = load i64, ptr %4, align 8, !tbaa !5
  %or.cond3380 = icmp ugt i64 %63, %60
  br i1 %or.cond3380, label %.thread.sink.split, label %64

64:                                               ; preds = %62
  %65 = load i64, ptr %6, align 8, !tbaa !5
  %.not3270 = icmp sgt i64 %65, %60
  br i1 %.not3270, label %66, label %.thread.sink.split

66:                                               ; preds = %64
  %67 = load i64, ptr %8, align 8, !tbaa !5
  %.not3271 = icmp sgt i64 %67, %63
  br i1 %.not3271, label %68, label %.thread.sink.split

68:                                               ; preds = %66
  %69 = load i64, ptr %10, align 8, !tbaa !5
  %70 = icmp slt i64 %69, 1
  %71 = icmp ugt i64 %57, %69
  %or.cond3434 = and i1 %.not, %71
  %or.cond4628 = or i1 %70, %or.cond3434
  br i1 %or.cond4628, label %.thread.sink.split, label %72

72:                                               ; preds = %68
  %.pr = load i64, ptr %13, align 8, !tbaa !5
  %.not3272 = icmp eq i64 %.pr, 0
  br i1 %.not3272, label %76, label %.thread

.thread.sink.split:                               ; preds = %68, %66, %64, %62, %59, %56, %54, %51
  %.sink4630 = phi i64 [ -1, %51 ], [ -2, %54 ], [ -3, %56 ], [ -4, %59 ], [ -5, %62 ], [ -7, %64 ], [ -9, %66 ], [ -11, %68 ]
  store i64 %.sink4630, ptr %13, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %72
  %73 = phi i64 [ %.pr, %72 ], [ %.sink4630, %.thread.sink.split ]
  %74 = sub nsw i64 0, %73
  store i64 %74, ptr %15, align 8, !tbaa !5
  %75 = call i32 @xerbla_(ptr noundef nonnull @.str.4, ptr noundef nonnull %15) #4
  br label %.loopexit3480

76:                                               ; preds = %72
  %77 = icmp eq i64 %57, 0
  br i1 %77, label %.loopexit3480, label %78

78:                                               ; preds = %76
  %79 = mul nsw i64 %48, %65
  store i64 %79, ptr %33, align 8, !tbaa !5
  br i1 %.not, label %80, label %82

80:                                               ; preds = %78
  %81 = tail call i32 @claset_(ptr noundef nonnull @.str.5, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %9, ptr noundef nonnull %10) #4
  %.pre = load i64, ptr %2, align 8, !tbaa !5
  %.pre4390 = load i64, ptr %4, align 8, !tbaa !5
  br label %82

82:                                               ; preds = %80, %78
  %83 = phi i64 [ %.pre4390, %80 ], [ %63, %78 ]
  %84 = phi i64 [ %.pre, %80 ], [ %57, %78 ]
  %85 = add nsw i64 %83, %84
  %86 = sdiv i64 %85, 2
  %87 = add nsw i64 %84, 1
  %invariant.gep3878 = getelementptr i8, ptr %39, i64 8
  %88 = add nsw i64 %86, 1
  %invariant.gep = getelementptr %struct.complex, ptr %39, i64 %50
  %89 = getelementptr inbounds i8, ptr %22, i64 4
  %90 = getelementptr inbounds i8, ptr %21, i64 4
  %91 = getelementptr inbounds i8, ptr %24, i64 4
  %92 = getelementptr %struct.complex, ptr %42, i64 %86
  %93 = getelementptr i8, ptr %92, i64 8
  %invariant.gep3648 = getelementptr i8, ptr %36, i64 8
  %invariant.gep3791 = getelementptr i8, ptr %36, i64 16
  %.0319135964257 = add i64 %34, -1
  %.0319135964258 = add i64 %34, -1
  %scevgep = getelementptr i8, ptr %11, i64 -12
  %94 = shl i64 %86, 3
  %95 = sub i64 -12, %94
  %scevgep4726 = getelementptr i8, ptr %11, i64 %95
  %96 = sub i64 -16, %94
  %scevgep4731 = getelementptr i8, ptr %11, i64 %96
  %scevgep4736 = getelementptr i8, ptr %11, i64 -16
  %97 = shl i64 %86, 2
  %98 = sub i64 -8, %97
  %scevgep4741 = getelementptr i8, ptr %12, i64 %98
  %scevgep4746 = getelementptr i8, ptr %12, i64 -8
  %99 = shl i64 %86, 3
  %100 = sub nuw nsw i64 -8, %99
  %scevgep4751 = getelementptr i8, ptr %11, i64 %100
  %101 = sub i64 -12, %99
  %scevgep4753 = getelementptr i8, ptr %11, i64 %101
  %102 = sub nuw nsw i64 -4, %99
  %scevgep4755 = getelementptr i8, ptr %11, i64 %102
  %scevgep4757 = getelementptr i8, ptr %11, i64 %100
  %scevgep4759 = getelementptr i8, ptr %11, i64 %100
  %scevgep4761 = getelementptr i8, ptr %11, i64 -12
  %scevgep4763 = getelementptr i8, ptr %11, i64 %102
  %scevgep4765 = getelementptr i8, ptr %11, i64 -8
  %103 = shl i64 %86, 2
  %104 = sub nuw nsw i64 -4, %103
  %scevgep4767 = getelementptr i8, ptr %12, i64 %104
  %scevgep4769 = getelementptr i8, ptr %12, i64 %104
  %scevgep4771 = getelementptr i8, ptr %12, i64 %104
  %scevgep4773 = getelementptr i8, ptr %12, i64 -4
  %scevgep4825 = getelementptr i8, ptr %11, i64 -12
  %105 = shl i64 %86, 3
  %106 = sub i64 -12, %105
  %scevgep4830 = getelementptr i8, ptr %11, i64 %106
  %107 = sub i64 -16, %105
  %scevgep4835 = getelementptr i8, ptr %11, i64 %107
  %scevgep4840 = getelementptr i8, ptr %11, i64 -16
  %108 = shl i64 %86, 2
  %109 = sub i64 -8, %108
  %scevgep4845 = getelementptr i8, ptr %12, i64 %109
  %scevgep4850 = getelementptr i8, ptr %12, i64 -8
  %110 = shl i64 %86, 3
  %111 = sub nuw nsw i64 -8, %110
  %scevgep4856 = getelementptr i8, ptr %11, i64 %111
  %112 = sub i64 -12, %110
  %scevgep4858 = getelementptr i8, ptr %11, i64 %112
  %113 = sub nuw nsw i64 -4, %110
  %scevgep4860 = getelementptr i8, ptr %11, i64 %113
  %scevgep4862 = getelementptr i8, ptr %11, i64 %111
  %scevgep4864 = getelementptr i8, ptr %11, i64 %111
  %scevgep4866 = getelementptr i8, ptr %11, i64 -12
  %scevgep4868 = getelementptr i8, ptr %11, i64 %113
  %scevgep4870 = getelementptr i8, ptr %11, i64 -8
  %114 = shl i64 %86, 2
  %115 = sub nuw nsw i64 -4, %114
  %scevgep4872 = getelementptr i8, ptr %12, i64 %115
  %scevgep4874 = getelementptr i8, ptr %12, i64 %115
  %scevgep4876 = getelementptr i8, ptr %12, i64 %115
  %scevgep4878 = getelementptr i8, ptr %12, i64 -4
  %scevgep4952 = getelementptr i8, ptr %5, i64 8
  %scevgep4957 = getelementptr i8, ptr %5, i64 12
  %116 = shl i64 %34, 3
  %117 = sub i64 4, %116
  %scevgep4984 = getelementptr i8, ptr %5, i64 %117
  %invariant.gep5445 = getelementptr i8, ptr %36, i64 8
  %invariant.gep5447 = getelementptr i8, ptr %36, i64 16
  %invariant.gep5425 = getelementptr i8, ptr %36, i64 8
  %invariant.gep5427 = getelementptr i8, ptr %44, i64 -12
  %invariant.gep5429 = getelementptr i8, ptr %44, i64 -12
  %invariant.gep5431 = getelementptr i8, ptr %43, i64 -24
  %invariant.gep5433 = getelementptr i8, ptr %43, i64 -28
  %invariant.gep5435 = getelementptr i8, ptr %39, i64 8
  %invariant.gep5449 = getelementptr i8, ptr %39, i64 8
  %invariant.gep5437 = getelementptr i8, ptr %44, i64 -12
  %invariant.gep5439 = getelementptr i8, ptr %44, i64 -12
  %invariant.gep5441 = getelementptr i8, ptr %43, i64 -24
  %invariant.gep5443 = getelementptr i8, ptr %43, i64 -28
  br label %.outer3489

.outer3489:                                       ; preds = %.loopexit3487, %82
  %.pre4395 = phi i64 [ %.pre4395.pre, %.loopexit3487 ], [ %84, %82 ]
  %118 = phi i64 [ %1726, %.loopexit3487 ], [ %83, %82 ]
  %.03239.ph = phi i64 [ %.132403397, %.loopexit3487 ], [ %87, %82 ]
  %.03181.ph = phi i64 [ %.131823400, %.loopexit3487 ], [ undef, %82 ]
  %.03176.ph = phi i64 [ %.131773403, %.loopexit3487 ], [ undef, %82 ]
  %.03172.ph = phi i64 [ %.131733406, %.loopexit3487 ], [ undef, %82 ]
  %.0.ph = phi i64 [ %.03518, %.loopexit3487 ], [ 1, %82 ]
  %.not32733537 = icmp eq i64 %.0.ph, 0
  %.pre4394 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %.not32733537, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.outer3489
  %119 = add i64 %.03239.ph, -1
  %120 = add nsw i64 %.03239.ph, -2
  %121 = call i64 @llvm.smin.i64(i64 %118, i64 %120)
  store i64 %121, ptr %31, align 8, !tbaa !5
  %122 = add i64 %.pre4394, %119
  %123 = call i64 @llvm.smin.i64(i64 %.pre4395, i64 %122)
  %124 = sub nsw i64 %119, %121
  %125 = load i64, ptr %29, align 8, !tbaa !5
  %126 = add nsw i64 %124, %125
  %.not3277 = icmp sgt i64 %.03239.ph, %88
  br i1 %.not3277, label %.lr.ph.split.us, label %.lr.ph.split

.lr.ph.split.us:                                  ; preds = %.lr.ph
  store i64 %.pre4395, ptr %15, align 8, !tbaa !5
  %127 = mul nsw i64 %119, %37
  %128 = mul i64 %119, %34
  %.not3279.not3623.not = icmp sgt i64 %.03239.ph, %123
  %129 = getelementptr %struct.complex, ptr %39, i64 %127
  br i1 %.not3268, label %927, label %133

.lr.ph.split:                                     ; preds = %.lr.ph
  %130 = icmp eq i64 %.pre4394, 0
  store i64 %.pre4395, ptr %15, align 8, !tbaa !5
  store i64 %122, ptr %16, align 8, !tbaa !5
  br i1 %130, label %.loopexit3491, label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.split, %.outer3489
  %.03181.lcssa = phi i64 [ %.03181.ph, %.outer3489 ], [ %86, %.lr.ph.split ]
  %.03176.lcssa = phi i64 [ %.03176.ph, %.outer3489 ], [ %123, %.lr.ph.split ]
  %.03172.lcssa = phi i64 [ %.03172.ph, %.outer3489 ], [ %126, %.lr.ph.split ]
  %131 = add nsw i64 %.pre4394, %.03239.ph
  %.not3274 = icmp slt i64 %131, %.pre4395
  br i1 %.not3274, label %132, label %.loopexit3491

132:                                              ; preds = %._crit_edge
  br i1 %.not3268, label %1172, label %385

133:                                              ; preds = %.lr.ph.split.us
  %134 = getelementptr %struct.complex, ptr %129, i64 %50
  %135 = load float, ptr %134, align 4, !tbaa !9
  %136 = add i64 %125, %128
  %137 = getelementptr inbounds %struct.complex, ptr %36, i64 %136
  %138 = load float, ptr %137, align 4, !tbaa !9
  %139 = fdiv float %138, %135
  %140 = fdiv float %139, %135
  store float %140, ptr %19, align 4, !tbaa !12
  store float %140, ptr %137, align 4, !tbaa !9
  %141 = getelementptr inbounds %struct.complex, ptr %36, i64 %136, i32 1
  store float 0.000000e+00, ptr %141, align 4, !tbaa !13
  br i1 %.not3279.not3623.not, label %167, label %.lr.ph3555

.lr.ph3555:                                       ; preds = %133
  %142 = add i64 %125, %119
  %143 = insertelement <2 x float> poison, float %135, i64 0
  %144 = shufflevector <2 x float> %143, <2 x float> poison, <2 x i32> zeroinitializer
  %145 = add i64 %123, %.03239.ph
  %146 = and i64 %145, 1
  %lcmp.mod.not.not = icmp eq i64 %146, 0
  br i1 %lcmp.mod.not.not, label %.prol.loopexit.unr-lcssa, label %.prol.loopexit

.prol.loopexit.unr-lcssa:                         ; preds = %.lr.ph3555
  %147 = mul nsw i64 %.03239.ph, %34
  %148 = add i64 %125, -1
  %149 = add nsw i64 %148, %147
  %150 = getelementptr inbounds %struct.complex, ptr %36, i64 %149
  %151 = load <2 x float>, ptr %150, align 4, !tbaa !12
  %152 = fdiv <2 x float> %151, %144
  store <2 x float> %152, ptr %150, align 4, !tbaa !12
  br label %.prol.loopexit

.prol.loopexit:                                   ; preds = %.prol.loopexit.unr-lcssa, %.lr.ph3555
  %.lcssa5307.unr = phi i64 [ poison, %.lr.ph3555 ], [ %149, %.prol.loopexit.unr-lcssa ]
  %.lcssa5306.unr = phi <2 x float> [ poison, %.lr.ph3555 ], [ %152, %.prol.loopexit.unr-lcssa ]
  %.03215.in3553.unr = phi i64 [ %119, %.lr.ph3555 ], [ %.03239.ph, %.prol.loopexit.unr-lcssa ]
  %153 = icmp eq i64 %123, %.03239.ph
  br i1 %153, label %._crit_edge3556, label %.lr.ph3555.new

.lr.ph3555.new:                                   ; preds = %.prol.loopexit
  %154 = getelementptr %struct.complex, ptr %36, i64 %142
  br label %155

155:                                              ; preds = %155, %.lr.ph3555.new
  %.03215.in3553 = phi i64 [ %.03215.in3553.unr, %.lr.ph3555.new ], [ %.03215.1, %155 ]
  %.03215 = add nsw i64 %.03215.in3553, 1
  %.03215.neg = xor i64 %.03215.in3553, -1
  %156 = mul nsw i64 %.03215, %34
  %157 = getelementptr %struct.complex, ptr %154, i64 %.03215.neg
  %158 = getelementptr %struct.complex, ptr %157, i64 %156
  %159 = load <2 x float>, ptr %158, align 4, !tbaa !12
  %160 = fdiv <2 x float> %159, %144
  store <2 x float> %160, ptr %158, align 4, !tbaa !12
  %.03215.1 = add nsw i64 %.03215.in3553, 2
  %161 = mul nsw i64 %.03215.1, %34
  %reass.sub5354 = sub i64 %142, %.03215.in3553
  %162 = add i64 %reass.sub5354, -2
  %163 = add nsw i64 %162, %161
  %164 = getelementptr inbounds %struct.complex, ptr %36, i64 %163
  %165 = load <2 x float>, ptr %164, align 4, !tbaa !12
  %166 = fdiv <2 x float> %165, %144
  store <2 x float> %166, ptr %164, align 4, !tbaa !12
  %exitcond.not.1 = icmp eq i64 %.03215.1, %123
  br i1 %exitcond.not.1, label %._crit_edge3556, label %155, !llvm.loop !14

._crit_edge3556:                                  ; preds = %155, %.prol.loopexit
  %.lcssa5307 = phi i64 [ %.lcssa5307.unr, %.prol.loopexit ], [ %163, %155 ]
  %.lcssa5306 = phi <2 x float> [ %.lcssa5306.unr, %.prol.loopexit ], [ %166, %155 ]
  store i64 %.lcssa5307, ptr %17, align 8, !tbaa !5
  store <2 x float> %.lcssa5306, ptr %20, align 8, !tbaa !12
  br label %167

167:                                              ; preds = %._crit_edge3556, %133
  store i64 1, ptr %15, align 8, !tbaa !5
  %168 = sub nsw i64 %119, %.pre4394
  store i64 %168, ptr %16, align 8, !tbaa !5
  %169 = call i64 @llvm.smax.i64(i64 %168, i64 1)
  %.not33023561 = icmp sgt i64 %169, %120
  br i1 %.not33023561, label %223, label %.lr.ph3564

.lr.ph3564:                                       ; preds = %167
  %reass.sub4259 = sub i64 %136, %.03239.ph
  %170 = add i64 %reass.sub4259, 1
  %171 = xor i64 %169, -1
  %172 = add i64 %.03239.ph, %171
  %min.iters.check4991 = icmp ult i64 %172, 4
  br i1 %min.iters.check4991, label %scalar.ph4990.preheader, label %vector.scevcheck4979

vector.scevcheck4979:                             ; preds = %.lr.ph3564
  %173 = add i64 %.03239.ph, -2
  %174 = sub i64 %173, %169
  %175 = add i64 %125, %169
  %176 = add i64 %175, %128
  %177 = add i64 %34, %.03239.ph
  %178 = sub i64 %176, %177
  %179 = shl i64 %178, 3
  %scevgep4980 = getelementptr i8, ptr %5, i64 %179
  %mul.result4982 = shl i64 %174, 3
  %180 = getelementptr i8, ptr %scevgep4980, i64 %mul.result4982
  %181 = icmp ult ptr %180, %scevgep4980
  %182 = sub i64 %176, %.03239.ph
  %183 = shl i64 %182, 3
  %scevgep4985 = getelementptr i8, ptr %scevgep4984, i64 %183
  %mul.result4987 = shl i64 %174, 3
  %mul.overflow4988 = icmp ugt i64 %174, 2305843009213693951
  %184 = getelementptr i8, ptr %scevgep4985, i64 %mul.result4987
  %185 = icmp ult ptr %184, %scevgep4985
  %186 = or i1 %185, %mul.overflow4988
  %187 = or i1 %181, %186
  br i1 %187, label %scalar.ph4990.preheader, label %vector.ph4992

vector.ph4992:                                    ; preds = %vector.scevcheck4979
  %n.vec4994 = and i64 %172, -4
  %ind.end4995 = add i64 %169, %n.vec4994
  %broadcast.splatinsert5003 = insertelement <4 x float> poison, float %135, i64 0
  %broadcast.splat5004 = shufflevector <4 x float> %broadcast.splatinsert5003, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body4997

vector.body4997:                                  ; preds = %vector.body4997, %vector.ph4992
  %index4998 = phi i64 [ 0, %vector.ph4992 ], [ %index.next5006, %vector.body4997 ]
  %offset.idx4999 = add i64 %169, %index4998
  %188 = add i64 %170, %offset.idx4999
  %189 = getelementptr inbounds %struct.complex, ptr %36, i64 %188
  %wide.vec5000 = load <8 x float>, ptr %189, align 4, !tbaa !12
  %strided.vec5001 = shufflevector <8 x float> %wide.vec5000, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec5002 = shufflevector <8 x float> %wide.vec5000, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %190 = fdiv <4 x float> %strided.vec5001, %broadcast.splat5004
  %191 = fdiv <4 x float> %strided.vec5002, %broadcast.splat5004
  %192 = getelementptr inbounds %struct.complex, ptr %36, i64 %188
  %interleaved.vec5005 = shufflevector <4 x float> %190, <4 x float> %191, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec5005, ptr %192, align 4, !tbaa !12
  %index.next5006 = add nuw i64 %index4998, 4
  %193 = icmp eq i64 %index.next5006, %n.vec4994
  br i1 %193, label %middle.block4989, label %vector.body4997, !llvm.loop !16

middle.block4989:                                 ; preds = %vector.body4997
  %194 = add i64 %offset.idx4999, 3
  %195 = add i64 %170, %194
  %cmp.n5007 = icmp eq i64 %172, %n.vec4994
  %196 = shufflevector <4 x float> %190, <4 x float> %191, <2 x i32> <i32 3, i32 7>
  br i1 %cmp.n5007, label %._crit_edge3565, label %scalar.ph4990.preheader

scalar.ph4990.preheader:                          ; preds = %middle.block4989, %vector.scevcheck4979, %.lr.ph3564
  %.132163562.ph = phi i64 [ %169, %vector.scevcheck4979 ], [ %169, %.lr.ph3564 ], [ %ind.end4995, %middle.block4989 ]
  %197 = add i64 %.03239.ph, -2
  %198 = sub i64 %.132163562.ph, %.03239.ph
  %199 = and i64 %198, 1
  %lcmp.mod5338.not.not = icmp eq i64 %199, 0
  br i1 %lcmp.mod5338.not.not, label %scalar.ph4990.prol, label %scalar.ph4990.prol.loopexit

scalar.ph4990.prol:                               ; preds = %scalar.ph4990.preheader
  %200 = add i64 %170, %.132163562.ph
  %201 = getelementptr inbounds %struct.complex, ptr %36, i64 %200
  %202 = load <2 x float>, ptr %201, align 4, !tbaa !12
  %203 = insertelement <2 x float> poison, float %135, i64 0
  %204 = shufflevector <2 x float> %203, <2 x float> poison, <2 x i32> zeroinitializer
  %205 = fdiv <2 x float> %202, %204
  store <2 x float> %205, ptr %201, align 4, !tbaa !12
  %206 = add nuw i64 %.132163562.ph, 1
  br label %scalar.ph4990.prol.loopexit

scalar.ph4990.prol.loopexit:                      ; preds = %scalar.ph4990.prol, %scalar.ph4990.preheader
  %.lcssa5311.unr = phi i64 [ poison, %scalar.ph4990.preheader ], [ %200, %scalar.ph4990.prol ]
  %.lcssa5310.unr = phi <2 x float> [ poison, %scalar.ph4990.preheader ], [ %205, %scalar.ph4990.prol ]
  %.132163562.unr = phi i64 [ %.132163562.ph, %scalar.ph4990.preheader ], [ %206, %scalar.ph4990.prol ]
  %207 = icmp eq i64 %197, %.132163562.ph
  br i1 %207, label %._crit_edge3565, label %scalar.ph4990.preheader.new

scalar.ph4990.preheader.new:                      ; preds = %scalar.ph4990.prol.loopexit
  %208 = getelementptr %struct.complex, ptr %36, i64 %170
  %209 = insertelement <2 x float> poison, float %135, i64 0
  %210 = shufflevector <2 x float> %209, <2 x float> poison, <2 x i32> zeroinitializer
  %211 = insertelement <2 x float> poison, float %135, i64 0
  %212 = shufflevector <2 x float> %211, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph4990

scalar.ph4990:                                    ; preds = %scalar.ph4990, %scalar.ph4990.preheader.new
  %.132163562 = phi i64 [ %.132163562.unr, %scalar.ph4990.preheader.new ], [ %221, %scalar.ph4990 ]
  %213 = getelementptr %struct.complex, ptr %208, i64 %.132163562
  %214 = load <2 x float>, ptr %213, align 4, !tbaa !12
  %215 = fdiv <2 x float> %214, %210
  store <2 x float> %215, ptr %213, align 4, !tbaa !12
  %216 = add nuw i64 %.132163562, 1
  %217 = add i64 %170, %216
  %218 = getelementptr inbounds %struct.complex, ptr %36, i64 %217
  %219 = load <2 x float>, ptr %218, align 4, !tbaa !12
  %220 = fdiv <2 x float> %219, %212
  store <2 x float> %220, ptr %218, align 4, !tbaa !12
  %221 = add nuw i64 %.132163562, 2
  %exitcond4361.not.1 = icmp eq i64 %221, %119
  br i1 %exitcond4361.not.1, label %._crit_edge3565, label %scalar.ph4990, !llvm.loop !19

._crit_edge3565:                                  ; preds = %scalar.ph4990.prol.loopexit, %scalar.ph4990, %middle.block4989
  %.lcssa4686 = phi i64 [ %195, %middle.block4989 ], [ %.lcssa5311.unr, %scalar.ph4990.prol.loopexit ], [ %217, %scalar.ph4990 ]
  %222 = phi <2 x float> [ %196, %middle.block4989 ], [ %.lcssa5310.unr, %scalar.ph4990.prol.loopexit ], [ %220, %scalar.ph4990 ]
  store i64 %.lcssa4686, ptr %15, align 8, !tbaa !5
  store i64 %.lcssa4686, ptr %16, align 8, !tbaa !5
  store <2 x float> %222, ptr %20, align 8, !tbaa !12
  br label %223

223:                                              ; preds = %._crit_edge3565, %167
  store i64 %120, ptr %17, align 8, !tbaa !5
  %invariant.gep3592 = getelementptr %struct.complex, ptr %36, i64 %128
  %.not33033595 = icmp sgt i64 %124, %120
  br i1 %.not33033595, label %._crit_edge3600, label %.lr.ph3599

.lr.ph3599:                                       ; preds = %223
  %invariant.gep3570 = getelementptr %struct.complex, ptr %invariant.gep, i64 %127
  br label %224

224:                                              ; preds = %.lr.ph3599, %._crit_edge3591
  %.031913596 = phi i64 [ %124, %.lr.ph3599 ], [ %322, %._crit_edge3591 ]
  store i64 %.031913596, ptr %15, align 8, !tbaa !5
  %225 = load i64, ptr %31, align 8, !tbaa !5
  %226 = sub nsw i64 %119, %225
  %.not33213576 = icmp sgt i64 %226, %.031913596
  br i1 %.not33213576, label %._crit_edge3580, label %.lr.ph3579

.lr.ph3579:                                       ; preds = %224
  %227 = mul i64 %.031913596, %.0319135964257
  %228 = sub nsw i64 %.031913596, %119
  %gep3593 = getelementptr %struct.complex, ptr %invariant.gep3592, i64 %228
  %gep3574 = getelementptr %struct.complex, ptr %invariant.gep3570, i64 %228
  br label %229

229:                                              ; preds = %.lr.ph3579, %229
  %.232173577 = phi i64 [ %226, %.lr.ph3579 ], [ %284, %229 ]
  %230 = load i64, ptr %29, align 8, !tbaa !5
  %231 = add i64 %227, %.232173577
  %232 = add i64 %231, %230
  store i64 %232, ptr %16, align 8, !tbaa !5
  store i64 %232, ptr %18, align 8, !tbaa !5
  %233 = sub nsw i64 %.232173577, %119
  %gep3582 = getelementptr %struct.complex, ptr %gep3593, i64 %230
  call void @r_cnjg(ptr noundef nonnull %23, ptr noundef %gep3582) #4
  %gep3571 = getelementptr %struct.complex, ptr %invariant.gep3570, i64 %233
  %234 = load float, ptr %gep3571, align 4, !tbaa !9
  %235 = getelementptr inbounds i8, ptr %gep3571, i64 4
  %236 = load float, ptr %235, align 4, !tbaa !13
  %237 = fneg float %236
  %238 = load <2 x float>, ptr %23, align 8, !tbaa !12
  %239 = insertelement <2 x float> poison, float %236, i64 0
  %240 = insertelement <2 x float> %239, float %237, i64 1
  %241 = fmul <2 x float> %238, %240
  %242 = shufflevector <2 x float> %241, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %243 = insertelement <2 x float> poison, float %234, i64 0
  %244 = shufflevector <2 x float> %243, <2 x float> poison, <2 x i32> zeroinitializer
  %245 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %244, <2 x float> %238, <2 x float> %242)
  store <2 x float> %245, ptr %22, align 8, !tbaa !12
  %246 = load i64, ptr %18, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.complex, ptr %36, i64 %246
  %248 = load <2 x float>, ptr %247, align 4, !tbaa !12
  %249 = fsub <2 x float> %248, %245
  store <2 x float> %249, ptr %21, align 8, !tbaa !12
  call void @r_cnjg(ptr noundef nonnull %24, ptr noundef %gep3574) #4
  %250 = load i64, ptr %29, align 8, !tbaa !5
  %251 = load float, ptr %24, align 4, !tbaa !9
  %252 = getelementptr %struct.complex, ptr %36, i64 %233
  %253 = getelementptr %struct.complex, ptr %252, i64 %250
  %254 = getelementptr %struct.complex, ptr %253, i64 %128
  %255 = load float, ptr %91, align 4, !tbaa !13
  %256 = fneg float %255
  %gep = getelementptr %struct.complex, ptr %invariant.gep3592, i64 %250
  %257 = load float, ptr %gep, align 4, !tbaa !9
  store float %257, ptr %19, align 4, !tbaa !12
  %258 = load float, ptr %gep3571, align 4, !tbaa !9
  %259 = fmul float %257, %258
  %260 = load float, ptr %235, align 4, !tbaa !13
  %261 = fmul float %257, %260
  %262 = fneg float %261
  %263 = load <2 x float>, ptr %254, align 4, !tbaa !12
  %264 = insertelement <2 x float> poison, float %255, i64 0
  %265 = insertelement <2 x float> %264, float %256, i64 1
  %266 = fmul <2 x float> %263, %265
  %267 = shufflevector <2 x float> %266, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %268 = insertelement <2 x float> poison, float %251, i64 0
  %269 = shufflevector <2 x float> %268, <2 x float> poison, <2 x i32> zeroinitializer
  %270 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %269, <2 x float> %263, <2 x float> %267)
  %271 = load <2 x float>, ptr %21, align 8, !tbaa !12
  %272 = fsub <2 x float> %271, %270
  call void @r_cnjg(ptr noundef nonnull %25, ptr noundef %gep3574) #4
  %273 = load <2 x float>, ptr %25, align 8, !tbaa !12
  %274 = insertelement <2 x float> poison, float %261, i64 0
  %275 = insertelement <2 x float> %274, float %262, i64 1
  %276 = fmul <2 x float> %273, %275
  %277 = shufflevector <2 x float> %276, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %278 = insertelement <2 x float> poison, float %259, i64 0
  %279 = shufflevector <2 x float> %278, <2 x float> poison, <2 x i32> zeroinitializer
  %280 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %279, <2 x float> %273, <2 x float> %277)
  %281 = fadd <2 x float> %272, %280
  store <2 x float> %281, ptr %20, align 8, !tbaa !12
  %282 = load i64, ptr %16, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.complex, ptr %36, i64 %282
  store <2 x float> %281, ptr %283, align 4, !tbaa !12
  %284 = add nsw i64 %.232173577, 1
  %285 = load i64, ptr %15, align 8, !tbaa !5
  %.not3321.not = icmp slt i64 %.232173577, %285
  br i1 %.not3321.not, label %229, label %._crit_edge3580.loopexit, !llvm.loop !20

._crit_edge3580.loopexit:                         ; preds = %229
  %.pre4391 = load i64, ptr %31, align 8, !tbaa !5
  br label %._crit_edge3580

._crit_edge3580:                                  ; preds = %._crit_edge3580.loopexit, %224
  %286 = phi i64 [ %.pre4391, %._crit_edge3580.loopexit ], [ %225, %224 ]
  store i64 1, ptr %15, align 8, !tbaa !5
  %287 = load i64, ptr %3, align 8, !tbaa !5
  %288 = sub nsw i64 %119, %287
  store i64 %288, ptr %16, align 8, !tbaa !5
  %289 = xor i64 %286, -1
  %290 = add i64 %119, %289
  store i64 %290, ptr %18, align 8, !tbaa !5
  %291 = call i64 @llvm.smax.i64(i64 %288, i64 1)
  %.not33233587 = icmp sgt i64 %291, %290
  br i1 %.not33233587, label %._crit_edge3591, label %.lr.ph3590

.lr.ph3590:                                       ; preds = %._crit_edge3580
  %292 = mul i64 %.031913596, %.0319135964258
  %293 = sub nsw i64 %.031913596, %119
  %gep3586 = getelementptr %struct.complex, ptr %invariant.gep3570, i64 %293
  %.pre4392 = load i64, ptr %29, align 8, !tbaa !5
  br label %294

294:                                              ; preds = %.lr.ph3590, %294
  %295 = phi i64 [ %.pre4392, %.lr.ph3590 ], [ %299, %294 ]
  %.332183588 = phi i64 [ %291, %.lr.ph3590 ], [ %320, %294 ]
  %296 = add i64 %292, %.332183588
  %297 = add i64 %296, %295
  store i64 %297, ptr %15, align 8, !tbaa !5
  store i64 %297, ptr %16, align 8, !tbaa !5
  call void @r_cnjg(ptr noundef nonnull %21, ptr noundef %gep3586) #4
  %298 = sub nsw i64 %.332183588, %119
  %299 = load i64, ptr %29, align 8, !tbaa !5
  %300 = load float, ptr %21, align 8, !tbaa !9
  %301 = getelementptr %struct.complex, ptr %36, i64 %298
  %302 = getelementptr %struct.complex, ptr %301, i64 %299
  %303 = getelementptr %struct.complex, ptr %302, i64 %128
  %304 = load float, ptr %90, align 4, !tbaa !13
  %305 = fneg float %304
  %306 = load i64, ptr %16, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.complex, ptr %36, i64 %306
  %308 = load <2 x float>, ptr %303, align 4, !tbaa !12
  %309 = insertelement <2 x float> poison, float %304, i64 0
  %310 = insertelement <2 x float> %309, float %305, i64 1
  %311 = fmul <2 x float> %308, %310
  %312 = shufflevector <2 x float> %311, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %313 = insertelement <2 x float> poison, float %300, i64 0
  %314 = shufflevector <2 x float> %313, <2 x float> poison, <2 x i32> zeroinitializer
  %315 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %314, <2 x float> %308, <2 x float> %312)
  %316 = load <2 x float>, ptr %307, align 4, !tbaa !12
  %317 = fsub <2 x float> %316, %315
  store <2 x float> %317, ptr %20, align 8, !tbaa !12
  %318 = load i64, ptr %15, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.complex, ptr %36, i64 %318
  store <2 x float> %317, ptr %319, align 4, !tbaa !12
  %320 = add nuw nsw i64 %.332183588, 1
  %321 = load i64, ptr %18, align 8, !tbaa !5
  %.not3323.not = icmp slt i64 %.332183588, %321
  br i1 %.not3323.not, label %294, label %._crit_edge3591, !llvm.loop !21

._crit_edge3591:                                  ; preds = %294, %._crit_edge3580
  %322 = add nsw i64 %.031913596, 1
  %323 = load i64, ptr %17, align 8, !tbaa !5
  %.not3303.not = icmp slt i64 %.031913596, %323
  br i1 %.not3303.not, label %224, label %._crit_edge3600, !llvm.loop !22

._crit_edge3600:                                  ; preds = %._crit_edge3591, %223
  %.not33043614 = icmp sgt i64 %119, %123
  br i1 %.not33043614, label %357, label %.lr.ph3617

.lr.ph3617:                                       ; preds = %._crit_edge3600
  %324 = load i64, ptr %3, align 8, !tbaa !5
  %325 = load i64, ptr %31, align 8, !tbaa !5
  %326 = sub nsw i64 %119, %325
  %invariant.gep3603 = getelementptr %struct.complex, ptr %invariant.gep, i64 %127
  %327 = load i64, ptr %29, align 8
  %invariant.gep3619 = getelementptr %struct.complex, ptr %36, i64 %327
  br label %328

328:                                              ; preds = %.lr.ph3617, %355
  %.432193615 = phi i64 [ %119, %.lr.ph3617 ], [ %356, %355 ]
  %329 = sub nsw i64 %.432193615, %324
  %330 = call i64 @llvm.smax.i64(i64 %329, i64 %326)
  %.not33203605 = icmp sgt i64 %330, %120
  br i1 %.not33203605, label %355, label %.lr.ph3608

.lr.ph3608:                                       ; preds = %328
  %331 = mul nsw i64 %.432193615, %34
  %332 = sub i64 %331, %.432193615
  %333 = sub nsw i64 %119, %.432193615
  %gep3620 = getelementptr %struct.complex, ptr %invariant.gep3619, i64 %333
  %334 = getelementptr %struct.complex, ptr %gep3620, i64 %331
  br label %335

335:                                              ; preds = %.lr.ph3608, %335
  %.131923606 = phi i64 [ %330, %.lr.ph3608 ], [ %354, %335 ]
  %336 = add i64 %332, %.131923606
  %337 = add i64 %336, %327
  %338 = sub nsw i64 %.131923606, %119
  %gep3604 = getelementptr %struct.complex, ptr %invariant.gep3603, i64 %338
  %339 = load float, ptr %gep3604, align 4, !tbaa !9
  %340 = getelementptr inbounds i8, ptr %gep3604, i64 4
  %341 = load float, ptr %340, align 4, !tbaa !13
  %342 = fneg float %341
  %343 = getelementptr inbounds %struct.complex, ptr %36, i64 %337
  %344 = load <2 x float>, ptr %334, align 4, !tbaa !12
  %345 = insertelement <2 x float> poison, float %341, i64 0
  %346 = insertelement <2 x float> %345, float %342, i64 1
  %347 = fmul <2 x float> %344, %346
  %348 = shufflevector <2 x float> %347, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %349 = insertelement <2 x float> poison, float %339, i64 0
  %350 = shufflevector <2 x float> %349, <2 x float> poison, <2 x i32> zeroinitializer
  %351 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %350, <2 x float> %344, <2 x float> %348)
  %352 = load <2 x float>, ptr %343, align 4, !tbaa !12
  %353 = fsub <2 x float> %352, %351
  store <2 x float> %353, ptr %343, align 4, !tbaa !12
  %354 = add nsw i64 %.131923606, 1
  %.not3320.not = icmp slt i64 %.131923606, %120
  br i1 %.not3320.not, label %335, label %._crit_edge3609, !llvm.loop !23

._crit_edge3609:                                  ; preds = %335
  store <2 x float> %353, ptr %20, align 8, !tbaa !12
  br label %355

355:                                              ; preds = %._crit_edge3609, %328
  %.lcssa36113622 = phi i64 [ %337, %._crit_edge3609 ], [ %326, %328 ]
  %.lcssa36103621 = phi i64 [ %337, %._crit_edge3609 ], [ %329, %328 ]
  %356 = add i64 %.432193615, 1
  %exitcond4362.not = icmp eq i64 %.432193615, %123
  br i1 %exitcond4362.not, label %._crit_edge3618, label %328, !llvm.loop !24

._crit_edge3618:                                  ; preds = %355
  store i64 %.lcssa36103621, ptr %18, align 8, !tbaa !5
  store i64 %.lcssa36113622, ptr %15, align 8, !tbaa !5
  store i64 %120, ptr %16, align 8, !tbaa !5
  br label %357

357:                                              ; preds = %._crit_edge3618, %._crit_edge3600
  br i1 %.not, label %358, label %377

358:                                              ; preds = %357
  %359 = load i64, ptr %2, align 8, !tbaa !5
  %360 = sub nsw i64 %359, %86
  store i64 %360, ptr %17, align 8, !tbaa !5
  %361 = fdiv float 1.000000e+00, %135
  store float %361, ptr %19, align 4, !tbaa !12
  %362 = mul nsw i64 %119, %40
  %363 = getelementptr %struct.complex, ptr %93, i64 %362
  %364 = call i32 @f2c_csscal(ptr noundef nonnull %17, ptr noundef nonnull %19, ptr noundef %363, ptr noundef nonnull @c__1) #4
  %365 = load i64, ptr %31, align 8, !tbaa !5
  %366 = icmp sgt i64 %365, 0
  br i1 %366, label %367, label %377

367:                                              ; preds = %358
  %368 = load i64, ptr %2, align 8, !tbaa !5
  %369 = sub nsw i64 %368, %86
  store i64 %369, ptr %17, align 8, !tbaa !5
  store <2 x float> <float -1.000000e+00, float -0.000000e+00>, ptr %20, align 8, !tbaa !12
  %370 = sub nsw i64 %50, %365
  %371 = getelementptr %struct.complex, ptr %39, i64 %370
  %372 = getelementptr %struct.complex, ptr %371, i64 %127
  %373 = sub nsw i64 %119, %365
  %374 = mul nsw i64 %373, %40
  %375 = getelementptr %struct.complex, ptr %93, i64 %374
  %376 = call i32 @f2c_cgerc(ptr noundef nonnull %17, ptr noundef nonnull %31, ptr noundef nonnull %20, ptr noundef %363, ptr noundef nonnull @c__1, ptr noundef %372, ptr noundef nonnull @c__1, ptr noundef %375, ptr noundef nonnull %10) #4
  br label %377

377:                                              ; preds = %358, %367, %357
  %378 = sub i64 %119, %123
  %379 = load i64, ptr %29, align 8, !tbaa !5
  %380 = mul nsw i64 %123, %34
  %381 = getelementptr %struct.complex, ptr %36, i64 %378
  %382 = getelementptr %struct.complex, ptr %381, i64 %380
  %383 = getelementptr %struct.complex, ptr %382, i64 %379
  %384 = load <2 x float>, ptr %383, align 4, !tbaa !12
  store <2 x float> %384, ptr %30, align 8, !tbaa !12
  %.pre4444 = load i64, ptr %4, align 8, !tbaa !5
  br label %385

385:                                              ; preds = %132, %377
  %386 = phi i64 [ %.pre4444, %377 ], [ %118, %132 ]
  %.03519 = phi i64 [ %.0.ph, %377 ], [ 0, %132 ]
  %.not32733515 = phi i1 [ false, %377 ], [ true, %132 ]
  %.1324033963420 = phi i64 [ %119, %377 ], [ %131, %132 ]
  %.1318233993418 = phi i64 [ %120, %377 ], [ %.03181.lcssa, %132 ]
  %.1317734023416 = phi i64 [ %123, %377 ], [ %.03176.lcssa, %132 ]
  %.1317334053414 = phi i64 [ %126, %377 ], [ %.03172.lcssa, %132 ]
  %387 = add nsw i64 %386, -1
  store i64 %387, ptr %17, align 8, !tbaa !5
  %.not33053714 = icmp slt i64 %386, 2
  br i1 %.not33053714, label %._crit_edge3719, label %.lr.ph3718

.lr.ph3718:                                       ; preds = %385
  %388 = mul nsw i64 %.1324033963420, %37
  %389 = add i64 %.1324033963420, 1
  %invariant.gep5423 = getelementptr %struct.complex, ptr %39, i64 %388
  br label %390

390:                                              ; preds = %.lr.ph3718, %.loopexit3486
  %.23193.neg3716 = phi i64 [ -1, %.lr.ph3718 ], [ %471, %.loopexit3486 ]
  %.231933715 = phi i64 [ 1, %.lr.ph3718 ], [ %609, %.loopexit3486 ]
  %.pre4446 = load i64, ptr %2, align 8, !tbaa !5
  %.pre4447 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %.not32733515, label %466, label %391

391:                                              ; preds = %390
  %392 = sub nsw i64 %.1324033963420, %.231933715
  %393 = add nsw i64 %.pre4447, %392
  %394 = icmp slt i64 %393, %.pre4446
  %395 = icmp sgt i64 %392, 1
  %or.cond3381 = and i1 %395, %394
  br i1 %or.cond3381, label %396, label %466

396:                                              ; preds = %391
  %397 = mul nsw i64 %393, %34
  %gep3711 = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %.231933715
  %398 = getelementptr %struct.complex, ptr %gep3711, i64 %397
  %399 = sub nsw i64 %393, %86
  %400 = getelementptr inbounds float, ptr %44, i64 %399
  %401 = getelementptr inbounds %struct.complex, ptr %43, i64 %399
  %402 = call i32 @clartg_(ptr noundef %398, ptr noundef nonnull %30, ptr noundef nonnull %400, ptr noundef nonnull %401, ptr noundef nonnull %26) #4
  %403 = sub nsw i64 %50, %.231933715
  %gep5424 = getelementptr %struct.complex, ptr %invariant.gep5423, i64 %403
  %404 = load float, ptr %gep5424, align 4, !tbaa !9
  %405 = fneg float %404
  %406 = getelementptr inbounds i8, ptr %gep5424, i64 4
  %407 = load float, ptr %406, align 4, !tbaa !13
  %408 = fneg float %407
  store i64 %392, ptr %16, align 8, !tbaa !5
  %409 = load i64, ptr %3, align 8, !tbaa !5
  %410 = sub i64 %392, %86
  %411 = add i64 %410, %409
  store i64 %411, ptr %18, align 8, !tbaa !5
  %412 = getelementptr inbounds float, ptr %44, i64 %411
  %413 = load float, ptr %412, align 4, !tbaa !12
  %414 = getelementptr inbounds %struct.complex, ptr %43, i64 %411
  %415 = load <2 x float>, ptr %30, align 8, !tbaa !12
  %416 = insertelement <2 x float> poison, float %408, i64 0
  %417 = insertelement <2 x float> %416, float %407, i64 1
  %418 = fmul <2 x float> %415, %417
  %419 = shufflevector <2 x float> %418, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %420 = insertelement <2 x float> poison, float %405, i64 0
  %421 = shufflevector <2 x float> %420, <2 x float> poison, <2 x i32> zeroinitializer
  %422 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %421, <2 x float> %415, <2 x float> %419)
  store <2 x float> %422, ptr %20, align 8, !tbaa !12
  call void @r_cnjg(ptr noundef nonnull %22, ptr noundef nonnull %414) #4
  %423 = load i64, ptr %3, align 8, !tbaa !5
  %424 = add nsw i64 %423, %392
  %425 = mul nsw i64 %424, %34
  %426 = add nsw i64 %425, 1
  %427 = load float, ptr %22, align 8, !tbaa !9
  %428 = getelementptr inbounds %struct.complex, ptr %36, i64 %426
  %429 = load float, ptr %89, align 4, !tbaa !13
  %430 = fneg float %429
  %431 = load i64, ptr %16, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.complex, ptr %43, i64 %431
  %433 = insertelement <2 x float> poison, float %413, i64 0
  %434 = shufflevector <2 x float> %433, <2 x float> poison, <2 x i32> zeroinitializer
  %435 = fmul <2 x float> %422, %434
  %436 = load <2 x float>, ptr %428, align 4, !tbaa !12
  %437 = insertelement <2 x float> poison, float %429, i64 0
  %438 = insertelement <2 x float> %437, float %430, i64 1
  %439 = fmul <2 x float> %436, %438
  %440 = shufflevector <2 x float> %439, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %441 = insertelement <2 x float> poison, float %427, i64 0
  %442 = shufflevector <2 x float> %441, <2 x float> poison, <2 x i32> zeroinitializer
  %443 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %442, <2 x float> %436, <2 x float> %440)
  %444 = fsub <2 x float> %435, %443
  store <2 x float> %444, ptr %432, align 4, !tbaa !12
  store i64 %426, ptr %16, align 8, !tbaa !5
  %445 = sub nsw i64 %424, %86
  %446 = getelementptr inbounds %struct.complex, ptr %43, i64 %445
  %447 = load float, ptr %446, align 4, !tbaa !9
  %448 = getelementptr inbounds i8, ptr %446, i64 4
  %449 = load float, ptr %448, align 4, !tbaa !13
  %450 = fneg float %449
  %451 = insertelement <2 x float> poison, float %449, i64 0
  %452 = insertelement <2 x float> %451, float %450, i64 1
  %453 = fmul <2 x float> %422, %452
  %454 = shufflevector <2 x float> %453, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %455 = insertelement <2 x float> poison, float %447, i64 0
  %456 = shufflevector <2 x float> %455, <2 x float> poison, <2 x i32> zeroinitializer
  %457 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %456, <2 x float> %422, <2 x float> %454)
  store i64 %445, ptr %15, align 8, !tbaa !5
  %458 = getelementptr inbounds float, ptr %44, i64 %445
  %459 = load float, ptr %458, align 4, !tbaa !12
  %gep5426 = getelementptr %struct.complex, ptr %invariant.gep5425, i64 %425
  %460 = load <2 x float>, ptr %gep5426, align 4, !tbaa !12
  %461 = insertelement <2 x float> poison, float %459, i64 0
  %462 = shufflevector <2 x float> %461, <2 x float> poison, <2 x i32> zeroinitializer
  %463 = fmul <2 x float> %462, %460
  store <2 x float> %463, ptr %21, align 8, !tbaa !12
  %464 = fadd <2 x float> %457, %463
  store <2 x float> %464, ptr %20, align 8, !tbaa !12
  store <2 x float> %464, ptr %428, align 4, !tbaa !12
  %465 = load <2 x float>, ptr %26, align 8, !tbaa !12
  store <2 x float> %465, ptr %30, align 8, !tbaa !12
  %.pre4445 = load i64, ptr %2, align 8, !tbaa !5
  br label %466

466:                                              ; preds = %391, %396, %390
  %467 = phi i64 [ %.pre4447, %391 ], [ %423, %396 ], [ %.pre4447, %390 ]
  %468 = phi i64 [ %.pre4446, %391 ], [ %.pre4445, %396 ], [ %.pre4446, %390 ]
  %469 = sub nsw i64 %.231933715, %.1318233993418
  %470 = add nsw i64 %469, 2
  %471 = xor i64 %.231933715, -1
  %472 = add i64 %.1324033963420, %471
  %473 = icmp slt i64 %469, 0
  %474 = select i1 %473, i64 1, i64 %470
  %475 = load i64, ptr %29, align 8, !tbaa !5
  %476 = mul nsw i64 %475, %474
  %477 = add nsw i64 %472, %476
  %478 = sub i64 %468, %477
  %479 = add nsw i64 %478, %467
  %480 = sdiv i64 %479, %475
  store i64 %480, ptr %27, align 8, !tbaa !5
  %481 = add nsw i64 %480, -1
  %482 = mul nsw i64 %481, %475
  %483 = add nsw i64 %482, %477
  br i1 %.not32733515, label %489, label %484

484:                                              ; preds = %466
  %485 = shl i64 %467, 1
  %486 = add i64 %389, %.23193.neg3716
  %487 = add i64 %486, %485
  %488 = call i64 @llvm.smax.i64(i64 %477, i64 %487)
  br label %489

489:                                              ; preds = %466, %484
  %.03166 = phi i64 [ %488, %484 ], [ %477, %466 ]
  %490 = add i64 %467, %468
  %491 = sub i64 %490, %.03166
  %492 = sdiv i64 %491, %475
  store i64 %492, ptr %32, align 8, !tbaa !5
  store i64 %483, ptr %16, align 8, !tbaa !5
  store i64 %475, ptr %18, align 8, !tbaa !5
  %493 = icmp slt i64 %475, 0
  %494 = icmp sge i64 %.03166, %483
  %495 = icmp sle i64 %.03166, %483
  %.in33153682 = select i1 %493, i1 %494, i1 %495
  br i1 %.in33153682, label %.lr.ph3685, label %523

.lr.ph3685:                                       ; preds = %489, %.lr.ph3685
  %.532203683 = phi i64 [ %520, %.lr.ph3685 ], [ %.03166, %489 ]
  %496 = sub nsw i64 %.532203683, %86
  %497 = add nsw i64 %.532203683, 1
  %498 = mul nsw i64 %497, %34
  %499 = add nsw i64 %498, 1
  %500 = getelementptr inbounds %struct.complex, ptr %43, i64 %496
  %501 = load float, ptr %500, align 4, !tbaa !9
  %502 = getelementptr inbounds %struct.complex, ptr %36, i64 %499
  %503 = getelementptr inbounds i8, ptr %500, i64 4
  %504 = load float, ptr %503, align 4, !tbaa !13
  %505 = fneg float %504
  %506 = load <2 x float>, ptr %502, align 4, !tbaa !12
  %507 = insertelement <2 x float> poison, float %504, i64 0
  %508 = insertelement <2 x float> %507, float %505, i64 1
  %509 = fmul <2 x float> %506, %508
  %510 = shufflevector <2 x float> %509, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %511 = insertelement <2 x float> poison, float %501, i64 0
  %512 = shufflevector <2 x float> %511, <2 x float> poison, <2 x i32> zeroinitializer
  %513 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %512, <2 x float> %506, <2 x float> %510)
  store <2 x float> %513, ptr %500, align 4, !tbaa !12
  %514 = getelementptr inbounds float, ptr %44, i64 %496
  %515 = load float, ptr %514, align 4, !tbaa !12
  %516 = load <2 x float>, ptr %502, align 4, !tbaa !12
  %517 = insertelement <2 x float> poison, float %515, i64 0
  %518 = shufflevector <2 x float> %517, <2 x float> poison, <2 x i32> zeroinitializer
  %519 = fmul <2 x float> %518, %516
  store <2 x float> %519, ptr %502, align 4, !tbaa !12
  %520 = add nsw i64 %.532203683, %475
  %521 = icmp sge i64 %520, %483
  %522 = icmp sle i64 %520, %483
  %.in3315 = select i1 %493, i1 %521, i1 %522
  br i1 %.in3315, label %.lr.ph3685, label %._crit_edge3686, !llvm.loop !25

._crit_edge3686:                                  ; preds = %.lr.ph3685
  store i64 %499, ptr %15, align 8, !tbaa !5
  store <2 x float> %519, ptr %20, align 8, !tbaa !12
  br label %523

523:                                              ; preds = %._crit_edge3686, %489
  %524 = icmp sgt i64 %492, 0
  br i1 %524, label %525, label %531

525:                                              ; preds = %523
  %526 = mul nsw i64 %.03166, %34
  %gep3713 = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %526
  %527 = sub nsw i64 %.03166, %86
  %528 = getelementptr inbounds %struct.complex, ptr %43, i64 %527
  %529 = getelementptr inbounds float, ptr %44, i64 %527
  %530 = call i32 @clargv_(ptr noundef nonnull %32, ptr noundef %gep3713, ptr noundef nonnull %33, ptr noundef nonnull %528, ptr noundef nonnull %29, ptr noundef nonnull %529, ptr noundef nonnull %29) #4
  %.pre4448 = load i64, ptr %27, align 8, !tbaa !5
  %.pre4451.pre = load i64, ptr %3, align 8, !tbaa !5
  br label %531

531:                                              ; preds = %525, %523
  %.pre4451 = phi i64 [ %.pre4451.pre, %525 ], [ %467, %523 ]
  %532 = phi i64 [ %.pre4448, %525 ], [ %480, %523 ]
  %533 = icmp sgt i64 %532, 0
  br i1 %533, label %534, label %560

534:                                              ; preds = %531
  %535 = add nsw i64 %.pre4451, -1
  store i64 %535, ptr %18, align 8, !tbaa !5
  %.not33163690 = icmp slt i64 %.pre4451, 2
  %.pre4500 = mul nsw i64 %477, %34
  br i1 %.not33163690, label %.._crit_edge3694_crit_edge, label %.lr.ph3693

.._crit_edge3694_crit_edge:                       ; preds = %534
  %.pre4502 = add nsw i64 %477, 1
  %.pre4504 = mul nsw i64 %.pre4502, %34
  %.pre4506 = sub nsw i64 %477, %86
  br label %._crit_edge3694

.lr.ph3693:                                       ; preds = %534
  %invariant.gep3695 = getelementptr %struct.complex, ptr %36, i64 %.pre4500
  %536 = add nsw i64 %477, 1
  %537 = mul nsw i64 %536, %34
  %invariant.gep3697 = getelementptr %struct.complex, ptr %36, i64 %537
  %538 = sub nsw i64 %477, %86
  %539 = getelementptr inbounds float, ptr %44, i64 %538
  %540 = getelementptr inbounds %struct.complex, ptr %43, i64 %538
  br label %541

541:                                              ; preds = %.lr.ph3693, %541
  %.031863691 = phi i64 [ 1, %.lr.ph3693 ], [ %547, %541 ]
  %542 = load i64, ptr %29, align 8, !tbaa !5
  %543 = sub nsw i64 %542, %.031863691
  %gep3696 = getelementptr %struct.complex, ptr %invariant.gep3695, i64 %543
  %544 = load i64, ptr %3, align 8, !tbaa !5
  %545 = sub nsw i64 %544, %.031863691
  %gep3698 = getelementptr %struct.complex, ptr %invariant.gep3697, i64 %545
  %546 = call i32 @clartv_(ptr noundef nonnull %27, ptr noundef %gep3696, ptr noundef nonnull %33, ptr noundef %gep3698, ptr noundef nonnull %33, ptr noundef nonnull %539, ptr noundef nonnull %540, ptr noundef nonnull %29) #4
  %547 = add nuw nsw i64 %.031863691, 1
  %548 = load i64, ptr %18, align 8, !tbaa !5
  %.not3316.not = icmp slt i64 %.031863691, %548
  br i1 %.not3316.not, label %541, label %._crit_edge3694.loopexit, !llvm.loop !26

._crit_edge3694.loopexit:                         ; preds = %541
  %.pre4449 = load i64, ptr %3, align 8, !tbaa !5
  br label %._crit_edge3694

._crit_edge3694:                                  ; preds = %.._crit_edge3694_crit_edge, %._crit_edge3694.loopexit
  %.pre-phi4507 = phi i64 [ %.pre4506, %.._crit_edge3694_crit_edge ], [ %538, %._crit_edge3694.loopexit ]
  %.pre-phi4505 = phi i64 [ %.pre4504, %.._crit_edge3694_crit_edge ], [ %537, %._crit_edge3694.loopexit ]
  %549 = phi i64 [ %.pre4451, %.._crit_edge3694_crit_edge ], [ %.pre4449, %._crit_edge3694.loopexit ]
  %550 = load i64, ptr %29, align 8, !tbaa !5
  %551 = getelementptr %struct.complex, ptr %36, i64 %550
  %552 = getelementptr %struct.complex, ptr %551, i64 %.pre4500
  %553 = getelementptr %struct.complex, ptr %551, i64 %.pre-phi4505
  %554 = getelementptr %struct.complex, ptr %36, i64 %549
  %555 = getelementptr %struct.complex, ptr %554, i64 %.pre-phi4505
  %556 = getelementptr inbounds float, ptr %44, i64 %.pre-phi4507
  %557 = getelementptr inbounds %struct.complex, ptr %43, i64 %.pre-phi4507
  %558 = call i32 @clar2v_(ptr noundef nonnull %27, ptr noundef %552, ptr noundef %553, ptr noundef %555, ptr noundef nonnull %33, ptr noundef nonnull %556, ptr noundef nonnull %557, ptr noundef nonnull %29) #4
  %559 = call i32 @clacgv_(ptr noundef nonnull %27, ptr noundef nonnull %557, ptr noundef nonnull %29) #4
  %.pre4450 = load i64, ptr %3, align 8, !tbaa !5
  br label %560

560:                                              ; preds = %._crit_edge3694, %531
  %561 = phi i64 [ %.pre4450, %._crit_edge3694 ], [ %.pre4451, %531 ]
  %562 = load i64, ptr %4, align 8, !tbaa !5
  %563 = add nsw i64 %.23193.neg3716, 1
  %564 = add i64 %563, %562
  store i64 %564, ptr %18, align 8, !tbaa !5
  %.not3317.not3700 = icmp sgt i64 %561, %564
  br i1 %.not3317.not3700, label %.lr.ph3704, label %._crit_edge3705

.lr.ph3704:                                       ; preds = %560
  %565 = sub nsw i64 %477, %86
  %566 = getelementptr inbounds float, ptr %44, i64 %565
  %567 = getelementptr inbounds %struct.complex, ptr %43, i64 %565
  br label %568

568:                                              ; preds = %.lr.ph3704, %585
  %569 = phi i64 [ %564, %.lr.ph3704 ], [ %586, %585 ]
  %.13187.in3701 = phi i64 [ %561, %.lr.ph3704 ], [ %.131873702, %585 ]
  %.131873702 = add nsw i64 %.13187.in3701, -1
  %570 = load i64, ptr %2, align 8, !tbaa !5
  %571 = sub i64 %.131873702, %477
  %572 = add i64 %571, %570
  %573 = load i64, ptr %29, align 8, !tbaa !5
  %574 = sdiv i64 %572, %573
  store i64 %574, ptr %32, align 8, !tbaa !5
  %575 = icmp sgt i64 %574, 0
  br i1 %575, label %576, label %585

576:                                              ; preds = %568
  %reass.sub4271 = sub i64 %477, %.13187.in3701
  %577 = add i64 %reass.sub4271, 1
  %578 = add i64 %577, %573
  %579 = mul nsw i64 %578, %34
  %580 = getelementptr %struct.complex, ptr %36, i64 %.131873702
  %581 = getelementptr %struct.complex, ptr %580, i64 %579
  %582 = getelementptr %struct.complex, ptr %36, i64 %.13187.in3701
  %583 = getelementptr %struct.complex, ptr %582, i64 %579
  %584 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %581, ptr noundef nonnull %33, ptr noundef %583, ptr noundef nonnull %33, ptr noundef nonnull %566, ptr noundef nonnull %567, ptr noundef nonnull %29) #4
  %.pre4452 = load i64, ptr %18, align 8, !tbaa !5
  br label %585

585:                                              ; preds = %568, %576
  %586 = phi i64 [ %569, %568 ], [ %.pre4452, %576 ]
  %.not3317.not = icmp sgt i64 %.131873702, %586
  br i1 %.not3317.not, label %568, label %._crit_edge3705, !llvm.loop !27

._crit_edge3705:                                  ; preds = %585, %560
  br i1 %.not, label %587, label %.loopexit3486

587:                                              ; preds = %._crit_edge3705
  store i64 %483, ptr %18, align 8, !tbaa !5
  %588 = load i64, ptr %29, align 8, !tbaa !5
  store i64 %588, ptr %16, align 8, !tbaa !5
  %589 = icmp slt i64 %588, 0
  %590 = icmp slt i64 %482, 1
  %591 = icmp sgt i64 %482, -1
  %.in33183706 = select i1 %589, i1 %590, i1 %591
  br i1 %.in33183706, label %.lr.ph3709, label %.loopexit3486

.lr.ph3709:                                       ; preds = %587, %.lr.ph3709
  %.632213707 = phi i64 [ %604, %.lr.ph3709 ], [ %477, %587 ]
  %592 = load i64, ptr %2, align 8, !tbaa !5
  %593 = sub nsw i64 %592, %86
  store i64 %593, ptr %15, align 8, !tbaa !5
  %594 = sub nsw i64 %.632213707, %86
  %595 = getelementptr inbounds %struct.complex, ptr %43, i64 %594
  call void @r_cnjg(ptr noundef nonnull %20, ptr noundef nonnull %595) #4
  %596 = mul nsw i64 %.632213707, %40
  %597 = getelementptr %struct.complex, ptr %93, i64 %596
  %598 = add nsw i64 %.632213707, 1
  %599 = mul nsw i64 %598, %40
  %600 = getelementptr %struct.complex, ptr %93, i64 %599
  %601 = getelementptr inbounds float, ptr %44, i64 %594
  %602 = call i32 @crot_(ptr noundef nonnull %15, ptr noundef %597, ptr noundef nonnull @c__1, ptr noundef %600, ptr noundef nonnull @c__1, ptr noundef nonnull %601, ptr noundef nonnull %20) #4
  %603 = load i64, ptr %16, align 8, !tbaa !5
  %604 = add nsw i64 %603, %.632213707
  %605 = icmp slt i64 %603, 0
  %606 = load i64, ptr %18, align 8
  %607 = icmp sge i64 %604, %606
  %608 = icmp sle i64 %604, %606
  %.in3318 = select i1 %605, i1 %607, i1 %608
  br i1 %.in3318, label %.lr.ph3709, label %.loopexit3486, !llvm.loop !28

.loopexit3486:                                    ; preds = %.lr.ph3709, %587, %._crit_edge3705
  %609 = add nuw nsw i64 %.231933715, 1
  %610 = load i64, ptr %17, align 8, !tbaa !5
  %.not3305.not = icmp slt i64 %.231933715, %610
  br i1 %.not3305.not, label %390, label %._crit_edge3719, !llvm.loop !29

._crit_edge3719:                                  ; preds = %.loopexit3486, %385
  br i1 %.not32733515, label %636, label %611

611:                                              ; preds = %._crit_edge3719
  %612 = load i64, ptr %2, align 8, !tbaa !5
  %613 = icmp sle i64 %.1317334053414, %612
  %614 = load i64, ptr %31, align 8
  %615 = icmp sgt i64 %614, 0
  %or.cond = select i1 %613, i1 %615, i1 false
  br i1 %or.cond, label %616, label %636

616:                                              ; preds = %611
  %617 = sub nsw i64 %.1324033963420, %614
  store i64 %617, ptr %17, align 8, !tbaa !5
  %618 = sub nsw i64 %50, %614
  %619 = mul nsw i64 %.1324033963420, %37
  %620 = getelementptr %struct.complex, ptr %39, i64 %618
  %621 = getelementptr %struct.complex, ptr %620, i64 %619
  %622 = load float, ptr %621, align 4, !tbaa !9
  %623 = fneg float %622
  %624 = getelementptr inbounds i8, ptr %621, i64 4
  %625 = load float, ptr %624, align 4, !tbaa !13
  %626 = fneg float %625
  %627 = load <2 x float>, ptr %30, align 8, !tbaa !12
  %628 = insertelement <2 x float> poison, float %626, i64 0
  %629 = insertelement <2 x float> %628, float %625, i64 1
  %630 = fmul <2 x float> %627, %629
  %631 = shufflevector <2 x float> %630, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %632 = insertelement <2 x float> poison, float %623, i64 0
  %633 = shufflevector <2 x float> %632, <2 x float> poison, <2 x i32> zeroinitializer
  %634 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %633, <2 x float> %627, <2 x float> %631)
  store <2 x float> %634, ptr %20, align 8, !tbaa !12
  %635 = getelementptr inbounds %struct.complex, ptr %43, i64 %617
  store <2 x float> %634, ptr %635, align 4, !tbaa !12
  br label %636

636:                                              ; preds = %611, %616, %._crit_edge3719
  %637 = load i64, ptr %4, align 8, !tbaa !5
  %638 = icmp sgt i64 %637, 0
  br i1 %638, label %.lr.ph3740.preheader, label %._crit_edge3767.thread

.lr.ph3740.preheader:                             ; preds = %636
  %. = select i1 %.not32733515, i64 1, i64 2
  br label %.lr.ph3740

.lr.ph3740:                                       ; preds = %.lr.ph3740.preheader, %736
  %.331943738 = phi i64 [ %737, %736 ], [ %637, %.lr.ph3740.preheader ]
  %639 = sub nsw i64 %.331943738, %.1318233993418
  %640 = add nsw i64 %639, 1
  %641 = xor i64 %.331943738, -1
  %642 = add i64 %.1324033963420, %641
  %643 = load i64, ptr %29, align 8, !tbaa !5
  %644 = icmp slt i64 %639, %.
  %645 = select i1 %644, i64 %., i64 %640
  %646 = mul nsw i64 %643, %645
  %647 = add nsw i64 %642, %646
  store i64 %., ptr %17, align 8
  store i64 %640, ptr %16, align 8
  %648 = load i64, ptr %4, align 8, !tbaa !5
  %649 = sub nsw i64 %648, %.331943738
  %650 = icmp sgt i64 %649, 0
  br i1 %650, label %.lr.ph3722, label %._crit_edge3723

.lr.ph3722:                                       ; preds = %.lr.ph3740
  %651 = add i64 %647, 1
  br label %652

652:                                              ; preds = %.lr.ph3722, %672
  %.231883720 = phi i64 [ %649, %.lr.ph3722 ], [ %673, %672 ]
  %653 = load i64, ptr %2, align 8, !tbaa !5
  %654 = load i64, ptr %3, align 8, !tbaa !5
  %655 = sub i64 %.231883720, %647
  %656 = add i64 %655, %653
  %657 = add i64 %656, %654
  %658 = load i64, ptr %29, align 8, !tbaa !5
  %659 = sdiv i64 %657, %658
  store i64 %659, ptr %32, align 8, !tbaa !5
  %660 = icmp sgt i64 %659, 0
  br i1 %660, label %661, label %672

661:                                              ; preds = %652
  %662 = sub i64 %651, %.231883720
  %663 = mul nsw i64 %662, %34
  %664 = getelementptr %struct.complex, ptr %36, i64 %.231883720
  %665 = getelementptr %struct.complex, ptr %664, i64 %663
  %666 = getelementptr i8, ptr %664, i64 8
  %667 = getelementptr %struct.complex, ptr %666, i64 %663
  %668 = sub nsw i64 %647, %654
  %669 = getelementptr inbounds float, ptr %44, i64 %668
  %670 = getelementptr inbounds %struct.complex, ptr %43, i64 %668
  %671 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %665, ptr noundef nonnull %33, ptr noundef %667, ptr noundef nonnull %33, ptr noundef nonnull %669, ptr noundef nonnull %670, ptr noundef nonnull %29) #4
  br label %672

672:                                              ; preds = %652, %661
  %673 = add nsw i64 %.231883720, -1
  %674 = icmp sgt i64 %.231883720, 1
  br i1 %674, label %652, label %._crit_edge3723.loopexit, !llvm.loop !30

._crit_edge3723.loopexit:                         ; preds = %672
  %.pre4453 = load i64, ptr %29, align 8, !tbaa !5
  br label %._crit_edge3723

._crit_edge3723:                                  ; preds = %._crit_edge3723.loopexit, %.lr.ph3740
  %675 = phi i64 [ %.pre4453, %._crit_edge3723.loopexit ], [ %643, %.lr.ph3740 ]
  %676 = load i64, ptr %2, align 8, !tbaa !5
  %677 = sub i64 %676, %647
  %678 = load i64, ptr %3, align 8, !tbaa !5
  %679 = add nsw i64 %677, %678
  %680 = sdiv i64 %679, %675
  store i64 %680, ptr %27, align 8, !tbaa !5
  %681 = add nsw i64 %680, -1
  %682 = mul nsw i64 %681, %675
  %683 = add nsw i64 %682, %647
  %684 = icmp sgt i64 %675, 0
  %685 = icmp sgt i64 %682, -1
  %686 = icmp slt i64 %682, 1
  %.in33113724 = select i1 %684, i1 %685, i1 %686
  br i1 %.in33113724, label %.lr.ph3727, label %697

.lr.ph3727:                                       ; preds = %._crit_edge3723, %.lr.ph3727
  %.732223725 = phi i64 [ %694, %.lr.ph3727 ], [ %683, %._crit_edge3723 ]
  %687 = sub nsw i64 %.732223725, %678
  %688 = getelementptr inbounds %struct.complex, ptr %43, i64 %687
  %689 = getelementptr inbounds %struct.complex, ptr %43, i64 %.732223725
  %690 = load <2 x float>, ptr %688, align 4, !tbaa !12
  store <2 x float> %690, ptr %689, align 4, !tbaa !12
  %691 = getelementptr inbounds float, ptr %44, i64 %687
  %692 = load float, ptr %691, align 4, !tbaa !12
  %693 = getelementptr inbounds float, ptr %44, i64 %.732223725
  store float %692, ptr %693, align 4, !tbaa !12
  %694 = sub i64 %.732223725, %675
  %695 = icmp sge i64 %694, %647
  %696 = icmp sle i64 %694, %647
  %.in3311 = select i1 %684, i1 %695, i1 %696
  br i1 %.in3311, label %.lr.ph3727, label %._crit_edge3728, !llvm.loop !31

._crit_edge3728:                                  ; preds = %.lr.ph3727
  store i64 %.732223725, ptr %18, align 8, !tbaa !5
  store i64 %687, ptr %15, align 8, !tbaa !5
  br label %697

697:                                              ; preds = %._crit_edge3728, %._crit_edge3723
  store i64 %683, ptr %16, align 8, !tbaa !5
  store i64 %675, ptr %17, align 8, !tbaa !5
  %698 = icmp slt i64 %675, 0
  %.in33123730 = select i1 %698, i1 %686, i1 %685
  br i1 %.in33123730, label %.lr.ph3733, label %725

.lr.ph3733:                                       ; preds = %697, %.lr.ph3733
  %.832233731 = phi i64 [ %722, %.lr.ph3733 ], [ %647, %697 ]
  %699 = add nsw i64 %.832233731, 1
  %700 = mul nsw i64 %699, %34
  %701 = add nsw i64 %700, 1
  %702 = getelementptr inbounds %struct.complex, ptr %43, i64 %.832233731
  %703 = load float, ptr %702, align 4, !tbaa !9
  %704 = getelementptr inbounds %struct.complex, ptr %36, i64 %701
  %705 = getelementptr inbounds i8, ptr %702, i64 4
  %706 = load float, ptr %705, align 4, !tbaa !13
  %707 = fneg float %706
  %708 = load <2 x float>, ptr %704, align 4, !tbaa !12
  %709 = insertelement <2 x float> poison, float %706, i64 0
  %710 = insertelement <2 x float> %709, float %707, i64 1
  %711 = fmul <2 x float> %708, %710
  %712 = shufflevector <2 x float> %711, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %713 = insertelement <2 x float> poison, float %703, i64 0
  %714 = shufflevector <2 x float> %713, <2 x float> poison, <2 x i32> zeroinitializer
  %715 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %714, <2 x float> %708, <2 x float> %712)
  store <2 x float> %715, ptr %702, align 4, !tbaa !12
  %716 = getelementptr inbounds float, ptr %44, i64 %.832233731
  %717 = load float, ptr %716, align 4, !tbaa !12
  %718 = load <2 x float>, ptr %704, align 4, !tbaa !12
  %719 = insertelement <2 x float> poison, float %717, i64 0
  %720 = shufflevector <2 x float> %719, <2 x float> poison, <2 x i32> zeroinitializer
  %721 = fmul <2 x float> %720, %718
  store <2 x float> %721, ptr %704, align 4, !tbaa !12
  %722 = add nsw i64 %.832233731, %675
  %723 = icmp sge i64 %722, %683
  %724 = icmp sle i64 %722, %683
  %.in3312 = select i1 %698, i1 %723, i1 %724
  br i1 %.in3312, label %.lr.ph3733, label %._crit_edge3734, !llvm.loop !32

._crit_edge3734:                                  ; preds = %.lr.ph3733
  store i64 %701, ptr %18, align 8, !tbaa !5
  store i64 %.832233731, ptr %15, align 8, !tbaa !5
  store <2 x float> %721, ptr %20, align 8, !tbaa !12
  br label %725

725:                                              ; preds = %._crit_edge3734, %697
  br i1 %.not32733515, label %736, label %726

726:                                              ; preds = %725
  %727 = sub nsw i64 %.1324033963420, %.331943738
  %728 = sub nsw i64 %676, %678
  %729 = icmp sge i64 %727, %728
  %730 = load i64, ptr %31, align 8
  %.not3313 = icmp sgt i64 %.331943738, %730
  %or.cond3382 = select i1 %729, i1 true, i1 %.not3313
  br i1 %or.cond3382, label %736, label %731

731:                                              ; preds = %726
  %732 = add nsw i64 %678, %727
  store i64 %732, ptr %17, align 8, !tbaa !5
  store i64 %727, ptr %16, align 8, !tbaa !5
  %733 = getelementptr inbounds %struct.complex, ptr %43, i64 %727
  %734 = getelementptr inbounds %struct.complex, ptr %43, i64 %732
  %735 = load <2 x float>, ptr %733, align 4, !tbaa !12
  store <2 x float> %735, ptr %734, align 4, !tbaa !12
  br label %736

736:                                              ; preds = %725, %731, %726
  %737 = add nsw i64 %.331943738, -1
  %738 = icmp sgt i64 %.331943738, 1
  br i1 %738, label %.lr.ph3740, label %._crit_edge3741, !llvm.loop !33

._crit_edge3741:                                  ; preds = %736
  %.pre4454 = load i64, ptr %4, align 8, !tbaa !5
  %739 = icmp sgt i64 %.pre4454, 0
  br i1 %739, label %.lr.ph3766, label %._crit_edge3767.thread

.lr.ph3766:                                       ; preds = %._crit_edge3741, %.loopexit3485
  %.431953764 = phi i64 [ %828, %.loopexit3485 ], [ %.pre4454, %._crit_edge3741 ]
  store i64 1, ptr %17, align 8, !tbaa !5
  %740 = sub nsw i64 %.431953764, %.1318233993418
  %741 = add nsw i64 %740, 1
  store i64 %741, ptr %16, align 8, !tbaa !5
  %742 = xor i64 %.431953764, -1
  %743 = add i64 %.1324033963420, %742
  %744 = icmp slt i64 %740, 1
  %745 = select i1 %744, i64 1, i64 %741
  %746 = load i64, ptr %29, align 8, !tbaa !5
  %747 = mul nsw i64 %746, %745
  %748 = add nsw i64 %743, %747
  %749 = load i64, ptr %2, align 8, !tbaa !5
  %750 = sub i64 %749, %748
  %751 = load i64, ptr %3, align 8, !tbaa !5
  %752 = add nsw i64 %750, %751
  %753 = sdiv i64 %752, %746
  store i64 %753, ptr %27, align 8, !tbaa !5
  %754 = add nsw i64 %753, -1
  %755 = mul nsw i64 %754, %746
  %756 = add nsw i64 %755, %748
  %757 = icmp sgt i64 %753, 0
  br i1 %757, label %758, label %782

758:                                              ; preds = %.lr.ph3766
  %759 = mul nsw i64 %748, %34
  %gep3763 = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %759
  %760 = getelementptr inbounds %struct.complex, ptr %43, i64 %748
  %761 = getelementptr inbounds float, ptr %44, i64 %748
  %762 = call i32 @clargv_(ptr noundef nonnull %27, ptr noundef %gep3763, ptr noundef nonnull %33, ptr noundef nonnull %760, ptr noundef nonnull %29, ptr noundef nonnull %761, ptr noundef nonnull %29) #4
  %763 = load i64, ptr %3, align 8, !tbaa !5
  %764 = add nsw i64 %763, -1
  store i64 %764, ptr %17, align 8, !tbaa !5
  %invariant.gep3742 = getelementptr %struct.complex, ptr %36, i64 %759
  %.not33083744 = icmp slt i64 %763, 2
  %.pre4496 = add nsw i64 %748, 1
  %.pre4498 = mul nsw i64 %.pre4496, %34
  br i1 %.not33083744, label %._crit_edge3748, label %.lr.ph3747

.lr.ph3747:                                       ; preds = %758
  %invariant.gep3749 = getelementptr %struct.complex, ptr %36, i64 %.pre4498
  br label %765

765:                                              ; preds = %.lr.ph3747, %765
  %.331893745 = phi i64 [ 1, %.lr.ph3747 ], [ %771, %765 ]
  %766 = load i64, ptr %29, align 8, !tbaa !5
  %767 = sub nsw i64 %766, %.331893745
  %gep3743 = getelementptr %struct.complex, ptr %invariant.gep3742, i64 %767
  %768 = load i64, ptr %3, align 8, !tbaa !5
  %769 = sub nsw i64 %768, %.331893745
  %gep3750 = getelementptr %struct.complex, ptr %invariant.gep3749, i64 %769
  %770 = call i32 @clartv_(ptr noundef nonnull %27, ptr noundef %gep3743, ptr noundef nonnull %33, ptr noundef %gep3750, ptr noundef nonnull %33, ptr noundef nonnull %761, ptr noundef nonnull %760, ptr noundef nonnull %29) #4
  %771 = add nuw nsw i64 %.331893745, 1
  %772 = load i64, ptr %17, align 8, !tbaa !5
  %.not3308.not = icmp slt i64 %.331893745, %772
  br i1 %.not3308.not, label %765, label %._crit_edge3748.loopexit, !llvm.loop !34

._crit_edge3748.loopexit:                         ; preds = %765
  %.pre4455 = load i64, ptr %3, align 8, !tbaa !5
  br label %._crit_edge3748

._crit_edge3748:                                  ; preds = %758, %._crit_edge3748.loopexit
  %773 = phi i64 [ %.pre4455, %._crit_edge3748.loopexit ], [ %763, %758 ]
  %774 = load i64, ptr %29, align 8, !tbaa !5
  %775 = getelementptr %struct.complex, ptr %36, i64 %774
  %776 = getelementptr %struct.complex, ptr %775, i64 %759
  %777 = getelementptr %struct.complex, ptr %775, i64 %.pre4498
  %778 = getelementptr %struct.complex, ptr %36, i64 %773
  %779 = getelementptr %struct.complex, ptr %778, i64 %.pre4498
  %780 = call i32 @clar2v_(ptr noundef nonnull %27, ptr noundef %776, ptr noundef %777, ptr noundef %779, ptr noundef nonnull %33, ptr noundef nonnull %761, ptr noundef nonnull %760, ptr noundef nonnull %29) #4
  %781 = call i32 @clacgv_(ptr noundef nonnull %27, ptr noundef nonnull %760, ptr noundef nonnull %29) #4
  %.pre4456 = load i64, ptr %3, align 8, !tbaa !5
  br label %782

782:                                              ; preds = %._crit_edge3748, %.lr.ph3766
  %783 = phi i64 [ %.pre4456, %._crit_edge3748 ], [ %751, %.lr.ph3766 ]
  %784 = load i64, ptr %4, align 8, !tbaa !5
  %reass.sub4272 = sub i64 %784, %.431953764
  %785 = add i64 %reass.sub4272, 1
  store i64 %785, ptr %17, align 8, !tbaa !5
  %.not3309.not3752 = icmp sgt i64 %783, %785
  br i1 %.not3309.not3752, label %.lr.ph3756, label %._crit_edge3757

.lr.ph3756:                                       ; preds = %782
  %786 = getelementptr inbounds float, ptr %44, i64 %748
  %787 = getelementptr inbounds %struct.complex, ptr %43, i64 %748
  br label %788

788:                                              ; preds = %.lr.ph3756, %805
  %789 = phi i64 [ %785, %.lr.ph3756 ], [ %806, %805 ]
  %.43190.in3753 = phi i64 [ %783, %.lr.ph3756 ], [ %.431903754, %805 ]
  %.431903754 = add nsw i64 %.43190.in3753, -1
  %790 = load i64, ptr %2, align 8, !tbaa !5
  %791 = sub i64 %.431903754, %748
  %792 = add i64 %791, %790
  %793 = load i64, ptr %29, align 8, !tbaa !5
  %794 = sdiv i64 %792, %793
  store i64 %794, ptr %32, align 8, !tbaa !5
  %795 = icmp sgt i64 %794, 0
  br i1 %795, label %796, label %805

796:                                              ; preds = %788
  %reass.sub4273 = sub i64 %748, %.43190.in3753
  %797 = add i64 %reass.sub4273, 1
  %798 = add i64 %797, %793
  %799 = mul nsw i64 %798, %34
  %800 = getelementptr %struct.complex, ptr %36, i64 %.431903754
  %801 = getelementptr %struct.complex, ptr %800, i64 %799
  %802 = getelementptr %struct.complex, ptr %36, i64 %.43190.in3753
  %803 = getelementptr %struct.complex, ptr %802, i64 %799
  %804 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %801, ptr noundef nonnull %33, ptr noundef %803, ptr noundef nonnull %33, ptr noundef nonnull %786, ptr noundef nonnull %787, ptr noundef nonnull %29) #4
  %.pre4457 = load i64, ptr %17, align 8, !tbaa !5
  br label %805

805:                                              ; preds = %788, %796
  %806 = phi i64 [ %789, %788 ], [ %.pre4457, %796 ]
  %.not3309.not = icmp sgt i64 %.431903754, %806
  br i1 %.not3309.not, label %788, label %._crit_edge3757, !llvm.loop !35

._crit_edge3757:                                  ; preds = %805, %782
  br i1 %.not, label %807, label %.loopexit3485

807:                                              ; preds = %._crit_edge3757
  store i64 %756, ptr %17, align 8, !tbaa !5
  %808 = load i64, ptr %29, align 8, !tbaa !5
  store i64 %808, ptr %16, align 8, !tbaa !5
  %809 = icmp slt i64 %808, 0
  %810 = icmp slt i64 %755, 1
  %811 = icmp sgt i64 %755, -1
  %.in33103758 = select i1 %809, i1 %810, i1 %811
  br i1 %.in33103758, label %.lr.ph3761, label %.loopexit3485

.lr.ph3761:                                       ; preds = %807, %.lr.ph3761
  %.932243759 = phi i64 [ %823, %.lr.ph3761 ], [ %748, %807 ]
  %812 = load i64, ptr %2, align 8, !tbaa !5
  %813 = sub nsw i64 %812, %86
  store i64 %813, ptr %18, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.complex, ptr %43, i64 %.932243759
  call void @r_cnjg(ptr noundef nonnull %20, ptr noundef nonnull %814) #4
  %815 = mul nsw i64 %.932243759, %40
  %816 = getelementptr %struct.complex, ptr %93, i64 %815
  %817 = add nsw i64 %.932243759, 1
  %818 = mul nsw i64 %817, %40
  %819 = getelementptr %struct.complex, ptr %93, i64 %818
  %820 = getelementptr inbounds float, ptr %44, i64 %.932243759
  %821 = call i32 @crot_(ptr noundef nonnull %18, ptr noundef %816, ptr noundef nonnull @c__1, ptr noundef %819, ptr noundef nonnull @c__1, ptr noundef nonnull %820, ptr noundef nonnull %20) #4
  %822 = load i64, ptr %16, align 8, !tbaa !5
  %823 = add nsw i64 %822, %.932243759
  %824 = icmp slt i64 %822, 0
  %825 = load i64, ptr %17, align 8
  %826 = icmp sge i64 %823, %825
  %827 = icmp sle i64 %823, %825
  %.in3310 = select i1 %824, i1 %826, i1 %827
  br i1 %.in3310, label %.lr.ph3761, label %.loopexit3485, !llvm.loop !36

.loopexit3485:                                    ; preds = %.lr.ph3761, %807, %._crit_edge3757
  %828 = add nsw i64 %.431953764, -1
  %829 = icmp sgt i64 %.431953764, 1
  br i1 %829, label %.lr.ph3766, label %._crit_edge3767, !llvm.loop !37

._crit_edge3767.thread:                           ; preds = %._crit_edge3741, %636
  %.ph = phi i64 [ %.pre4454, %._crit_edge3741 ], [ %637, %636 ]
  %830 = add nsw i64 %.ph, -1
  store i64 %830, ptr %16, align 8, !tbaa !5
  br label %.loopexit3487

._crit_edge3767:                                  ; preds = %.loopexit3485
  %.pre4458 = load i64, ptr %4, align 8, !tbaa !5
  %831 = add nsw i64 %.pre4458, -1
  store i64 %831, ptr %16, align 8, !tbaa !5
  %.not33063772 = icmp slt i64 %.pre4458, 2
  br i1 %.not33063772, label %.loopexit3487, label %.lr.ph3775

.lr.ph3775:                                       ; preds = %._crit_edge3767, %._crit_edge3771
  %832 = phi i64 [ %867, %._crit_edge3771 ], [ %831, %._crit_edge3767 ]
  %.531963773 = phi i64 [ %868, %._crit_edge3771 ], [ 1, %._crit_edge3767 ]
  store i64 1, ptr %17, align 8, !tbaa !5
  %833 = sub nsw i64 %.531963773, %.1318233993418
  %834 = add nsw i64 %833, 2
  store i64 %834, ptr %18, align 8, !tbaa !5
  %835 = xor i64 %.531963773, -1
  %836 = add i64 %.1324033963420, %835
  %837 = icmp slt i64 %833, 0
  %838 = select i1 %837, i64 1, i64 %834
  %839 = load i64, ptr %29, align 8, !tbaa !5
  %840 = mul nsw i64 %839, %838
  %841 = add nsw i64 %836, %840
  %842 = load i64, ptr %4, align 8, !tbaa !5
  %843 = sub nsw i64 %842, %.531963773
  %844 = icmp sgt i64 %843, 0
  br i1 %844, label %.lr.ph3770, label %._crit_edge3771

.lr.ph3770:                                       ; preds = %.lr.ph3775
  %845 = sub nsw i64 %841, %86
  %846 = getelementptr inbounds float, ptr %44, i64 %845
  %847 = getelementptr inbounds %struct.complex, ptr %43, i64 %845
  br label %848

848:                                              ; preds = %.lr.ph3770, %864
  %.53768 = phi i64 [ %843, %.lr.ph3770 ], [ %865, %864 ]
  %849 = load i64, ptr %2, align 8, !tbaa !5
  %850 = sub i64 %.53768, %841
  %851 = add i64 %850, %849
  %852 = load i64, ptr %29, align 8, !tbaa !5
  %853 = sdiv i64 %851, %852
  store i64 %853, ptr %32, align 8, !tbaa !5
  %854 = icmp sgt i64 %853, 0
  br i1 %854, label %855, label %864

855:                                              ; preds = %848
  %856 = sub i64 %841, %.53768
  %857 = add i64 %856, %852
  %858 = mul nsw i64 %857, %34
  %859 = getelementptr %struct.complex, ptr %36, i64 %.53768
  %860 = getelementptr %struct.complex, ptr %859, i64 %858
  %861 = getelementptr i8, ptr %859, i64 8
  %862 = getelementptr %struct.complex, ptr %861, i64 %858
  %863 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %860, ptr noundef nonnull %33, ptr noundef %862, ptr noundef nonnull %33, ptr noundef nonnull %846, ptr noundef nonnull %847, ptr noundef nonnull %29) #4
  br label %864

864:                                              ; preds = %848, %855
  %865 = add nsw i64 %.53768, -1
  %866 = icmp sgt i64 %.53768, 1
  br i1 %866, label %848, label %._crit_edge3771.loopexit, !llvm.loop !38

._crit_edge3771.loopexit:                         ; preds = %864
  %.pre4459 = load i64, ptr %16, align 8, !tbaa !5
  br label %._crit_edge3771

._crit_edge3771:                                  ; preds = %._crit_edge3771.loopexit, %.lr.ph3775
  %867 = phi i64 [ %.pre4459, %._crit_edge3771.loopexit ], [ %832, %.lr.ph3775 ]
  %868 = add nuw nsw i64 %.531963773, 1
  %.not3306.not = icmp slt i64 %.531963773, %867
  br i1 %.not3306.not, label %.lr.ph3775, label %._crit_edge3776, !llvm.loop !39

._crit_edge3776:                                  ; preds = %._crit_edge3771
  %.pre4460 = load i64, ptr %4, align 8, !tbaa !5
  %869 = icmp sgt i64 %.pre4460, 1
  br i1 %869, label %870, label %.loopexit3487

870:                                              ; preds = %._crit_edge3776
  %871 = load i64, ptr %3, align 8, !tbaa !5
  %872 = add nsw i64 %871, %.1317334053414
  store i64 %872, ptr %16, align 8, !tbaa !5
  %873 = load i64, ptr %2, align 8, !tbaa !5
  %.not3307.not3777 = icmp sgt i64 %873, %872
  br i1 %.not3307.not3777, label %.lr.ph3780, label %.loopexit3487

.lr.ph3780:                                       ; preds = %870
  %874 = add i64 %871, %86
  %875 = sub i64 %873, %872
  %min.iters.check4929 = icmp ult i64 %875, 284
  br i1 %min.iters.check4929, label %scalar.ph4928.preheader, label %vector.scevcheck4824

vector.scevcheck4824:                             ; preds = %.lr.ph3780
  %876 = xor i64 %872, -1
  %877 = add i64 %873, %876
  %878 = shl i64 %873, 3
  %879 = sub i64 %873, %874
  %880 = shl i64 %879, 3
  %scevgep4826 = getelementptr i8, ptr %scevgep4825, i64 %880
  %mul.result4828.neg = mul i64 %877, -8
  %881 = getelementptr i8, ptr %scevgep4826, i64 %mul.result4828.neg
  %882 = icmp ugt ptr %881, %scevgep4826
  %scevgep4831 = getelementptr i8, ptr %scevgep4830, i64 %878
  %mul.result4833.neg = mul i64 %877, -8
  %mul.overflow4834 = icmp ugt i64 %877, 2305843009213693951
  %883 = getelementptr i8, ptr %scevgep4831, i64 %mul.result4833.neg
  %884 = icmp ugt ptr %883, %scevgep4831
  %885 = or i1 %884, %mul.overflow4834
  %scevgep4836 = getelementptr i8, ptr %scevgep4835, i64 %878
  %mul.result4838.neg = mul i64 %877, -8
  %886 = getelementptr i8, ptr %scevgep4836, i64 %mul.result4838.neg
  %887 = icmp ugt ptr %886, %scevgep4836
  %scevgep4841 = getelementptr i8, ptr %scevgep4840, i64 %880
  %mul.result4843.neg = mul i64 %877, -8
  %888 = getelementptr i8, ptr %scevgep4841, i64 %mul.result4843.neg
  %889 = icmp ugt ptr %888, %scevgep4841
  %890 = shl i64 %873, 2
  %scevgep4846 = getelementptr i8, ptr %scevgep4845, i64 %890
  %mul.result4848.neg = mul i64 %877, -4
  %891 = getelementptr i8, ptr %scevgep4846, i64 %mul.result4848.neg
  %892 = icmp ugt ptr %891, %scevgep4846
  %893 = sub i64 %873, %874
  %894 = shl i64 %893, 2
  %scevgep4851 = getelementptr i8, ptr %scevgep4850, i64 %894
  %mul.result4853.neg = mul i64 %877, -4
  %895 = getelementptr i8, ptr %scevgep4851, i64 %mul.result4853.neg
  %896 = icmp ugt ptr %895, %scevgep4851
  %897 = or i1 %882, %885
  %898 = or i1 %887, %897
  %899 = or i1 %889, %898
  %900 = or i1 %892, %899
  %901 = or i1 %896, %900
  br i1 %901, label %scalar.ph4928.preheader, label %vector.memcheck4855

vector.memcheck4855:                              ; preds = %vector.scevcheck4824
  %902 = shl i64 %872, 3
  %scevgep4857 = getelementptr i8, ptr %scevgep4856, i64 %902
  %903 = shl i64 %873, 3
  %scevgep4859 = getelementptr i8, ptr %scevgep4858, i64 %903
  %scevgep4861 = getelementptr i8, ptr %scevgep4860, i64 %902
  %scevgep4863 = getelementptr i8, ptr %scevgep4862, i64 %903
  %904 = shl i64 %.1317334053414, 3
  %scevgep4865 = getelementptr i8, ptr %scevgep4864, i64 %904
  %905 = sub i64 %873, %874
  %906 = shl i64 %905, 3
  %scevgep4867 = getelementptr i8, ptr %scevgep4866, i64 %906
  %scevgep4869 = getelementptr i8, ptr %scevgep4868, i64 %904
  %scevgep4871 = getelementptr i8, ptr %scevgep4870, i64 %906
  %907 = shl i64 %872, 2
  %scevgep4873 = getelementptr i8, ptr %scevgep4872, i64 %907
  %908 = shl i64 %873, 2
  %scevgep4875 = getelementptr i8, ptr %scevgep4874, i64 %908
  %909 = shl i64 %.1317334053414, 2
  %scevgep4877 = getelementptr i8, ptr %scevgep4876, i64 %909
  %910 = sub i64 %873, %874
  %911 = shl i64 %910, 2
  %scevgep4879 = getelementptr i8, ptr %scevgep4878, i64 %911
  %bound04880 = icmp ult ptr %scevgep4857, %scevgep4863
  %bound14881 = icmp ult ptr %scevgep4861, %scevgep4859
  %found.conflict4882 = and i1 %bound04880, %bound14881
  %bound04883 = icmp ult ptr %scevgep4857, %scevgep4867
  %bound14884 = icmp ult ptr %scevgep4865, %scevgep4859
  %found.conflict4885 = and i1 %bound04883, %bound14884
  %conflict.rdx4886 = or i1 %found.conflict4882, %found.conflict4885
  %bound04887 = icmp ult ptr %scevgep4857, %scevgep4871
  %bound14888 = icmp ult ptr %scevgep4869, %scevgep4859
  %found.conflict4889 = and i1 %bound04887, %bound14888
  %conflict.rdx4890 = or i1 %conflict.rdx4886, %found.conflict4889
  %bound04891 = icmp ult ptr %scevgep4857, %scevgep4875
  %bound14892 = icmp ult ptr %scevgep4873, %scevgep4859
  %found.conflict4893 = and i1 %bound04891, %bound14892
  %conflict.rdx4894 = or i1 %conflict.rdx4890, %found.conflict4893
  %bound04895 = icmp ult ptr %scevgep4857, %scevgep4879
  %bound14896 = icmp ult ptr %scevgep4877, %scevgep4859
  %found.conflict4897 = and i1 %bound04895, %bound14896
  %conflict.rdx4898 = or i1 %conflict.rdx4894, %found.conflict4897
  %bound04899 = icmp ult ptr %scevgep4861, %scevgep4867
  %bound14900 = icmp ult ptr %scevgep4865, %scevgep4863
  %found.conflict4901 = and i1 %bound04899, %bound14900
  %conflict.rdx4902 = or i1 %conflict.rdx4898, %found.conflict4901
  %bound04903 = icmp ult ptr %scevgep4861, %scevgep4871
  %bound14904 = icmp ult ptr %scevgep4869, %scevgep4863
  %found.conflict4905 = and i1 %bound04903, %bound14904
  %conflict.rdx4906 = or i1 %conflict.rdx4902, %found.conflict4905
  %bound04907 = icmp ult ptr %scevgep4861, %scevgep4875
  %bound14908 = icmp ult ptr %scevgep4873, %scevgep4863
  %found.conflict4909 = and i1 %bound04907, %bound14908
  %conflict.rdx4910 = or i1 %conflict.rdx4906, %found.conflict4909
  %bound04911 = icmp ult ptr %scevgep4861, %scevgep4879
  %bound14912 = icmp ult ptr %scevgep4877, %scevgep4863
  %found.conflict4913 = and i1 %bound04911, %bound14912
  %conflict.rdx4914 = or i1 %conflict.rdx4910, %found.conflict4913
  %bound04915 = icmp ult ptr %scevgep4865, %scevgep4875
  %bound14916 = icmp ult ptr %scevgep4873, %scevgep4867
  %found.conflict4917 = and i1 %bound04915, %bound14916
  %conflict.rdx4918 = or i1 %conflict.rdx4914, %found.conflict4917
  %bound04919 = icmp ult ptr %scevgep4869, %scevgep4875
  %bound14920 = icmp ult ptr %scevgep4873, %scevgep4871
  %found.conflict4921 = and i1 %bound04919, %bound14920
  %conflict.rdx4922 = or i1 %conflict.rdx4918, %found.conflict4921
  %bound04923 = icmp ult ptr %scevgep4873, %scevgep4879
  %bound14924 = icmp ult ptr %scevgep4877, %scevgep4875
  %found.conflict4925 = and i1 %bound04923, %bound14924
  %conflict.rdx4926 = or i1 %conflict.rdx4922, %found.conflict4925
  br i1 %conflict.rdx4926, label %scalar.ph4928.preheader, label %vector.ph4930

vector.ph4930:                                    ; preds = %vector.memcheck4855
  %n.vec4932 = and i64 %875, -4
  %ind.end4933 = sub i64 %873, %n.vec4932
  br label %vector.body4935

vector.body4935:                                  ; preds = %vector.body4935, %vector.ph4930
  %index4936 = phi i64 [ 0, %vector.ph4930 ], [ %index.next4949, %vector.body4935 ]
  %offset.idx4937 = sub i64 %873, %index4936
  %912 = add nsw i64 %offset.idx4937, -1
  %913 = sub i64 %912, %874
  %gep5428 = getelementptr float, ptr %invariant.gep5427, i64 %913
  %wide.load4938 = load <4 x float>, ptr %gep5428, align 4, !tbaa !12, !alias.scope !40
  %914 = sub nsw i64 %912, %86
  %gep5430 = getelementptr float, ptr %invariant.gep5429, i64 %914
  store <4 x float> %wide.load4938, ptr %gep5430, align 4, !tbaa !12, !alias.scope !43, !noalias !40
  %gep5432 = getelementptr %struct.complex, ptr %invariant.gep5431, i64 %913
  %interleaved.vec4948 = load <8 x float>, ptr %gep5432, align 4, !tbaa !12
  %gep5434 = getelementptr %struct.complex, ptr %invariant.gep5433, i64 %914, i32 1
  store <8 x float> %interleaved.vec4948, ptr %gep5434, align 4, !tbaa !12
  %index.next4949 = add nuw i64 %index4936, 4
  %915 = icmp eq i64 %index.next4949, %n.vec4932
  br i1 %915, label %middle.block4927, label %vector.body4935, !llvm.loop !45

middle.block4927:                                 ; preds = %vector.body4935
  %916 = add i64 %offset.idx4937, -4
  %917 = sub nsw i64 %916, %86
  %918 = sub i64 %916, %874
  %cmp.n4950 = icmp eq i64 %875, %n.vec4932
  br i1 %cmp.n4950, label %..loopexit3488_crit_edge, label %scalar.ph4928.preheader

scalar.ph4928.preheader:                          ; preds = %middle.block4927, %vector.memcheck4855, %vector.scevcheck4824, %.lr.ph3780
  %.103225.in3778.ph = phi i64 [ %873, %vector.memcheck4855 ], [ %873, %vector.scevcheck4824 ], [ %873, %.lr.ph3780 ], [ %ind.end4933, %middle.block4927 ]
  br label %scalar.ph4928

scalar.ph4928:                                    ; preds = %scalar.ph4928.preheader, %scalar.ph4928
  %.103225.in3778 = phi i64 [ %.103225, %scalar.ph4928 ], [ %.103225.in3778.ph, %scalar.ph4928.preheader ]
  %.103225 = add nsw i64 %.103225.in3778, -1
  %919 = sub i64 %.103225, %874
  %920 = getelementptr inbounds float, ptr %44, i64 %919
  %921 = load float, ptr %920, align 4, !tbaa !12
  %922 = sub nsw i64 %.103225, %86
  %923 = getelementptr inbounds float, ptr %44, i64 %922
  store float %921, ptr %923, align 4, !tbaa !12
  %924 = getelementptr inbounds %struct.complex, ptr %43, i64 %919
  %925 = getelementptr inbounds %struct.complex, ptr %43, i64 %922
  %926 = load <2 x float>, ptr %924, align 4, !tbaa !12
  store <2 x float> %926, ptr %925, align 4, !tbaa !12
  %.not3307.not = icmp sgt i64 %.103225, %872
  br i1 %.not3307.not, label %scalar.ph4928, label %..loopexit3488_crit_edge, !llvm.loop !46

927:                                              ; preds = %.lr.ph.split.us
  %928 = getelementptr i8, ptr %129, i64 8
  %929 = load float, ptr %928, align 4, !tbaa !9
  %930 = add nsw i64 %128, 1
  %931 = getelementptr inbounds %struct.complex, ptr %36, i64 %930
  %932 = load float, ptr %931, align 4, !tbaa !9
  %933 = fdiv float %932, %929
  %934 = fdiv float %933, %929
  store float %934, ptr %19, align 4, !tbaa !12
  store float %934, ptr %931, align 4, !tbaa !9
  %935 = getelementptr inbounds %struct.complex, ptr %36, i64 %930, i32 1
  store float 0.000000e+00, ptr %935, align 4, !tbaa !13
  br i1 %.not3279.not3623.not, label %978, label %.lr.ph3626

.lr.ph3626:                                       ; preds = %927
  %reass.sub = sub i64 %128, %.03239.ph
  %936 = add i64 %reass.sub, 2
  %937 = add i64 %123, 1
  %938 = sub i64 %937, %.03239.ph
  %min.iters.check4964 = icmp ult i64 %938, 4
  br i1 %min.iters.check4964, label %scalar.ph4963.preheader, label %vector.scevcheck4951

vector.scevcheck4951:                             ; preds = %.lr.ph3626
  %939 = sub i64 %123, %.03239.ph
  %940 = shl i64 %.03239.ph, 3
  %941 = add i64 %940, -16
  %942 = mul i64 %34, %941
  %scevgep4953 = getelementptr i8, ptr %scevgep4952, i64 %942
  %mul.result4955 = shl i64 %939, 3
  %943 = getelementptr i8, ptr %scevgep4953, i64 %mul.result4955
  %944 = icmp ult ptr %943, %scevgep4953
  %scevgep4958 = getelementptr i8, ptr %scevgep4957, i64 %942
  %mul.result4960 = shl i64 %939, 3
  %mul.overflow4961 = icmp ugt i64 %939, 2305843009213693951
  %945 = getelementptr i8, ptr %scevgep4958, i64 %mul.result4960
  %946 = icmp ult ptr %945, %scevgep4958
  %947 = or i1 %946, %mul.overflow4961
  %948 = or i1 %944, %947
  br i1 %948, label %scalar.ph4963.preheader, label %vector.ph4965

vector.ph4965:                                    ; preds = %vector.scevcheck4951
  %n.vec4967 = and i64 %938, -4
  %ind.end4968 = add i64 %119, %n.vec4967
  %broadcast.splatinsert = insertelement <4 x float> poison, float %929, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body4970

vector.body4970:                                  ; preds = %vector.body4970, %vector.ph4965
  %index4971 = phi i64 [ 0, %vector.ph4965 ], [ %index.next4977, %vector.body4970 ]
  %949 = add i64 %.03239.ph, %index4971
  %950 = add i64 %936, %949
  %951 = getelementptr inbounds %struct.complex, ptr %36, i64 %950
  %wide.vec4973 = load <8 x float>, ptr %951, align 4, !tbaa !12
  %strided.vec4974 = shufflevector <8 x float> %wide.vec4973, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec4975 = shufflevector <8 x float> %wide.vec4973, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %952 = fdiv <4 x float> %strided.vec4974, %broadcast.splat
  %953 = fdiv <4 x float> %strided.vec4975, %broadcast.splat
  %954 = getelementptr inbounds %struct.complex, ptr %36, i64 %950
  %interleaved.vec4976 = shufflevector <4 x float> %952, <4 x float> %953, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec4976, ptr %954, align 4, !tbaa !12
  %index.next4977 = add nuw i64 %index4971, 4
  %955 = icmp eq i64 %index.next4977, %n.vec4967
  br i1 %955, label %middle.block4962, label %vector.body4970, !llvm.loop !47

middle.block4962:                                 ; preds = %vector.body4970
  %offset.idx4972 = add i64 %119, %index4971
  %956 = add i64 %offset.idx4972, 4
  %957 = add i64 %936, %956
  %cmp.n4978 = icmp eq i64 %938, %n.vec4967
  %958 = shufflevector <4 x float> %952, <4 x float> %953, <2 x i32> <i32 3, i32 7>
  br i1 %cmp.n4978, label %._crit_edge3627, label %scalar.ph4963.preheader

scalar.ph4963.preheader:                          ; preds = %middle.block4962, %vector.scevcheck4951, %.lr.ph3626
  %.113226.in3624.ph = phi i64 [ %119, %vector.scevcheck4951 ], [ %119, %.lr.ph3626 ], [ %ind.end4968, %middle.block4962 ]
  %959 = sub i64 %123, %.113226.in3624.ph
  %.neg = add i64 %.113226.in3624.ph, 1
  %xtraiter5339 = and i64 %959, 1
  %lcmp.mod5340.not = icmp eq i64 %xtraiter5339, 0
  br i1 %lcmp.mod5340.not, label %scalar.ph4963.prol.loopexit, label %scalar.ph4963.prol

scalar.ph4963.prol:                               ; preds = %scalar.ph4963.preheader
  %.113226.prol = add nsw i64 %.113226.in3624.ph, 1
  %960 = add i64 %936, %.113226.prol
  %961 = getelementptr inbounds %struct.complex, ptr %36, i64 %960
  %962 = load <2 x float>, ptr %961, align 4, !tbaa !12
  %963 = insertelement <2 x float> poison, float %929, i64 0
  %964 = shufflevector <2 x float> %963, <2 x float> poison, <2 x i32> zeroinitializer
  %965 = fdiv <2 x float> %962, %964
  store <2 x float> %965, ptr %961, align 4, !tbaa !12
  br label %scalar.ph4963.prol.loopexit

scalar.ph4963.prol.loopexit:                      ; preds = %scalar.ph4963.prol, %scalar.ph4963.preheader
  %.lcssa5317.unr = phi i64 [ poison, %scalar.ph4963.preheader ], [ %960, %scalar.ph4963.prol ]
  %.lcssa5316.unr = phi <2 x float> [ poison, %scalar.ph4963.preheader ], [ %965, %scalar.ph4963.prol ]
  %.113226.in3624.unr = phi i64 [ %.113226.in3624.ph, %scalar.ph4963.preheader ], [ %.113226.prol, %scalar.ph4963.prol ]
  %966 = icmp eq i64 %123, %.neg
  br i1 %966, label %._crit_edge3627, label %scalar.ph4963.preheader.new

scalar.ph4963.preheader.new:                      ; preds = %scalar.ph4963.prol.loopexit
  %gep5446 = getelementptr %struct.complex, ptr %invariant.gep5445, i64 %936
  %967 = insertelement <2 x float> poison, float %929, i64 0
  %968 = shufflevector <2 x float> %967, <2 x float> poison, <2 x i32> zeroinitializer
  %969 = insertelement <2 x float> poison, float %929, i64 0
  %970 = shufflevector <2 x float> %969, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph4963

scalar.ph4963:                                    ; preds = %scalar.ph4963, %scalar.ph4963.preheader.new
  %.113226.in3624 = phi i64 [ %.113226.in3624.unr, %scalar.ph4963.preheader.new ], [ %.113226.1, %scalar.ph4963 ]
  %gep5422 = getelementptr %struct.complex, ptr %gep5446, i64 %.113226.in3624
  %971 = load <2 x float>, ptr %gep5422, align 4, !tbaa !12
  %972 = fdiv <2 x float> %971, %968
  store <2 x float> %972, ptr %gep5422, align 4, !tbaa !12
  %.113226.1 = add nsw i64 %.113226.in3624, 2
  %973 = add i64 %936, %.113226.1
  %974 = getelementptr inbounds %struct.complex, ptr %36, i64 %973
  %975 = load <2 x float>, ptr %974, align 4, !tbaa !12
  %976 = fdiv <2 x float> %975, %970
  store <2 x float> %976, ptr %974, align 4, !tbaa !12
  %exitcond4363.not.1 = icmp eq i64 %.113226.1, %123
  br i1 %exitcond4363.not.1, label %._crit_edge3627, label %scalar.ph4963, !llvm.loop !48

._crit_edge3627:                                  ; preds = %scalar.ph4963.prol.loopexit, %scalar.ph4963, %middle.block4962
  %.lcssa4692 = phi i64 [ %957, %middle.block4962 ], [ %.lcssa5317.unr, %scalar.ph4963.prol.loopexit ], [ %973, %scalar.ph4963 ]
  %977 = phi <2 x float> [ %958, %middle.block4962 ], [ %.lcssa5316.unr, %scalar.ph4963.prol.loopexit ], [ %976, %scalar.ph4963 ]
  store i64 %.lcssa4692, ptr %18, align 8, !tbaa !5
  store <2 x float> %977, ptr %20, align 8, !tbaa !12
  br label %978

978:                                              ; preds = %._crit_edge3627, %927
  store i64 1, ptr %16, align 8, !tbaa !5
  %979 = sub nsw i64 %119, %.pre4394
  store i64 %979, ptr %17, align 8, !tbaa !5
  %980 = call i64 @llvm.smax.i64(i64 %979, i64 1)
  %.not32803632 = icmp sgt i64 %980, %120
  br i1 %.not32803632, label %1012, label %.lr.ph3635.preheader

.lr.ph3635.preheader:                             ; preds = %978
  %981 = add i64 %.03239.ph, -2
  %982 = sub i64 %980, %.03239.ph
  %983 = and i64 %982, 1
  %lcmp.mod5342.not.not = icmp eq i64 %983, 0
  br i1 %lcmp.mod5342.not.not, label %.lr.ph3635.prol, label %.lr.ph3635.prol.loopexit

.lr.ph3635.prol:                                  ; preds = %.lr.ph3635.preheader
  %984 = mul nsw i64 %980, %34
  %985 = sub i64 %.03239.ph, %980
  %986 = add nsw i64 %985, %984
  %987 = getelementptr inbounds %struct.complex, ptr %36, i64 %986
  %988 = load <2 x float>, ptr %987, align 4, !tbaa !12
  %989 = insertelement <2 x float> poison, float %929, i64 0
  %990 = shufflevector <2 x float> %989, <2 x float> poison, <2 x i32> zeroinitializer
  %991 = fdiv <2 x float> %988, %990
  store <2 x float> %991, ptr %987, align 4, !tbaa !12
  %992 = add nuw i64 %980, 1
  br label %.lr.ph3635.prol.loopexit

.lr.ph3635.prol.loopexit:                         ; preds = %.lr.ph3635.prol, %.lr.ph3635.preheader
  %.lcssa5319.unr = phi i64 [ poison, %.lr.ph3635.preheader ], [ %986, %.lr.ph3635.prol ]
  %.lcssa5318.unr = phi <2 x float> [ poison, %.lr.ph3635.preheader ], [ %991, %.lr.ph3635.prol ]
  %.1232273633.unr = phi i64 [ %980, %.lr.ph3635.preheader ], [ %992, %.lr.ph3635.prol ]
  %993 = icmp eq i64 %981, %980
  br i1 %993, label %._crit_edge3636, label %.lr.ph3635.preheader.new

.lr.ph3635.preheader.new:                         ; preds = %.lr.ph3635.prol.loopexit
  %994 = insertelement <2 x float> poison, float %929, i64 0
  %995 = shufflevector <2 x float> %994, <2 x float> poison, <2 x i32> zeroinitializer
  %996 = insertelement <2 x float> poison, float %929, i64 0
  %997 = shufflevector <2 x float> %996, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph3635

.lr.ph3635:                                       ; preds = %.lr.ph3635, %.lr.ph3635.preheader.new
  %.1232273633 = phi i64 [ %.1232273633.unr, %.lr.ph3635.preheader.new ], [ %1011, %.lr.ph3635 ]
  %998 = mul nsw i64 %.1232273633, %34
  %999 = sub i64 %.03239.ph, %.1232273633
  %1000 = getelementptr %struct.complex, ptr %36, i64 %999
  %1001 = getelementptr %struct.complex, ptr %1000, i64 %998
  %1002 = load <2 x float>, ptr %1001, align 4, !tbaa !12
  %1003 = fdiv <2 x float> %1002, %995
  store <2 x float> %1003, ptr %1001, align 4, !tbaa !12
  %1004 = add nuw i64 %.1232273633, 1
  %1005 = mul nsw i64 %1004, %34
  %1006 = sub i64 %.03239.ph, %1004
  %1007 = add nsw i64 %1006, %1005
  %1008 = getelementptr inbounds %struct.complex, ptr %36, i64 %1007
  %1009 = load <2 x float>, ptr %1008, align 4, !tbaa !12
  %1010 = fdiv <2 x float> %1009, %997
  store <2 x float> %1010, ptr %1008, align 4, !tbaa !12
  %1011 = add nuw i64 %.1232273633, 2
  %exitcond4364.not.1 = icmp eq i64 %1011, %119
  br i1 %exitcond4364.not.1, label %._crit_edge3636, label %.lr.ph3635, !llvm.loop !49

._crit_edge3636:                                  ; preds = %.lr.ph3635, %.lr.ph3635.prol.loopexit
  %.lcssa5319 = phi i64 [ %.lcssa5319.unr, %.lr.ph3635.prol.loopexit ], [ %1007, %.lr.ph3635 ]
  %.lcssa5318 = phi <2 x float> [ %.lcssa5318.unr, %.lr.ph3635.prol.loopexit ], [ %1010, %.lr.ph3635 ]
  store i64 %.lcssa5319, ptr %16, align 8, !tbaa !5
  store i64 %.lcssa5319, ptr %17, align 8, !tbaa !5
  store <2 x float> %.lcssa5318, ptr %20, align 8, !tbaa !12
  br label %1012

1012:                                             ; preds = %._crit_edge3636, %978
  store i64 %120, ptr %18, align 8, !tbaa !5
  %.not32813655 = icmp sgt i64 %124, %120
  br i1 %.not32813655, label %._crit_edge3659, label %.lr.ph3658

.lr.ph3658:                                       ; preds = %1012, %._crit_edge3654
  %.631973656 = phi i64 [ %.pre4528, %._crit_edge3654 ], [ %124, %1012 ]
  store i64 %.631973656, ptr %16, align 8, !tbaa !5
  %1013 = load i64, ptr %31, align 8, !tbaa !5
  %1014 = sub nsw i64 %119, %1013
  %.not32983641 = icmp sgt i64 %1014, %.631973656
  br i1 %.not32983641, label %._crit_edge3645, label %.lr.ph3644

.lr.ph3644:                                       ; preds = %.lr.ph3658
  %1015 = add i64 %.631973656, 1
  %1016 = sub nsw i64 %119, %.631973656
  %1017 = add nsw i64 %1016, 1
  %1018 = mul nsw i64 %.631973656, %34
  %1019 = getelementptr %struct.complex, ptr %36, i64 %1017
  %1020 = getelementptr %struct.complex, ptr %1019, i64 %1018
  %1021 = mul nsw i64 %.631973656, %37
  %1022 = getelementptr %struct.complex, ptr %39, i64 %1017
  %1023 = getelementptr %struct.complex, ptr %1022, i64 %1021
  br label %1024

1024:                                             ; preds = %.lr.ph3644, %1024
  %.1332283642 = phi i64 [ %1014, %.lr.ph3644 ], [ %1081, %1024 ]
  %1025 = mul nsw i64 %.1332283642, %34
  %1026 = sub i64 %1015, %.1332283642
  %1027 = add nsw i64 %1026, %1025
  store i64 %1027, ptr %17, align 8, !tbaa !5
  store i64 %1027, ptr %15, align 8, !tbaa !5
  %1028 = sub nsw i64 %119, %.1332283642
  %1029 = add nsw i64 %1028, 1
  %1030 = mul nsw i64 %.1332283642, %37
  call void @r_cnjg(ptr noundef nonnull %23, ptr noundef %1020) #4
  %1031 = getelementptr %struct.complex, ptr %39, i64 %1029
  %1032 = getelementptr %struct.complex, ptr %1031, i64 %1030
  %1033 = load float, ptr %1032, align 4, !tbaa !9
  %1034 = getelementptr inbounds i8, ptr %1032, i64 4
  %1035 = load float, ptr %1034, align 4, !tbaa !13
  %1036 = fneg float %1035
  %1037 = load <2 x float>, ptr %23, align 8, !tbaa !12
  %1038 = insertelement <2 x float> poison, float %1035, i64 0
  %1039 = insertelement <2 x float> %1038, float %1036, i64 1
  %1040 = fmul <2 x float> %1037, %1039
  %1041 = shufflevector <2 x float> %1040, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1042 = insertelement <2 x float> poison, float %1033, i64 0
  %1043 = shufflevector <2 x float> %1042, <2 x float> poison, <2 x i32> zeroinitializer
  %1044 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1043, <2 x float> %1037, <2 x float> %1041)
  store <2 x float> %1044, ptr %22, align 8, !tbaa !12
  %1045 = load i64, ptr %15, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.complex, ptr %36, i64 %1045
  %1047 = load <2 x float>, ptr %1046, align 4, !tbaa !12
  %1048 = fsub <2 x float> %1047, %1044
  store <2 x float> %1048, ptr %21, align 8, !tbaa !12
  call void @r_cnjg(ptr noundef nonnull %24, ptr noundef %1023) #4
  %1049 = load float, ptr %24, align 4, !tbaa !9
  %1050 = getelementptr %struct.complex, ptr %36, i64 %1029
  %1051 = getelementptr %struct.complex, ptr %1050, i64 %1025
  %1052 = load float, ptr %91, align 4, !tbaa !13
  %1053 = fneg float %1052
  %1054 = load float, ptr %931, align 4, !tbaa !9
  store float %1054, ptr %19, align 4, !tbaa !12
  %1055 = load float, ptr %1032, align 4, !tbaa !9
  %1056 = fmul float %1054, %1055
  %1057 = load float, ptr %1034, align 4, !tbaa !13
  %1058 = fmul float %1054, %1057
  %1059 = fneg float %1058
  %1060 = load <2 x float>, ptr %1051, align 4, !tbaa !12
  %1061 = insertelement <2 x float> poison, float %1052, i64 0
  %1062 = insertelement <2 x float> %1061, float %1053, i64 1
  %1063 = fmul <2 x float> %1060, %1062
  %1064 = shufflevector <2 x float> %1063, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1065 = insertelement <2 x float> poison, float %1049, i64 0
  %1066 = shufflevector <2 x float> %1065, <2 x float> poison, <2 x i32> zeroinitializer
  %1067 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1066, <2 x float> %1060, <2 x float> %1064)
  %1068 = load <2 x float>, ptr %21, align 8, !tbaa !12
  %1069 = fsub <2 x float> %1068, %1067
  call void @r_cnjg(ptr noundef nonnull %25, ptr noundef %1023) #4
  %1070 = load <2 x float>, ptr %25, align 8, !tbaa !12
  %1071 = insertelement <2 x float> poison, float %1058, i64 0
  %1072 = insertelement <2 x float> %1071, float %1059, i64 1
  %1073 = fmul <2 x float> %1070, %1072
  %1074 = shufflevector <2 x float> %1073, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1075 = insertelement <2 x float> poison, float %1056, i64 0
  %1076 = shufflevector <2 x float> %1075, <2 x float> poison, <2 x i32> zeroinitializer
  %1077 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1076, <2 x float> %1070, <2 x float> %1074)
  %1078 = fadd <2 x float> %1069, %1077
  store <2 x float> %1078, ptr %20, align 8, !tbaa !12
  %1079 = load i64, ptr %17, align 8, !tbaa !5
  %1080 = getelementptr inbounds %struct.complex, ptr %36, i64 %1079
  store <2 x float> %1078, ptr %1080, align 4, !tbaa !12
  %1081 = add nsw i64 %.1332283642, 1
  %1082 = load i64, ptr %16, align 8, !tbaa !5
  %.not3298.not = icmp slt i64 %.1332283642, %1082
  br i1 %.not3298.not, label %1024, label %._crit_edge3645.loopexit, !llvm.loop !50

._crit_edge3645.loopexit:                         ; preds = %1024
  %.pre4393 = load i64, ptr %31, align 8, !tbaa !5
  br label %._crit_edge3645

._crit_edge3645:                                  ; preds = %._crit_edge3645.loopexit, %.lr.ph3658
  %1083 = phi i64 [ %.pre4393, %._crit_edge3645.loopexit ], [ %1013, %.lr.ph3658 ]
  store i64 1, ptr %16, align 8, !tbaa !5
  %1084 = load i64, ptr %3, align 8, !tbaa !5
  %1085 = sub nsw i64 %119, %1084
  store i64 %1085, ptr %17, align 8, !tbaa !5
  %1086 = xor i64 %1083, -1
  %1087 = add i64 %119, %1086
  store i64 %1087, ptr %15, align 8, !tbaa !5
  %1088 = call i64 @llvm.smax.i64(i64 %1085, i64 1)
  %.not33003650 = icmp sgt i64 %1088, %1087
  %.pre4528 = add i64 %.631973656, 1
  br i1 %.not33003650, label %._crit_edge3654, label %.lr.ph3653

.lr.ph3653:                                       ; preds = %._crit_edge3645
  %1089 = sub nsw i64 %119, %.631973656
  %1090 = mul nsw i64 %.631973656, %37
  %gep3647 = getelementptr %struct.complex, ptr %invariant.gep3878, i64 %1089
  %1091 = getelementptr %struct.complex, ptr %gep3647, i64 %1090
  br label %1092

1092:                                             ; preds = %.lr.ph3653, %1092
  %.1432293651 = phi i64 [ %1088, %.lr.ph3653 ], [ %1115, %1092 ]
  %1093 = mul nsw i64 %.1432293651, %34
  %1094 = sub i64 %.pre4528, %.1432293651
  %1095 = add nsw i64 %1094, %1093
  store i64 %1095, ptr %16, align 8, !tbaa !5
  store i64 %1095, ptr %17, align 8, !tbaa !5
  call void @r_cnjg(ptr noundef nonnull %21, ptr noundef %1091) #4
  %1096 = sub nsw i64 %119, %.1432293651
  %1097 = load float, ptr %21, align 8, !tbaa !9
  %gep3649 = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %1096
  %1098 = getelementptr %struct.complex, ptr %gep3649, i64 %1093
  %1099 = load float, ptr %90, align 4, !tbaa !13
  %1100 = fneg float %1099
  %1101 = load i64, ptr %17, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.complex, ptr %36, i64 %1101
  %1103 = load <2 x float>, ptr %1098, align 4, !tbaa !12
  %1104 = insertelement <2 x float> poison, float %1099, i64 0
  %1105 = insertelement <2 x float> %1104, float %1100, i64 1
  %1106 = fmul <2 x float> %1103, %1105
  %1107 = shufflevector <2 x float> %1106, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1108 = insertelement <2 x float> poison, float %1097, i64 0
  %1109 = shufflevector <2 x float> %1108, <2 x float> poison, <2 x i32> zeroinitializer
  %1110 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1109, <2 x float> %1103, <2 x float> %1107)
  %1111 = load <2 x float>, ptr %1102, align 4, !tbaa !12
  %1112 = fsub <2 x float> %1111, %1110
  store <2 x float> %1112, ptr %20, align 8, !tbaa !12
  %1113 = load i64, ptr %16, align 8, !tbaa !5
  %1114 = getelementptr inbounds %struct.complex, ptr %36, i64 %1113
  store <2 x float> %1112, ptr %1114, align 4, !tbaa !12
  %1115 = add nuw nsw i64 %.1432293651, 1
  %1116 = load i64, ptr %15, align 8, !tbaa !5
  %.not3300.not = icmp slt i64 %.1432293651, %1116
  br i1 %.not3300.not, label %1092, label %._crit_edge3654, !llvm.loop !51

._crit_edge3654:                                  ; preds = %1092, %._crit_edge3645
  %1117 = load i64, ptr %18, align 8, !tbaa !5
  %.not3281.not = icmp slt i64 %.631973656, %1117
  br i1 %.not3281.not, label %.lr.ph3658, label %._crit_edge3659, !llvm.loop !52

._crit_edge3659:                                  ; preds = %._crit_edge3654, %1012
  %.not32823675 = icmp sgt i64 %119, %123
  br i1 %.not32823675, label %1148, label %.lr.ph3678

.lr.ph3678:                                       ; preds = %._crit_edge3659
  %1118 = load i64, ptr %3, align 8, !tbaa !5
  %1119 = load i64, ptr %31, align 8, !tbaa !5
  %1120 = sub nsw i64 %119, %1119
  %invariant.gep3664 = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %128
  br label %1121

1121:                                             ; preds = %.lr.ph3678, %._crit_edge4491
  %.1532303676 = phi i64 [ %119, %.lr.ph3678 ], [ %.pre4526, %._crit_edge4491 ]
  %1122 = sub nsw i64 %.1532303676, %1118
  %1123 = call i64 @llvm.smax.i64(i64 %1122, i64 %1120)
  %.not32973666 = icmp sgt i64 %1123, %120
  %.pre4526 = add i64 %.1532303676, 1
  br i1 %.not32973666, label %._crit_edge4491, label %.lr.ph3669

.lr.ph3669:                                       ; preds = %1121
  %1124 = sub nsw i64 %.1532303676, %119
  %gep3665 = getelementptr %struct.complex, ptr %invariant.gep3664, i64 %1124
  br label %1125

1125:                                             ; preds = %.lr.ph3669, %1125
  %.731983667 = phi i64 [ %1123, %.lr.ph3669 ], [ %1147, %1125 ]
  %1126 = mul nsw i64 %.731983667, %34
  %1127 = sub i64 %.pre4526, %.731983667
  %1128 = add nsw i64 %1127, %1126
  %1129 = sub nsw i64 %119, %.731983667
  %1130 = mul nsw i64 %.731983667, %37
  %gep3661 = getelementptr %struct.complex, ptr %invariant.gep3878, i64 %1129
  %1131 = getelementptr %struct.complex, ptr %gep3661, i64 %1130
  %1132 = load float, ptr %1131, align 4, !tbaa !9
  %1133 = getelementptr inbounds i8, ptr %1131, i64 4
  %1134 = load float, ptr %1133, align 4, !tbaa !13
  %1135 = fneg float %1134
  %1136 = getelementptr inbounds %struct.complex, ptr %36, i64 %1128
  %1137 = load <2 x float>, ptr %gep3665, align 4, !tbaa !12
  %1138 = insertelement <2 x float> poison, float %1134, i64 0
  %1139 = insertelement <2 x float> %1138, float %1135, i64 1
  %1140 = fmul <2 x float> %1137, %1139
  %1141 = shufflevector <2 x float> %1140, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1142 = insertelement <2 x float> poison, float %1132, i64 0
  %1143 = shufflevector <2 x float> %1142, <2 x float> poison, <2 x i32> zeroinitializer
  %1144 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1143, <2 x float> %1137, <2 x float> %1141)
  %1145 = load <2 x float>, ptr %1136, align 4, !tbaa !12
  %1146 = fsub <2 x float> %1145, %1144
  store <2 x float> %1146, ptr %1136, align 4, !tbaa !12
  %1147 = add nsw i64 %.731983667, 1
  %.not3297.not = icmp slt i64 %.731983667, %120
  br i1 %.not3297.not, label %1125, label %._crit_edge3670, !llvm.loop !53

._crit_edge3670:                                  ; preds = %1125
  store <2 x float> %1146, ptr %20, align 8, !tbaa !12
  br label %._crit_edge4491

._crit_edge4491:                                  ; preds = %1121, %._crit_edge3670
  %.lcssa36723681 = phi i64 [ %1128, %._crit_edge3670 ], [ %1120, %1121 ]
  %.lcssa36713680 = phi i64 [ %1128, %._crit_edge3670 ], [ %1122, %1121 ]
  %exitcond4365.not = icmp eq i64 %.1532303676, %123
  br i1 %exitcond4365.not, label %._crit_edge3679, label %1121, !llvm.loop !54

._crit_edge3679:                                  ; preds = %._crit_edge4491
  store i64 %.lcssa36713680, ptr %15, align 8, !tbaa !5
  store i64 %.lcssa36723681, ptr %16, align 8, !tbaa !5
  store i64 %120, ptr %17, align 8, !tbaa !5
  br label %1148

1148:                                             ; preds = %._crit_edge3679, %._crit_edge3659
  br i1 %.not, label %1149, label %1169

1149:                                             ; preds = %1148
  %1150 = load i64, ptr %2, align 8, !tbaa !5
  %1151 = sub nsw i64 %1150, %86
  store i64 %1151, ptr %18, align 8, !tbaa !5
  %1152 = fdiv float 1.000000e+00, %929
  store float %1152, ptr %19, align 4, !tbaa !12
  %1153 = mul nsw i64 %119, %40
  %1154 = getelementptr %struct.complex, ptr %93, i64 %1153
  %1155 = call i32 @f2c_csscal(ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %1154, ptr noundef nonnull @c__1) #4
  %1156 = load i64, ptr %31, align 8, !tbaa !5
  %1157 = icmp sgt i64 %1156, 0
  br i1 %1157, label %1158, label %1169

1158:                                             ; preds = %1149
  %1159 = load i64, ptr %2, align 8, !tbaa !5
  %1160 = sub nsw i64 %1159, %86
  store i64 %1160, ptr %18, align 8, !tbaa !5
  store <2 x float> <float -1.000000e+00, float -0.000000e+00>, ptr %20, align 8, !tbaa !12
  %1161 = load i64, ptr %8, align 8, !tbaa !5
  %1162 = add nsw i64 %1161, -1
  store i64 %1162, ptr %17, align 8, !tbaa !5
  %1163 = sub nsw i64 %119, %1156
  %1164 = mul nsw i64 %1163, %37
  %gep3879 = getelementptr %struct.complex, ptr %invariant.gep3878, i64 %1156
  %1165 = getelementptr %struct.complex, ptr %gep3879, i64 %1164
  %1166 = mul nsw i64 %1163, %40
  %1167 = getelementptr %struct.complex, ptr %93, i64 %1166
  %1168 = call i32 @f2c_cgeru(ptr noundef nonnull %18, ptr noundef nonnull %31, ptr noundef nonnull %20, ptr noundef %1154, ptr noundef nonnull @c__1, ptr noundef %1165, ptr noundef nonnull %17, ptr noundef %1167, ptr noundef nonnull %10) #4
  br label %1169

1169:                                             ; preds = %1149, %1158, %1148
  %reass.sub4260 = sub i64 %128, %.03239.ph
  %gep5448 = getelementptr %struct.complex, ptr %invariant.gep5447, i64 %reass.sub4260
  %1170 = getelementptr %struct.complex, ptr %gep5448, i64 %123
  %1171 = load <2 x float>, ptr %1170, align 4, !tbaa !12
  store <2 x float> %1171, ptr %30, align 8, !tbaa !12
  %.pre4461 = load i64, ptr %4, align 8, !tbaa !5
  br label %1172

1172:                                             ; preds = %132, %1169
  %1173 = phi i64 [ %.pre4461, %1169 ], [ %118, %132 ]
  %.03520 = phi i64 [ %.0.ph, %1169 ], [ 0, %132 ]
  %.not32733514 = phi i1 [ false, %1169 ], [ true, %132 ]
  %.1324033983433 = phi i64 [ %119, %1169 ], [ %131, %132 ]
  %.1318234013431 = phi i64 [ %120, %1169 ], [ %.03181.lcssa, %132 ]
  %.1317734043429 = phi i64 [ %123, %1169 ], [ %.03176.lcssa, %132 ]
  %.1317334073427 = phi i64 [ %126, %1169 ], [ %.03172.lcssa, %132 ]
  %1174 = add nsw i64 %1173, -1
  store i64 %1174, ptr %18, align 8, !tbaa !5
  %.not32833810 = icmp slt i64 %1173, 2
  br i1 %.not32833810, label %._crit_edge3815, label %.lr.ph3814

.lr.ph3814:                                       ; preds = %1172
  %1175 = mul nsw i64 %.1324033983433, %34
  %invariant.gep3816 = getelementptr %struct.complex, ptr %36, i64 %1175
  %1176 = add i64 %.1324033983433, 1
  br label %1177

1177:                                             ; preds = %.lr.ph3814, %.loopexit3484
  %.83199.neg3812 = phi i64 [ -1, %.lr.ph3814 ], [ %1261, %.loopexit3484 ]
  %.831993811 = phi i64 [ 1, %.lr.ph3814 ], [ %1403, %.loopexit3484 ]
  %.pre4465 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %.not32733514, label %._crit_edge4462, label %1178

._crit_edge4462:                                  ; preds = %1177
  %.pre4463 = load i64, ptr %29, align 8, !tbaa !5
  br label %1256

1178:                                             ; preds = %1177
  %1179 = sub nsw i64 %.1324033983433, %.831993811
  %1180 = add nsw i64 %.pre4465, %1179
  %1181 = load i64, ptr %2, align 8, !tbaa !5
  %1182 = icmp slt i64 %1180, %1181
  %1183 = icmp sgt i64 %1179, 1
  %or.cond3383 = and i1 %1183, %1182
  %.pre4464 = load i64, ptr %29, align 8, !tbaa !5
  br i1 %or.cond3383, label %1184, label %1256

1184:                                             ; preds = %1178
  %1185 = sub nsw i64 %.pre4464, %.831993811
  %gep3817 = getelementptr %struct.complex, ptr %invariant.gep3816, i64 %1185
  %1186 = sub nsw i64 %1180, %86
  %1187 = getelementptr inbounds float, ptr %44, i64 %1186
  %1188 = getelementptr inbounds %struct.complex, ptr %43, i64 %1186
  %1189 = call i32 @clartg_(ptr noundef %gep3817, ptr noundef nonnull %30, ptr noundef nonnull %1187, ptr noundef nonnull %1188, ptr noundef nonnull %26) #4
  %1190 = mul nsw i64 %1179, %37
  %gep5436 = getelementptr %struct.complex, ptr %invariant.gep5435, i64 %.831993811
  %1191 = getelementptr %struct.complex, ptr %gep5436, i64 %1190
  %1192 = load float, ptr %1191, align 4, !tbaa !9
  %1193 = fneg float %1192
  %1194 = getelementptr inbounds i8, ptr %1191, i64 4
  %1195 = load float, ptr %1194, align 4, !tbaa !13
  %1196 = fneg float %1195
  store i64 %1179, ptr %17, align 8, !tbaa !5
  %1197 = load i64, ptr %3, align 8, !tbaa !5
  %1198 = sub i64 %1179, %86
  %1199 = add i64 %1198, %1197
  store i64 %1199, ptr %15, align 8, !tbaa !5
  %1200 = getelementptr inbounds float, ptr %44, i64 %1199
  %1201 = load float, ptr %1200, align 4, !tbaa !12
  %1202 = getelementptr inbounds %struct.complex, ptr %43, i64 %1199
  %1203 = mul nsw i64 %1179, %34
  %1204 = load <2 x float>, ptr %30, align 8, !tbaa !12
  %1205 = insertelement <2 x float> poison, float %1196, i64 0
  %1206 = insertelement <2 x float> %1205, float %1195, i64 1
  %1207 = fmul <2 x float> %1204, %1206
  %1208 = shufflevector <2 x float> %1207, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1209 = insertelement <2 x float> poison, float %1193, i64 0
  %1210 = shufflevector <2 x float> %1209, <2 x float> poison, <2 x i32> zeroinitializer
  %1211 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1210, <2 x float> %1204, <2 x float> %1208)
  store <2 x float> %1211, ptr %20, align 8, !tbaa !12
  call void @r_cnjg(ptr noundef nonnull %22, ptr noundef nonnull %1202) #4
  %1212 = load i64, ptr %29, align 8, !tbaa !5
  %1213 = add nsw i64 %1212, %1203
  %1214 = load float, ptr %22, align 8, !tbaa !9
  %1215 = getelementptr inbounds %struct.complex, ptr %36, i64 %1213
  %1216 = load float, ptr %89, align 4, !tbaa !13
  %1217 = fneg float %1216
  %1218 = load i64, ptr %17, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.complex, ptr %43, i64 %1218
  %1220 = insertelement <2 x float> poison, float %1201, i64 0
  %1221 = shufflevector <2 x float> %1220, <2 x float> poison, <2 x i32> zeroinitializer
  %1222 = fmul <2 x float> %1211, %1221
  %1223 = load <2 x float>, ptr %1215, align 4, !tbaa !12
  %1224 = insertelement <2 x float> poison, float %1216, i64 0
  %1225 = insertelement <2 x float> %1224, float %1217, i64 1
  %1226 = fmul <2 x float> %1223, %1225
  %1227 = shufflevector <2 x float> %1226, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1228 = insertelement <2 x float> poison, float %1214, i64 0
  %1229 = shufflevector <2 x float> %1228, <2 x float> poison, <2 x i32> zeroinitializer
  %1230 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1229, <2 x float> %1223, <2 x float> %1227)
  %1231 = fsub <2 x float> %1222, %1230
  store <2 x float> %1231, ptr %1219, align 4, !tbaa !12
  store i64 %1213, ptr %17, align 8, !tbaa !5
  %1232 = load i64, ptr %3, align 8, !tbaa !5
  %1233 = add i64 %1198, %1232
  %1234 = getelementptr inbounds %struct.complex, ptr %43, i64 %1233
  %1235 = load float, ptr %1234, align 4, !tbaa !9
  %1236 = getelementptr inbounds i8, ptr %1234, i64 4
  %1237 = load float, ptr %1236, align 4, !tbaa !13
  %1238 = fneg float %1237
  %1239 = insertelement <2 x float> poison, float %1237, i64 0
  %1240 = insertelement <2 x float> %1239, float %1238, i64 1
  %1241 = fmul <2 x float> %1211, %1240
  %1242 = shufflevector <2 x float> %1241, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1243 = insertelement <2 x float> poison, float %1235, i64 0
  %1244 = shufflevector <2 x float> %1243, <2 x float> poison, <2 x i32> zeroinitializer
  %1245 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1244, <2 x float> %1211, <2 x float> %1242)
  store i64 %1233, ptr %16, align 8, !tbaa !5
  %1246 = getelementptr inbounds float, ptr %44, i64 %1233
  %1247 = load float, ptr %1246, align 4, !tbaa !12
  %1248 = getelementptr %struct.complex, ptr %36, i64 %1212
  %1249 = getelementptr %struct.complex, ptr %1248, i64 %1203
  %1250 = load <2 x float>, ptr %1249, align 4, !tbaa !12
  %1251 = insertelement <2 x float> poison, float %1247, i64 0
  %1252 = shufflevector <2 x float> %1251, <2 x float> poison, <2 x i32> zeroinitializer
  %1253 = fmul <2 x float> %1252, %1250
  store <2 x float> %1253, ptr %21, align 8, !tbaa !12
  %1254 = fadd <2 x float> %1245, %1253
  store <2 x float> %1254, ptr %20, align 8, !tbaa !12
  store <2 x float> %1254, ptr %1215, align 4, !tbaa !12
  %1255 = load <2 x float>, ptr %26, align 8, !tbaa !12
  store <2 x float> %1255, ptr %30, align 8, !tbaa !12
  br label %1256

1256:                                             ; preds = %._crit_edge4462, %1178, %1184
  %1257 = phi i64 [ %.pre4465, %._crit_edge4462 ], [ %.pre4465, %1178 ], [ %1232, %1184 ]
  %1258 = phi i64 [ %.pre4463, %._crit_edge4462 ], [ %.pre4464, %1178 ], [ %1212, %1184 ]
  %1259 = sub nsw i64 %.831993811, %.1318234013431
  %1260 = add nsw i64 %1259, 2
  %1261 = xor i64 %.831993811, -1
  %1262 = add i64 %.1324033983433, %1261
  %1263 = icmp slt i64 %1259, 0
  %1264 = select i1 %1263, i64 1, i64 %1260
  %1265 = mul nsw i64 %1258, %1264
  %1266 = add nsw i64 %1262, %1265
  %1267 = load i64, ptr %2, align 8, !tbaa !5
  %1268 = sub i64 %1267, %1266
  %1269 = add nsw i64 %1268, %1257
  %1270 = sdiv i64 %1269, %1258
  store i64 %1270, ptr %27, align 8, !tbaa !5
  %1271 = add nsw i64 %1270, -1
  %1272 = mul nsw i64 %1271, %1258
  %1273 = add nsw i64 %1272, %1266
  br i1 %.not32733514, label %1279, label %1274

1274:                                             ; preds = %1256
  %1275 = shl i64 %1257, 1
  %1276 = add i64 %1176, %.83199.neg3812
  %1277 = add i64 %1276, %1275
  %1278 = call i64 @llvm.smax.i64(i64 %1266, i64 %1277)
  br label %1279

1279:                                             ; preds = %1256, %1274
  %.13167 = phi i64 [ %1278, %1274 ], [ %1266, %1256 ]
  %1280 = add i64 %1257, %1267
  %1281 = sub i64 %1280, %.13167
  %1282 = sdiv i64 %1281, %1258
  store i64 %1282, ptr %32, align 8, !tbaa !5
  store i64 %1273, ptr %17, align 8, !tbaa !5
  store i64 %1258, ptr %15, align 8, !tbaa !5
  %1283 = icmp slt i64 %1258, 0
  %1284 = icmp sge i64 %.13167, %1273
  %1285 = icmp sle i64 %.13167, %1273
  %.in32923783 = select i1 %1283, i1 %1284, i1 %1285
  br i1 %.in32923783, label %.lr.ph3786, label %1316

.lr.ph3786:                                       ; preds = %1279
  %1286 = getelementptr %struct.complex, ptr %36, i64 %1258
  br label %1287

1287:                                             ; preds = %.lr.ph3786, %1287
  %.1632313784 = phi i64 [ %.13167, %.lr.ph3786 ], [ %1313, %1287 ]
  %1288 = sub nsw i64 %.1632313784, %86
  %reass.sub4274 = sub i64 %.1632313784, %1257
  %1289 = add i64 %reass.sub4274, 1
  %1290 = mul nsw i64 %1289, %34
  %1291 = getelementptr inbounds %struct.complex, ptr %43, i64 %1288
  %1292 = load float, ptr %1291, align 4, !tbaa !9
  %1293 = getelementptr %struct.complex, ptr %1286, i64 %1290
  %1294 = getelementptr inbounds i8, ptr %1291, i64 4
  %1295 = load float, ptr %1294, align 4, !tbaa !13
  %1296 = fneg float %1295
  %1297 = load <2 x float>, ptr %1293, align 4, !tbaa !12
  %1298 = insertelement <2 x float> poison, float %1295, i64 0
  %1299 = insertelement <2 x float> %1298, float %1296, i64 1
  %1300 = fmul <2 x float> %1297, %1299
  %1301 = shufflevector <2 x float> %1300, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1302 = insertelement <2 x float> poison, float %1292, i64 0
  %1303 = shufflevector <2 x float> %1302, <2 x float> poison, <2 x i32> zeroinitializer
  %1304 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1303, <2 x float> %1297, <2 x float> %1301)
  store <2 x float> %1304, ptr %1291, align 4, !tbaa !12
  %1305 = add nsw i64 %1290, %1258
  %1306 = getelementptr inbounds float, ptr %44, i64 %1288
  %1307 = load float, ptr %1306, align 4, !tbaa !12
  %1308 = load <2 x float>, ptr %1293, align 4, !tbaa !12
  %1309 = insertelement <2 x float> poison, float %1307, i64 0
  %1310 = shufflevector <2 x float> %1309, <2 x float> poison, <2 x i32> zeroinitializer
  %1311 = fmul <2 x float> %1310, %1308
  %1312 = getelementptr inbounds %struct.complex, ptr %36, i64 %1305
  store <2 x float> %1311, ptr %1312, align 4, !tbaa !12
  %1313 = add nsw i64 %.1632313784, %1258
  %1314 = icmp sge i64 %1313, %1273
  %1315 = icmp sle i64 %1313, %1273
  %.in3292 = select i1 %1283, i1 %1314, i1 %1315
  br i1 %.in3292, label %1287, label %._crit_edge3787, !llvm.loop !55

._crit_edge3787:                                  ; preds = %1287
  store i64 %1305, ptr %16, align 8, !tbaa !5
  store <2 x float> %1311, ptr %20, align 8, !tbaa !12
  br label %1316

1316:                                             ; preds = %._crit_edge3787, %1279
  %1317 = icmp sgt i64 %1282, 0
  br i1 %1317, label %1318, label %1327

1318:                                             ; preds = %1316
  %1319 = sub nsw i64 %.13167, %1257
  %1320 = mul nsw i64 %1319, %34
  %1321 = getelementptr %struct.complex, ptr %36, i64 %1258
  %1322 = getelementptr %struct.complex, ptr %1321, i64 %1320
  %1323 = sub nsw i64 %.13167, %86
  %1324 = getelementptr inbounds %struct.complex, ptr %43, i64 %1323
  %1325 = getelementptr inbounds float, ptr %44, i64 %1323
  %1326 = call i32 @clargv_(ptr noundef nonnull %32, ptr noundef %1322, ptr noundef nonnull %33, ptr noundef nonnull %1324, ptr noundef nonnull %29, ptr noundef nonnull %1325, ptr noundef nonnull %29) #4
  %.pre4466 = load i64, ptr %27, align 8, !tbaa !5
  %.pre4468.pre = load i64, ptr %3, align 8, !tbaa !5
  br label %1327

1327:                                             ; preds = %1318, %1316
  %.pre4468 = phi i64 [ %.pre4468.pre, %1318 ], [ %1257, %1316 ]
  %1328 = phi i64 [ %.pre4466, %1318 ], [ %1270, %1316 ]
  %1329 = icmp sgt i64 %1328, 0
  br i1 %1329, label %1330, label %1353

1330:                                             ; preds = %1327
  %1331 = add nsw i64 %.pre4468, -1
  store i64 %1331, ptr %15, align 8, !tbaa !5
  %.not32933793 = icmp slt i64 %.pre4468, 2
  %.pre4494 = sub nsw i64 %1266, %86
  br i1 %.not32933793, label %._crit_edge3797, label %.lr.ph3796

.lr.ph3796:                                       ; preds = %1330
  %1332 = getelementptr inbounds float, ptr %44, i64 %.pre4494
  %1333 = getelementptr inbounds %struct.complex, ptr %43, i64 %.pre4494
  br label %1334

1334:                                             ; preds = %.lr.ph3796, %1334
  %.63794 = phi i64 [ 1, %.lr.ph3796 ], [ %1335, %1334 ]
  %1335 = add nuw nsw i64 %.63794, 1
  %1336 = sub nsw i64 %1266, %.63794
  %1337 = mul nsw i64 %1336, %34
  %1338 = getelementptr %struct.complex, ptr %36, i64 %1335
  %1339 = getelementptr %struct.complex, ptr %1338, i64 %1337
  %gep3792 = getelementptr %struct.complex, ptr %invariant.gep3791, i64 %.63794
  %1340 = getelementptr %struct.complex, ptr %gep3792, i64 %1337
  %1341 = call i32 @clartv_(ptr noundef nonnull %27, ptr noundef %1339, ptr noundef nonnull %33, ptr noundef %1340, ptr noundef nonnull %33, ptr noundef nonnull %1332, ptr noundef nonnull %1333, ptr noundef nonnull %29) #4
  %1342 = load i64, ptr %15, align 8, !tbaa !5
  %.not3293.not = icmp slt i64 %.63794, %1342
  br i1 %.not3293.not, label %1334, label %._crit_edge3797, !llvm.loop !56

._crit_edge3797:                                  ; preds = %1334, %1330
  %1343 = mul nsw i64 %1266, %34
  %1344 = getelementptr %struct.complex, ptr %36, i64 %1343
  %1345 = getelementptr i8, ptr %1344, i64 8
  %1346 = add nsw i64 %1266, 1
  %1347 = mul nsw i64 %1346, %34
  %gep3809 = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %1347
  %1348 = getelementptr i8, ptr %1344, i64 16
  %1349 = getelementptr inbounds float, ptr %44, i64 %.pre4494
  %1350 = getelementptr inbounds %struct.complex, ptr %43, i64 %.pre4494
  %1351 = call i32 @clar2v_(ptr noundef nonnull %27, ptr noundef %1345, ptr noundef %gep3809, ptr noundef %1348, ptr noundef nonnull %33, ptr noundef nonnull %1349, ptr noundef nonnull %1350, ptr noundef nonnull %29) #4
  %1352 = call i32 @clacgv_(ptr noundef nonnull %27, ptr noundef nonnull %1350, ptr noundef nonnull %29) #4
  %.pre4467 = load i64, ptr %3, align 8, !tbaa !5
  br label %1353

1353:                                             ; preds = %._crit_edge3797, %1327
  %1354 = phi i64 [ %.pre4467, %._crit_edge3797 ], [ %.pre4468, %1327 ]
  %1355 = load i64, ptr %4, align 8, !tbaa !5
  %1356 = add nsw i64 %.83199.neg3812, 1
  %1357 = add i64 %1356, %1355
  store i64 %1357, ptr %15, align 8, !tbaa !5
  %.not3294.not3799 = icmp sgt i64 %1354, %1357
  br i1 %.not3294.not3799, label %.lr.ph3802, label %._crit_edge3803

.lr.ph3802:                                       ; preds = %1353
  %1358 = mul nsw i64 %1266, %34
  %1359 = add nsw i64 %1266, 1
  %1360 = mul nsw i64 %1359, %34
  %1361 = sub nsw i64 %1266, %86
  %1362 = getelementptr inbounds float, ptr %44, i64 %1361
  %1363 = getelementptr inbounds %struct.complex, ptr %43, i64 %1361
  br label %1364

1364:                                             ; preds = %.lr.ph3802, %1379
  %1365 = phi i64 [ %1357, %.lr.ph3802 ], [ %1380, %1379 ]
  %.73800.in = phi i64 [ %1354, %.lr.ph3802 ], [ %.73800, %1379 ]
  %.73800 = add nsw i64 %.73800.in, -1
  %1366 = load i64, ptr %2, align 8, !tbaa !5
  %1367 = sub i64 %.73800, %1266
  %1368 = add i64 %1367, %1366
  %1369 = load i64, ptr %29, align 8, !tbaa !5
  %1370 = sdiv i64 %1368, %1369
  store i64 %1370, ptr %32, align 8, !tbaa !5
  %1371 = icmp sgt i64 %1370, 0
  br i1 %1371, label %1372, label %1379

1372:                                             ; preds = %1364
  %1373 = sub nsw i64 %1369, %.73800
  %1374 = getelementptr %struct.complex, ptr %36, i64 %1373
  %1375 = getelementptr i8, ptr %1374, i64 8
  %1376 = getelementptr %struct.complex, ptr %1375, i64 %1358
  %1377 = getelementptr %struct.complex, ptr %1374, i64 %1360
  %1378 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %1376, ptr noundef nonnull %33, ptr noundef %1377, ptr noundef nonnull %33, ptr noundef nonnull %1362, ptr noundef nonnull %1363, ptr noundef nonnull %29) #4
  %.pre4469 = load i64, ptr %15, align 8, !tbaa !5
  br label %1379

1379:                                             ; preds = %1364, %1372
  %1380 = phi i64 [ %1365, %1364 ], [ %.pre4469, %1372 ]
  %.not3294.not = icmp sgt i64 %.73800, %1380
  br i1 %.not3294.not, label %1364, label %._crit_edge3803, !llvm.loop !57

._crit_edge3803:                                  ; preds = %1379, %1353
  br i1 %.not, label %1381, label %.loopexit3484

1381:                                             ; preds = %._crit_edge3803
  store i64 %1273, ptr %15, align 8, !tbaa !5
  %1382 = load i64, ptr %29, align 8, !tbaa !5
  store i64 %1382, ptr %17, align 8, !tbaa !5
  %1383 = icmp slt i64 %1382, 0
  %1384 = icmp slt i64 %1272, 1
  %1385 = icmp sgt i64 %1272, -1
  %.in32953804 = select i1 %1383, i1 %1384, i1 %1385
  br i1 %.in32953804, label %.lr.ph3807, label %.loopexit3484

.lr.ph3807:                                       ; preds = %1381, %.lr.ph3807
  %.1732323805 = phi i64 [ %1398, %.lr.ph3807 ], [ %1266, %1381 ]
  %1386 = load i64, ptr %2, align 8, !tbaa !5
  %1387 = sub nsw i64 %1386, %86
  store i64 %1387, ptr %16, align 8, !tbaa !5
  %1388 = mul nsw i64 %.1732323805, %40
  %1389 = getelementptr %struct.complex, ptr %93, i64 %1388
  %1390 = add nsw i64 %.1732323805, 1
  %1391 = mul nsw i64 %1390, %40
  %1392 = getelementptr %struct.complex, ptr %93, i64 %1391
  %1393 = sub nsw i64 %.1732323805, %86
  %1394 = getelementptr inbounds float, ptr %44, i64 %1393
  %1395 = getelementptr inbounds %struct.complex, ptr %43, i64 %1393
  %1396 = call i32 @crot_(ptr noundef nonnull %16, ptr noundef %1389, ptr noundef nonnull @c__1, ptr noundef %1392, ptr noundef nonnull @c__1, ptr noundef nonnull %1394, ptr noundef nonnull %1395) #4
  %1397 = load i64, ptr %17, align 8, !tbaa !5
  %1398 = add nsw i64 %1397, %.1732323805
  %1399 = icmp slt i64 %1397, 0
  %1400 = load i64, ptr %15, align 8
  %1401 = icmp sge i64 %1398, %1400
  %1402 = icmp sle i64 %1398, %1400
  %.in3295 = select i1 %1399, i1 %1401, i1 %1402
  br i1 %.in3295, label %.lr.ph3807, label %.loopexit3484, !llvm.loop !58

.loopexit3484:                                    ; preds = %.lr.ph3807, %1381, %._crit_edge3803
  %1403 = add nuw nsw i64 %.831993811, 1
  %1404 = load i64, ptr %18, align 8, !tbaa !5
  %.not3283.not = icmp slt i64 %.831993811, %1404
  br i1 %.not3283.not, label %1177, label %._crit_edge3815, !llvm.loop !59

._crit_edge3815:                                  ; preds = %.loopexit3484, %1172
  br i1 %.not32733514, label %1428, label %1405

1405:                                             ; preds = %._crit_edge3815
  %1406 = load i64, ptr %2, align 8, !tbaa !5
  %1407 = icmp sle i64 %.1317334073427, %1406
  %1408 = load i64, ptr %31, align 8
  %1409 = icmp sgt i64 %1408, 0
  %or.cond3 = select i1 %1407, i1 %1409, i1 false
  br i1 %or.cond3, label %1410, label %1428

1410:                                             ; preds = %1405
  %1411 = sub nsw i64 %.1324033983433, %1408
  store i64 %1411, ptr %18, align 8, !tbaa !5
  %1412 = mul nsw i64 %1411, %37
  %gep5450 = getelementptr %struct.complex, ptr %invariant.gep5449, i64 %1408
  %1413 = getelementptr %struct.complex, ptr %gep5450, i64 %1412
  %1414 = load float, ptr %1413, align 4, !tbaa !9
  %1415 = fneg float %1414
  %1416 = getelementptr inbounds i8, ptr %1413, i64 4
  %1417 = load float, ptr %1416, align 4, !tbaa !13
  %1418 = fneg float %1417
  %1419 = load <2 x float>, ptr %30, align 8, !tbaa !12
  %1420 = insertelement <2 x float> poison, float %1418, i64 0
  %1421 = insertelement <2 x float> %1420, float %1417, i64 1
  %1422 = fmul <2 x float> %1419, %1421
  %1423 = shufflevector <2 x float> %1422, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1424 = insertelement <2 x float> poison, float %1415, i64 0
  %1425 = shufflevector <2 x float> %1424, <2 x float> poison, <2 x i32> zeroinitializer
  %1426 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1425, <2 x float> %1419, <2 x float> %1423)
  store <2 x float> %1426, ptr %20, align 8, !tbaa !12
  %1427 = getelementptr inbounds %struct.complex, ptr %43, i64 %1411
  store <2 x float> %1426, ptr %1427, align 4, !tbaa !12
  br label %1428

1428:                                             ; preds = %1405, %1410, %._crit_edge3815
  %1429 = load i64, ptr %4, align 8, !tbaa !5
  %1430 = icmp sgt i64 %1429, 0
  br i1 %1430, label %.lr.ph3838.preheader, label %._crit_edge3862.thread

.lr.ph3838.preheader:                             ; preds = %1428
  %.4645 = select i1 %.not32733514, i64 1, i64 2
  br label %.lr.ph3838

.lr.ph3838:                                       ; preds = %.lr.ph3838.preheader, %1531
  %.932003836 = phi i64 [ %1532, %1531 ], [ %1429, %.lr.ph3838.preheader ]
  %1431 = sub nsw i64 %.932003836, %.1318234013431
  %1432 = add nsw i64 %1431, 1
  %1433 = xor i64 %.932003836, -1
  %1434 = add i64 %.1324033983433, %1433
  %1435 = load i64, ptr %29, align 8, !tbaa !5
  %1436 = icmp slt i64 %1431, %.4645
  %1437 = select i1 %1436, i64 %.4645, i64 %1432
  %1438 = mul nsw i64 %1435, %1437
  %1439 = add nsw i64 %1434, %1438
  store i64 %.4645, ptr %18, align 8
  store i64 %1432, ptr %17, align 8
  %1440 = load i64, ptr %4, align 8, !tbaa !5
  %1441 = sub nsw i64 %1440, %.932003836
  %1442 = icmp sgt i64 %1441, 0
  br i1 %1442, label %.lr.ph3820, label %._crit_edge3821

.lr.ph3820:                                       ; preds = %.lr.ph3838, %1464
  %.83818 = phi i64 [ %1465, %1464 ], [ %1441, %.lr.ph3838 ]
  %1443 = load i64, ptr %2, align 8, !tbaa !5
  %1444 = load i64, ptr %3, align 8, !tbaa !5
  %1445 = sub i64 %.83818, %1439
  %1446 = add i64 %1445, %1443
  %1447 = add i64 %1446, %1444
  %1448 = load i64, ptr %29, align 8, !tbaa !5
  %1449 = sdiv i64 %1447, %1448
  store i64 %1449, ptr %32, align 8, !tbaa !5
  %1450 = icmp sgt i64 %1449, 0
  br i1 %1450, label %1451, label %1464

1451:                                             ; preds = %.lr.ph3820
  %1452 = sub nsw i64 %1448, %.83818
  %1453 = sub nsw i64 %1439, %1444
  %1454 = mul nsw i64 %1453, %34
  %1455 = getelementptr %struct.complex, ptr %36, i64 %1452
  %1456 = getelementptr i8, ptr %1455, i64 8
  %1457 = getelementptr %struct.complex, ptr %1456, i64 %1454
  %1458 = add nsw i64 %1453, 1
  %1459 = mul nsw i64 %1458, %34
  %1460 = getelementptr %struct.complex, ptr %1455, i64 %1459
  %1461 = getelementptr inbounds float, ptr %44, i64 %1453
  %1462 = getelementptr inbounds %struct.complex, ptr %43, i64 %1453
  %1463 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %1457, ptr noundef nonnull %33, ptr noundef %1460, ptr noundef nonnull %33, ptr noundef nonnull %1461, ptr noundef nonnull %1462, ptr noundef nonnull %29) #4
  br label %1464

1464:                                             ; preds = %.lr.ph3820, %1451
  %1465 = add nsw i64 %.83818, -1
  %1466 = icmp sgt i64 %.83818, 1
  br i1 %1466, label %.lr.ph3820, label %._crit_edge3821.loopexit, !llvm.loop !60

._crit_edge3821.loopexit:                         ; preds = %1464
  %.pre4470 = load i64, ptr %29, align 8, !tbaa !5
  br label %._crit_edge3821

._crit_edge3821:                                  ; preds = %._crit_edge3821.loopexit, %.lr.ph3838
  %1467 = phi i64 [ %.pre4470, %._crit_edge3821.loopexit ], [ %1435, %.lr.ph3838 ]
  %1468 = load i64, ptr %2, align 8, !tbaa !5
  %1469 = sub i64 %1468, %1439
  %1470 = load i64, ptr %3, align 8, !tbaa !5
  %1471 = add nsw i64 %1469, %1470
  %1472 = sdiv i64 %1471, %1467
  store i64 %1472, ptr %27, align 8, !tbaa !5
  %1473 = add nsw i64 %1472, -1
  %1474 = mul nsw i64 %1473, %1467
  %1475 = add nsw i64 %1474, %1439
  %1476 = icmp sgt i64 %1467, 0
  %1477 = icmp sgt i64 %1474, -1
  %1478 = icmp slt i64 %1474, 1
  %.in32883822 = select i1 %1476, i1 %1477, i1 %1478
  br i1 %.in32883822, label %.lr.ph3825, label %1489

.lr.ph3825:                                       ; preds = %._crit_edge3821, %.lr.ph3825
  %.1832333823 = phi i64 [ %1486, %.lr.ph3825 ], [ %1475, %._crit_edge3821 ]
  %1479 = sub nsw i64 %.1832333823, %1470
  %1480 = getelementptr inbounds %struct.complex, ptr %43, i64 %1479
  %1481 = getelementptr inbounds %struct.complex, ptr %43, i64 %.1832333823
  %1482 = load <2 x float>, ptr %1480, align 4, !tbaa !12
  store <2 x float> %1482, ptr %1481, align 4, !tbaa !12
  %1483 = getelementptr inbounds float, ptr %44, i64 %1479
  %1484 = load float, ptr %1483, align 4, !tbaa !12
  %1485 = getelementptr inbounds float, ptr %44, i64 %.1832333823
  store float %1484, ptr %1485, align 4, !tbaa !12
  %1486 = sub i64 %.1832333823, %1467
  %1487 = icmp sge i64 %1486, %1439
  %1488 = icmp sle i64 %1486, %1439
  %.in3288 = select i1 %1476, i1 %1487, i1 %1488
  br i1 %.in3288, label %.lr.ph3825, label %._crit_edge3826, !llvm.loop !61

._crit_edge3826:                                  ; preds = %.lr.ph3825
  store i64 %.1832333823, ptr %15, align 8, !tbaa !5
  store i64 %1479, ptr %16, align 8, !tbaa !5
  br label %1489

1489:                                             ; preds = %._crit_edge3826, %._crit_edge3821
  store i64 %1475, ptr %17, align 8, !tbaa !5
  store i64 %1467, ptr %18, align 8, !tbaa !5
  %1490 = icmp slt i64 %1467, 0
  %.in32893828 = select i1 %1490, i1 %1478, i1 %1477
  br i1 %.in32893828, label %.lr.ph3831, label %1520

.lr.ph3831:                                       ; preds = %1489
  %1491 = getelementptr %struct.complex, ptr %36, i64 %1467
  br label %1492

1492:                                             ; preds = %.lr.ph3831, %1492
  %.1932343829 = phi i64 [ %1439, %.lr.ph3831 ], [ %1517, %1492 ]
  %reass.sub4275 = sub i64 %.1932343829, %1470
  %1493 = add i64 %reass.sub4275, 1
  %1494 = mul nsw i64 %1493, %34
  %1495 = getelementptr inbounds %struct.complex, ptr %43, i64 %.1932343829
  %1496 = load float, ptr %1495, align 4, !tbaa !9
  %1497 = getelementptr %struct.complex, ptr %1491, i64 %1494
  %1498 = getelementptr inbounds i8, ptr %1495, i64 4
  %1499 = load float, ptr %1498, align 4, !tbaa !13
  %1500 = fneg float %1499
  %1501 = load <2 x float>, ptr %1497, align 4, !tbaa !12
  %1502 = insertelement <2 x float> poison, float %1499, i64 0
  %1503 = insertelement <2 x float> %1502, float %1500, i64 1
  %1504 = fmul <2 x float> %1501, %1503
  %1505 = shufflevector <2 x float> %1504, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1506 = insertelement <2 x float> poison, float %1496, i64 0
  %1507 = shufflevector <2 x float> %1506, <2 x float> poison, <2 x i32> zeroinitializer
  %1508 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1507, <2 x float> %1501, <2 x float> %1505)
  store <2 x float> %1508, ptr %1495, align 4, !tbaa !12
  %1509 = add nsw i64 %1494, %1467
  %1510 = getelementptr inbounds float, ptr %44, i64 %.1932343829
  %1511 = load float, ptr %1510, align 4, !tbaa !12
  %1512 = load <2 x float>, ptr %1497, align 4, !tbaa !12
  %1513 = insertelement <2 x float> poison, float %1511, i64 0
  %1514 = shufflevector <2 x float> %1513, <2 x float> poison, <2 x i32> zeroinitializer
  %1515 = fmul <2 x float> %1514, %1512
  %1516 = getelementptr inbounds %struct.complex, ptr %36, i64 %1509
  store <2 x float> %1515, ptr %1516, align 4, !tbaa !12
  %1517 = add nsw i64 %.1932343829, %1467
  %1518 = icmp sge i64 %1517, %1475
  %1519 = icmp sle i64 %1517, %1475
  %.in3289 = select i1 %1490, i1 %1518, i1 %1519
  br i1 %.in3289, label %1492, label %._crit_edge3832, !llvm.loop !62

._crit_edge3832:                                  ; preds = %1492
  store i64 %1509, ptr %15, align 8, !tbaa !5
  store i64 %.1932343829, ptr %16, align 8, !tbaa !5
  store <2 x float> %1515, ptr %20, align 8, !tbaa !12
  br label %1520

1520:                                             ; preds = %._crit_edge3832, %1489
  br i1 %.not32733514, label %1531, label %1521

1521:                                             ; preds = %1520
  %1522 = sub nsw i64 %.1324033983433, %.932003836
  %1523 = sub nsw i64 %1468, %1470
  %1524 = icmp sge i64 %1522, %1523
  %1525 = load i64, ptr %31, align 8
  %.not3290 = icmp sgt i64 %.932003836, %1525
  %or.cond3384 = select i1 %1524, i1 true, i1 %.not3290
  br i1 %or.cond3384, label %1531, label %1526

1526:                                             ; preds = %1521
  %1527 = add nsw i64 %1470, %1522
  store i64 %1527, ptr %18, align 8, !tbaa !5
  store i64 %1522, ptr %17, align 8, !tbaa !5
  %1528 = getelementptr inbounds %struct.complex, ptr %43, i64 %1522
  %1529 = getelementptr inbounds %struct.complex, ptr %43, i64 %1527
  %1530 = load <2 x float>, ptr %1528, align 4, !tbaa !12
  store <2 x float> %1530, ptr %1529, align 4, !tbaa !12
  br label %1531

1531:                                             ; preds = %1520, %1526, %1521
  %1532 = add nsw i64 %.932003836, -1
  %1533 = icmp sgt i64 %.932003836, 1
  br i1 %1533, label %.lr.ph3838, label %._crit_edge3839, !llvm.loop !63

._crit_edge3839:                                  ; preds = %1531
  %.pre4471 = load i64, ptr %4, align 8, !tbaa !5
  %1534 = icmp sgt i64 %.pre4471, 0
  br i1 %1534, label %.lr.ph3861, label %._crit_edge3862.thread

.lr.ph3861:                                       ; preds = %._crit_edge3839, %.loopexit3483
  %.1032013859 = phi i64 [ %1626, %.loopexit3483 ], [ %.pre4471, %._crit_edge3839 ]
  store i64 1, ptr %18, align 8, !tbaa !5
  %1535 = sub nsw i64 %.1032013859, %.1318234013431
  %1536 = add nsw i64 %1535, 1
  store i64 %1536, ptr %17, align 8, !tbaa !5
  %1537 = xor i64 %.1032013859, -1
  %1538 = add i64 %.1324033983433, %1537
  %1539 = icmp slt i64 %1535, 1
  %1540 = select i1 %1539, i64 1, i64 %1536
  %1541 = load i64, ptr %29, align 8, !tbaa !5
  %1542 = mul nsw i64 %1541, %1540
  %1543 = add nsw i64 %1538, %1542
  %1544 = load i64, ptr %2, align 8, !tbaa !5
  %1545 = sub i64 %1544, %1543
  %1546 = load i64, ptr %3, align 8, !tbaa !5
  %1547 = add nsw i64 %1545, %1546
  %1548 = sdiv i64 %1547, %1541
  store i64 %1548, ptr %27, align 8, !tbaa !5
  %1549 = add nsw i64 %1548, -1
  %1550 = mul nsw i64 %1549, %1541
  %1551 = add nsw i64 %1550, %1543
  %1552 = icmp sgt i64 %1548, 0
  br i1 %1552, label %1553, label %1579

1553:                                             ; preds = %.lr.ph3861
  %1554 = sub nsw i64 %1543, %1546
  %1555 = mul nsw i64 %1554, %34
  %1556 = getelementptr %struct.complex, ptr %36, i64 %1541
  %1557 = getelementptr %struct.complex, ptr %1556, i64 %1555
  %1558 = getelementptr inbounds %struct.complex, ptr %43, i64 %1543
  %1559 = getelementptr inbounds float, ptr %44, i64 %1543
  %1560 = call i32 @clargv_(ptr noundef nonnull %27, ptr noundef %1557, ptr noundef nonnull %33, ptr noundef nonnull %1558, ptr noundef nonnull %29, ptr noundef nonnull %1559, ptr noundef nonnull %29) #4
  %1561 = load i64, ptr %3, align 8, !tbaa !5
  %1562 = add nsw i64 %1561, -1
  store i64 %1562, ptr %18, align 8, !tbaa !5
  %.not32863842 = icmp slt i64 %1561, 2
  br i1 %.not32863842, label %._crit_edge3846, label %.lr.ph3845

.lr.ph3845:                                       ; preds = %1553, %.lr.ph3845
  %.93843 = phi i64 [ %1563, %.lr.ph3845 ], [ 1, %1553 ]
  %1563 = add nuw nsw i64 %.93843, 1
  %1564 = sub nsw i64 %1543, %.93843
  %1565 = mul nsw i64 %1564, %34
  %1566 = getelementptr %struct.complex, ptr %36, i64 %1563
  %1567 = getelementptr %struct.complex, ptr %1566, i64 %1565
  %gep3841 = getelementptr %struct.complex, ptr %invariant.gep3791, i64 %.93843
  %1568 = getelementptr %struct.complex, ptr %gep3841, i64 %1565
  %1569 = call i32 @clartv_(ptr noundef nonnull %27, ptr noundef %1567, ptr noundef nonnull %33, ptr noundef %1568, ptr noundef nonnull %33, ptr noundef nonnull %1559, ptr noundef nonnull %1558, ptr noundef nonnull %29) #4
  %1570 = load i64, ptr %18, align 8, !tbaa !5
  %.not3286.not = icmp slt i64 %.93843, %1570
  br i1 %.not3286.not, label %.lr.ph3845, label %._crit_edge3846, !llvm.loop !64

._crit_edge3846:                                  ; preds = %.lr.ph3845, %1553
  %1571 = mul nsw i64 %1543, %34
  %1572 = getelementptr %struct.complex, ptr %36, i64 %1571
  %1573 = getelementptr i8, ptr %1572, i64 8
  %1574 = add nsw i64 %1543, 1
  %1575 = mul nsw i64 %1574, %34
  %gep3858 = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %1575
  %1576 = getelementptr i8, ptr %1572, i64 16
  %1577 = call i32 @clar2v_(ptr noundef nonnull %27, ptr noundef %1573, ptr noundef %gep3858, ptr noundef %1576, ptr noundef nonnull %33, ptr noundef nonnull %1559, ptr noundef nonnull %1558, ptr noundef nonnull %29) #4
  %1578 = call i32 @clacgv_(ptr noundef nonnull %27, ptr noundef nonnull %1558, ptr noundef nonnull %29) #4
  %.pre4472 = load i64, ptr %3, align 8, !tbaa !5
  br label %1579

1579:                                             ; preds = %._crit_edge3846, %.lr.ph3861
  %1580 = phi i64 [ %.pre4472, %._crit_edge3846 ], [ %1546, %.lr.ph3861 ]
  %1581 = load i64, ptr %4, align 8, !tbaa !5
  %reass.sub4276 = sub i64 %1581, %.1032013859
  %1582 = add i64 %reass.sub4276, 1
  store i64 %1582, ptr %18, align 8, !tbaa !5
  %.not3287.not3848 = icmp sgt i64 %1580, %1582
  br i1 %.not3287.not3848, label %.lr.ph3851, label %._crit_edge3852

.lr.ph3851:                                       ; preds = %1579
  %1583 = mul nsw i64 %1543, %34
  %1584 = add nsw i64 %1543, 1
  %1585 = mul nsw i64 %1584, %34
  %1586 = getelementptr inbounds float, ptr %44, i64 %1543
  %1587 = getelementptr inbounds %struct.complex, ptr %43, i64 %1543
  br label %1588

1588:                                             ; preds = %.lr.ph3851, %1603
  %1589 = phi i64 [ %1582, %.lr.ph3851 ], [ %1604, %1603 ]
  %.103849.in = phi i64 [ %1580, %.lr.ph3851 ], [ %.103849, %1603 ]
  %.103849 = add nsw i64 %.103849.in, -1
  %1590 = load i64, ptr %2, align 8, !tbaa !5
  %1591 = sub i64 %.103849, %1543
  %1592 = add i64 %1591, %1590
  %1593 = load i64, ptr %29, align 8, !tbaa !5
  %1594 = sdiv i64 %1592, %1593
  store i64 %1594, ptr %32, align 8, !tbaa !5
  %1595 = icmp sgt i64 %1594, 0
  br i1 %1595, label %1596, label %1603

1596:                                             ; preds = %1588
  %1597 = sub nsw i64 %1593, %.103849
  %1598 = getelementptr %struct.complex, ptr %36, i64 %1597
  %1599 = getelementptr i8, ptr %1598, i64 8
  %1600 = getelementptr %struct.complex, ptr %1599, i64 %1583
  %1601 = getelementptr %struct.complex, ptr %1598, i64 %1585
  %1602 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %1600, ptr noundef nonnull %33, ptr noundef %1601, ptr noundef nonnull %33, ptr noundef nonnull %1586, ptr noundef nonnull %1587, ptr noundef nonnull %29) #4
  %.pre4473 = load i64, ptr %18, align 8, !tbaa !5
  br label %1603

1603:                                             ; preds = %1588, %1596
  %1604 = phi i64 [ %1589, %1588 ], [ %.pre4473, %1596 ]
  %.not3287.not = icmp sgt i64 %.103849, %1604
  br i1 %.not3287.not, label %1588, label %._crit_edge3852, !llvm.loop !65

._crit_edge3852:                                  ; preds = %1603, %1579
  br i1 %.not, label %1605, label %.loopexit3483

1605:                                             ; preds = %._crit_edge3852
  store i64 %1551, ptr %18, align 8, !tbaa !5
  %1606 = load i64, ptr %29, align 8, !tbaa !5
  store i64 %1606, ptr %17, align 8, !tbaa !5
  %1607 = icmp slt i64 %1606, 0
  %1608 = icmp slt i64 %1550, 1
  %1609 = icmp sgt i64 %1550, -1
  %.in3853 = select i1 %1607, i1 %1608, i1 %1609
  br i1 %.in3853, label %.lr.ph3856, label %.loopexit3483

.lr.ph3856:                                       ; preds = %1605, %.lr.ph3856
  %.2032353854 = phi i64 [ %1621, %.lr.ph3856 ], [ %1543, %1605 ]
  %1610 = load i64, ptr %2, align 8, !tbaa !5
  %1611 = sub nsw i64 %1610, %86
  store i64 %1611, ptr %15, align 8, !tbaa !5
  %1612 = mul nsw i64 %.2032353854, %40
  %1613 = getelementptr %struct.complex, ptr %93, i64 %1612
  %1614 = add nsw i64 %.2032353854, 1
  %1615 = mul nsw i64 %1614, %40
  %1616 = getelementptr %struct.complex, ptr %93, i64 %1615
  %1617 = getelementptr inbounds float, ptr %44, i64 %.2032353854
  %1618 = getelementptr inbounds %struct.complex, ptr %43, i64 %.2032353854
  %1619 = call i32 @crot_(ptr noundef nonnull %15, ptr noundef %1613, ptr noundef nonnull @c__1, ptr noundef %1616, ptr noundef nonnull @c__1, ptr noundef nonnull %1617, ptr noundef nonnull %1618) #4
  %1620 = load i64, ptr %17, align 8, !tbaa !5
  %1621 = add nsw i64 %1620, %.2032353854
  %1622 = icmp slt i64 %1620, 0
  %1623 = load i64, ptr %18, align 8
  %1624 = icmp sge i64 %1621, %1623
  %1625 = icmp sle i64 %1621, %1623
  %.in = select i1 %1622, i1 %1624, i1 %1625
  br i1 %.in, label %.lr.ph3856, label %.loopexit3483, !llvm.loop !66

.loopexit3483:                                    ; preds = %.lr.ph3856, %1605, %._crit_edge3852
  %1626 = add nsw i64 %.1032013859, -1
  %1627 = icmp sgt i64 %.1032013859, 1
  br i1 %1627, label %.lr.ph3861, label %._crit_edge3862, !llvm.loop !67

._crit_edge3862.thread:                           ; preds = %._crit_edge3839, %1428
  %.ph4532 = phi i64 [ %.pre4471, %._crit_edge3839 ], [ %1429, %1428 ]
  %1628 = add nsw i64 %.ph4532, -1
  store i64 %1628, ptr %17, align 8, !tbaa !5
  br label %.loopexit3487

._crit_edge3862:                                  ; preds = %.loopexit3483
  %.pre4474 = load i64, ptr %4, align 8, !tbaa !5
  %1629 = add nsw i64 %.pre4474, -1
  store i64 %1629, ptr %17, align 8, !tbaa !5
  %.not32843867 = icmp slt i64 %.pre4474, 2
  br i1 %.not32843867, label %.loopexit3487, label %.lr.ph3870

.lr.ph3870:                                       ; preds = %._crit_edge3862, %._crit_edge3866
  %1630 = phi i64 [ %1666, %._crit_edge3866 ], [ %1629, %._crit_edge3862 ]
  %.1132023868 = phi i64 [ %1667, %._crit_edge3866 ], [ 1, %._crit_edge3862 ]
  store i64 1, ptr %18, align 8, !tbaa !5
  %1631 = sub nsw i64 %.1132023868, %.1318234013431
  %1632 = add nsw i64 %1631, 2
  store i64 %1632, ptr %15, align 8, !tbaa !5
  %1633 = load i64, ptr %4, align 8, !tbaa !5
  %1634 = sub nsw i64 %1633, %.1132023868
  %1635 = icmp sgt i64 %1634, 0
  br i1 %1635, label %.lr.ph3865, label %._crit_edge3866

.lr.ph3865:                                       ; preds = %.lr.ph3870
  %1636 = xor i64 %.1132023868, -1
  %1637 = add i64 %.1324033983433, %1636
  %1638 = load i64, ptr %29, align 8, !tbaa !5
  %1639 = icmp slt i64 %1631, 0
  %1640 = select i1 %1639, i64 1, i64 %1632
  %1641 = mul nsw i64 %1638, %1640
  %1642 = add nsw i64 %1637, %1641
  %1643 = mul nsw i64 %1642, %34
  %1644 = add nsw i64 %1642, 1
  %1645 = mul nsw i64 %1644, %34
  %1646 = sub nsw i64 %1642, %86
  %1647 = getelementptr inbounds float, ptr %44, i64 %1646
  %1648 = getelementptr inbounds %struct.complex, ptr %43, i64 %1646
  br label %1649

1649:                                             ; preds = %.lr.ph3865, %1663
  %.113863 = phi i64 [ %1634, %.lr.ph3865 ], [ %1664, %1663 ]
  %1650 = load i64, ptr %2, align 8, !tbaa !5
  %1651 = sub i64 %.113863, %1642
  %1652 = add i64 %1651, %1650
  %1653 = load i64, ptr %29, align 8, !tbaa !5
  %1654 = sdiv i64 %1652, %1653
  store i64 %1654, ptr %32, align 8, !tbaa !5
  %1655 = icmp sgt i64 %1654, 0
  br i1 %1655, label %1656, label %1663

1656:                                             ; preds = %1649
  %1657 = sub nsw i64 %1653, %.113863
  %1658 = getelementptr %struct.complex, ptr %36, i64 %1657
  %1659 = getelementptr i8, ptr %1658, i64 8
  %1660 = getelementptr %struct.complex, ptr %1659, i64 %1643
  %1661 = getelementptr %struct.complex, ptr %1658, i64 %1645
  %1662 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %1660, ptr noundef nonnull %33, ptr noundef %1661, ptr noundef nonnull %33, ptr noundef nonnull %1647, ptr noundef nonnull %1648, ptr noundef nonnull %29) #4
  br label %1663

1663:                                             ; preds = %1649, %1656
  %1664 = add nsw i64 %.113863, -1
  %1665 = icmp sgt i64 %.113863, 1
  br i1 %1665, label %1649, label %._crit_edge3866.loopexit, !llvm.loop !68

._crit_edge3866.loopexit:                         ; preds = %1663
  %.pre4475 = load i64, ptr %17, align 8, !tbaa !5
  br label %._crit_edge3866

._crit_edge3866:                                  ; preds = %._crit_edge3866.loopexit, %.lr.ph3870
  %1666 = phi i64 [ %.pre4475, %._crit_edge3866.loopexit ], [ %1630, %.lr.ph3870 ]
  %1667 = add nuw nsw i64 %.1132023868, 1
  %.not3284.not = icmp slt i64 %.1132023868, %1666
  br i1 %.not3284.not, label %.lr.ph3870, label %._crit_edge3871, !llvm.loop !69

._crit_edge3871:                                  ; preds = %._crit_edge3866
  %.pre4476 = load i64, ptr %4, align 8, !tbaa !5
  %1668 = icmp sgt i64 %.pre4476, 1
  br i1 %1668, label %1669, label %.loopexit3487

1669:                                             ; preds = %._crit_edge3871
  %1670 = load i64, ptr %3, align 8, !tbaa !5
  %1671 = add nsw i64 %1670, %.1317334073427
  store i64 %1671, ptr %17, align 8, !tbaa !5
  %1672 = load i64, ptr %2, align 8, !tbaa !5
  %.not3285.not3872 = icmp sgt i64 %1672, %1671
  br i1 %.not3285.not3872, label %.lr.ph3875, label %.loopexit3487

.lr.ph3875:                                       ; preds = %1669
  %1673 = add i64 %1670, %86
  %1674 = sub i64 %1672, %1671
  %min.iters.check = icmp ult i64 %1674, 284
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph3875
  %1675 = xor i64 %1671, -1
  %1676 = add i64 %1672, %1675
  %1677 = shl i64 %1672, 3
  %1678 = sub i64 %1672, %1673
  %1679 = shl i64 %1678, 3
  %scevgep4725 = getelementptr i8, ptr %scevgep, i64 %1679
  %mul.result.neg = mul i64 %1676, -8
  %1680 = getelementptr i8, ptr %scevgep4725, i64 %mul.result.neg
  %1681 = icmp ugt ptr %1680, %scevgep4725
  %scevgep4727 = getelementptr i8, ptr %scevgep4726, i64 %1677
  %mul.result4729.neg = mul i64 %1676, -8
  %mul.overflow4730 = icmp ugt i64 %1676, 2305843009213693951
  %1682 = getelementptr i8, ptr %scevgep4727, i64 %mul.result4729.neg
  %1683 = icmp ugt ptr %1682, %scevgep4727
  %1684 = or i1 %1683, %mul.overflow4730
  %scevgep4732 = getelementptr i8, ptr %scevgep4731, i64 %1677
  %mul.result4734.neg = mul i64 %1676, -8
  %1685 = getelementptr i8, ptr %scevgep4732, i64 %mul.result4734.neg
  %1686 = icmp ugt ptr %1685, %scevgep4732
  %scevgep4737 = getelementptr i8, ptr %scevgep4736, i64 %1679
  %mul.result4739.neg = mul i64 %1676, -8
  %1687 = getelementptr i8, ptr %scevgep4737, i64 %mul.result4739.neg
  %1688 = icmp ugt ptr %1687, %scevgep4737
  %1689 = shl i64 %1672, 2
  %scevgep4742 = getelementptr i8, ptr %scevgep4741, i64 %1689
  %mul.result4744.neg = mul i64 %1676, -4
  %1690 = getelementptr i8, ptr %scevgep4742, i64 %mul.result4744.neg
  %1691 = icmp ugt ptr %1690, %scevgep4742
  %1692 = sub i64 %1672, %1673
  %1693 = shl i64 %1692, 2
  %scevgep4747 = getelementptr i8, ptr %scevgep4746, i64 %1693
  %mul.result4749.neg = mul i64 %1676, -4
  %1694 = getelementptr i8, ptr %scevgep4747, i64 %mul.result4749.neg
  %1695 = icmp ugt ptr %1694, %scevgep4747
  %1696 = or i1 %1681, %1684
  %1697 = or i1 %1686, %1696
  %1698 = or i1 %1688, %1697
  %1699 = or i1 %1691, %1698
  %1700 = or i1 %1695, %1699
  br i1 %1700, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %1701 = shl i64 %1671, 3
  %scevgep4752 = getelementptr i8, ptr %scevgep4751, i64 %1701
  %1702 = shl i64 %1672, 3
  %scevgep4754 = getelementptr i8, ptr %scevgep4753, i64 %1702
  %scevgep4756 = getelementptr i8, ptr %scevgep4755, i64 %1701
  %scevgep4758 = getelementptr i8, ptr %scevgep4757, i64 %1702
  %1703 = shl i64 %.1317334073427, 3
  %scevgep4760 = getelementptr i8, ptr %scevgep4759, i64 %1703
  %1704 = sub i64 %1672, %1673
  %1705 = shl i64 %1704, 3
  %scevgep4762 = getelementptr i8, ptr %scevgep4761, i64 %1705
  %scevgep4764 = getelementptr i8, ptr %scevgep4763, i64 %1703
  %scevgep4766 = getelementptr i8, ptr %scevgep4765, i64 %1705
  %1706 = shl i64 %1671, 2
  %scevgep4768 = getelementptr i8, ptr %scevgep4767, i64 %1706
  %1707 = shl i64 %1672, 2
  %scevgep4770 = getelementptr i8, ptr %scevgep4769, i64 %1707
  %1708 = shl i64 %.1317334073427, 2
  %scevgep4772 = getelementptr i8, ptr %scevgep4771, i64 %1708
  %1709 = sub i64 %1672, %1673
  %1710 = shl i64 %1709, 2
  %scevgep4774 = getelementptr i8, ptr %scevgep4773, i64 %1710
  %bound0 = icmp ult ptr %scevgep4752, %scevgep4758
  %bound1 = icmp ult ptr %scevgep4756, %scevgep4754
  %found.conflict = and i1 %bound0, %bound1
  %bound04775 = icmp ult ptr %scevgep4752, %scevgep4762
  %bound14776 = icmp ult ptr %scevgep4760, %scevgep4754
  %found.conflict4777 = and i1 %bound04775, %bound14776
  %conflict.rdx = or i1 %found.conflict, %found.conflict4777
  %bound04778 = icmp ult ptr %scevgep4752, %scevgep4766
  %bound14779 = icmp ult ptr %scevgep4764, %scevgep4754
  %found.conflict4780 = and i1 %bound04778, %bound14779
  %conflict.rdx4781 = or i1 %conflict.rdx, %found.conflict4780
  %bound04782 = icmp ult ptr %scevgep4752, %scevgep4770
  %bound14783 = icmp ult ptr %scevgep4768, %scevgep4754
  %found.conflict4784 = and i1 %bound04782, %bound14783
  %conflict.rdx4785 = or i1 %conflict.rdx4781, %found.conflict4784
  %bound04786 = icmp ult ptr %scevgep4752, %scevgep4774
  %bound14787 = icmp ult ptr %scevgep4772, %scevgep4754
  %found.conflict4788 = and i1 %bound04786, %bound14787
  %conflict.rdx4789 = or i1 %conflict.rdx4785, %found.conflict4788
  %bound04790 = icmp ult ptr %scevgep4756, %scevgep4762
  %bound14791 = icmp ult ptr %scevgep4760, %scevgep4758
  %found.conflict4792 = and i1 %bound04790, %bound14791
  %conflict.rdx4793 = or i1 %conflict.rdx4789, %found.conflict4792
  %bound04794 = icmp ult ptr %scevgep4756, %scevgep4766
  %bound14795 = icmp ult ptr %scevgep4764, %scevgep4758
  %found.conflict4796 = and i1 %bound04794, %bound14795
  %conflict.rdx4797 = or i1 %conflict.rdx4793, %found.conflict4796
  %bound04798 = icmp ult ptr %scevgep4756, %scevgep4770
  %bound14799 = icmp ult ptr %scevgep4768, %scevgep4758
  %found.conflict4800 = and i1 %bound04798, %bound14799
  %conflict.rdx4801 = or i1 %conflict.rdx4797, %found.conflict4800
  %bound04802 = icmp ult ptr %scevgep4756, %scevgep4774
  %bound14803 = icmp ult ptr %scevgep4772, %scevgep4758
  %found.conflict4804 = and i1 %bound04802, %bound14803
  %conflict.rdx4805 = or i1 %conflict.rdx4801, %found.conflict4804
  %bound04806 = icmp ult ptr %scevgep4760, %scevgep4770
  %bound14807 = icmp ult ptr %scevgep4768, %scevgep4762
  %found.conflict4808 = and i1 %bound04806, %bound14807
  %conflict.rdx4809 = or i1 %conflict.rdx4805, %found.conflict4808
  %bound04810 = icmp ult ptr %scevgep4764, %scevgep4770
  %bound14811 = icmp ult ptr %scevgep4768, %scevgep4766
  %found.conflict4812 = and i1 %bound04810, %bound14811
  %conflict.rdx4813 = or i1 %conflict.rdx4809, %found.conflict4812
  %bound04814 = icmp ult ptr %scevgep4768, %scevgep4774
  %bound14815 = icmp ult ptr %scevgep4772, %scevgep4770
  %found.conflict4816 = and i1 %bound04814, %bound14815
  %conflict.rdx4817 = or i1 %conflict.rdx4813, %found.conflict4816
  br i1 %conflict.rdx4817, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %1674, -4
  %ind.end = sub i64 %1672, %n.vec
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = sub i64 %1672, %index
  %1711 = add nsw i64 %offset.idx, -1
  %1712 = sub i64 %1711, %1673
  %gep5438 = getelementptr float, ptr %invariant.gep5437, i64 %1712
  %wide.load = load <4 x float>, ptr %gep5438, align 4, !tbaa !12, !alias.scope !70
  %1713 = sub nsw i64 %1711, %86
  %gep5440 = getelementptr float, ptr %invariant.gep5439, i64 %1713
  store <4 x float> %wide.load, ptr %gep5440, align 4, !tbaa !12, !alias.scope !73, !noalias !70
  %gep5442 = getelementptr %struct.complex, ptr %invariant.gep5441, i64 %1712
  %interleaved.vec = load <8 x float>, ptr %gep5442, align 4, !tbaa !12
  %gep5444 = getelementptr %struct.complex, ptr %invariant.gep5443, i64 %1713, i32 1
  store <8 x float> %interleaved.vec, ptr %gep5444, align 4, !tbaa !12
  %index.next = add nuw i64 %index, 4
  %1714 = icmp eq i64 %index.next, %n.vec
  br i1 %1714, label %middle.block, label %vector.body, !llvm.loop !75

middle.block:                                     ; preds = %vector.body
  %1715 = add i64 %offset.idx, -4
  %1716 = sub nsw i64 %1715, %86
  %1717 = sub i64 %1715, %1673
  %cmp.n = icmp eq i64 %1674, %n.vec
  br i1 %cmp.n, label %..loopexit3487_crit_edge, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %vector.scevcheck, %.lr.ph3875
  %.213236.in3873.ph = phi i64 [ %1672, %vector.memcheck ], [ %1672, %vector.scevcheck ], [ %1672, %.lr.ph3875 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.213236.in3873 = phi i64 [ %.213236, %scalar.ph ], [ %.213236.in3873.ph, %scalar.ph.preheader ]
  %.213236 = add nsw i64 %.213236.in3873, -1
  %1718 = sub i64 %.213236, %1673
  %1719 = getelementptr inbounds float, ptr %44, i64 %1718
  %1720 = load float, ptr %1719, align 4, !tbaa !12
  %1721 = sub nsw i64 %.213236, %86
  %1722 = getelementptr inbounds float, ptr %44, i64 %1721
  store float %1720, ptr %1722, align 4, !tbaa !12
  %1723 = getelementptr inbounds %struct.complex, ptr %43, i64 %1718
  %1724 = getelementptr inbounds %struct.complex, ptr %43, i64 %1721
  %1725 = load <2 x float>, ptr %1723, align 4, !tbaa !12
  store <2 x float> %1725, ptr %1724, align 4, !tbaa !12
  %.not3285.not = icmp sgt i64 %.213236, %1671
  br i1 %.not3285.not, label %scalar.ph, label %..loopexit3487_crit_edge, !llvm.loop !76

..loopexit3487_crit_edge:                         ; preds = %scalar.ph, %middle.block
  %.lcssa4716 = phi i64 [ %1717, %middle.block ], [ %1718, %scalar.ph ]
  %.lcssa4715 = phi i64 [ %1716, %middle.block ], [ %1721, %scalar.ph ]
  store i64 %.lcssa4715, ptr %18, align 8, !tbaa !5
  store i64 %.lcssa4716, ptr %15, align 8, !tbaa !5
  br label %.loopexit3487

..loopexit3488_crit_edge:                         ; preds = %scalar.ph4928, %middle.block4927
  %.lcssa4707 = phi i64 [ %918, %middle.block4927 ], [ %919, %scalar.ph4928 ]
  %.lcssa4706 = phi i64 [ %917, %middle.block4927 ], [ %922, %scalar.ph4928 ]
  store i64 %.lcssa4706, ptr %17, align 8, !tbaa !5
  store i64 %.lcssa4707, ptr %18, align 8, !tbaa !5
  br label %.loopexit3487

.loopexit3487:                                    ; preds = %._crit_edge3862.thread, %._crit_edge3862, %._crit_edge3767.thread, %._crit_edge3767, %870, %..loopexit3488_crit_edge, %1669, %..loopexit3487_crit_edge, %._crit_edge3871, %._crit_edge3776
  %1726 = phi i64 [ %.pre4476, %._crit_edge3871 ], [ %.pre4460, %._crit_edge3776 ], [ %.pre4476, %..loopexit3487_crit_edge ], [ %.pre4476, %1669 ], [ %.pre4460, %..loopexit3488_crit_edge ], [ %.pre4460, %870 ], [ %.ph, %._crit_edge3767.thread ], [ %.pre4458, %._crit_edge3767 ], [ %.ph4532, %._crit_edge3862.thread ], [ %.pre4474, %._crit_edge3862 ]
  %.03518 = phi i64 [ %.03520, %._crit_edge3871 ], [ %.03519, %._crit_edge3776 ], [ %.03520, %..loopexit3487_crit_edge ], [ %.03520, %1669 ], [ %.03519, %..loopexit3488_crit_edge ], [ %.03519, %870 ], [ %.03519, %._crit_edge3767.thread ], [ %.03519, %._crit_edge3767 ], [ %.03520, %._crit_edge3862.thread ], [ %.03520, %._crit_edge3862 ]
  %.131733406 = phi i64 [ %.1317334073427, %._crit_edge3871 ], [ %.1317334053414, %._crit_edge3776 ], [ %.1317334073427, %..loopexit3487_crit_edge ], [ %.1317334073427, %1669 ], [ %.1317334053414, %..loopexit3488_crit_edge ], [ %.1317334053414, %870 ], [ %.1317334053414, %._crit_edge3767.thread ], [ %.1317334053414, %._crit_edge3767 ], [ %.1317334073427, %._crit_edge3862.thread ], [ %.1317334073427, %._crit_edge3862 ]
  %.131773403 = phi i64 [ %.1317734043429, %._crit_edge3871 ], [ %.1317734023416, %._crit_edge3776 ], [ %.1317734043429, %..loopexit3487_crit_edge ], [ %.1317734043429, %1669 ], [ %.1317734023416, %..loopexit3488_crit_edge ], [ %.1317734023416, %870 ], [ %.1317734023416, %._crit_edge3767.thread ], [ %.1317734023416, %._crit_edge3767 ], [ %.1317734043429, %._crit_edge3862.thread ], [ %.1317734043429, %._crit_edge3862 ]
  %.131823400 = phi i64 [ %.1318234013431, %._crit_edge3871 ], [ %.1318233993418, %._crit_edge3776 ], [ %.1318234013431, %..loopexit3487_crit_edge ], [ %.1318234013431, %1669 ], [ %.1318233993418, %..loopexit3488_crit_edge ], [ %.1318233993418, %870 ], [ %.1318233993418, %._crit_edge3767.thread ], [ %.1318233993418, %._crit_edge3767 ], [ %.1318234013431, %._crit_edge3862.thread ], [ %.1318234013431, %._crit_edge3862 ]
  %.132403397 = phi i64 [ %.1324033983433, %._crit_edge3871 ], [ %.1324033963420, %._crit_edge3776 ], [ %.1324033983433, %..loopexit3487_crit_edge ], [ %.1324033983433, %1669 ], [ %.1324033963420, %..loopexit3488_crit_edge ], [ %.1324033963420, %870 ], [ %.1324033963420, %._crit_edge3767.thread ], [ %.1324033963420, %._crit_edge3767 ], [ %.1324033983433, %._crit_edge3862.thread ], [ %.1324033983433, %._crit_edge3862 ]
  %.pre4395.pre = load i64, ptr %2, align 8, !tbaa !5
  br label %.outer3489

.loopexit3491:                                    ; preds = %._crit_edge, %.lr.ph.split
  %.23183 = phi i64 [ %86, %.lr.ph.split ], [ %.03181.lcssa, %._crit_edge ]
  %.23178 = phi i64 [ %123, %.lr.ph.split ], [ %.03176.lcssa, %._crit_edge ]
  %.23174 = phi i64 [ %126, %.lr.ph.split ], [ %.03172.lcssa, %._crit_edge ]
  %invariant.gep4246 = getelementptr i8, ptr %42, i64 8
  %invariant.gep4252 = getelementptr i8, ptr %39, i64 16
  %scevgep5138 = getelementptr i8, ptr %11, i64 12
  %scevgep5146 = getelementptr i8, ptr %11, i64 8
  %scevgep5150 = getelementptr i8, ptr %11, i64 8
  %scevgep5156 = getelementptr i8, ptr %12, i64 4
  %scevgep5158 = getelementptr i8, ptr %11, i64 -4
  %scevgep5161 = getelementptr i8, ptr %12, i64 4
  %scevgep5164 = getelementptr i8, ptr %11, i64 8
  %scevgep5166 = getelementptr i8, ptr %11, i64 -4
  %scevgep5168 = getelementptr i8, ptr %11, i64 12
  br i1 %.not3268, label %.outer.us.preheader, label %.outer.preheader

.outer.preheader:                                 ; preds = %.loopexit3491
  %1727 = shl i64 %34, 3
  %1728 = sub nuw nsw i64 -8, %1727
  %scevgep5108 = getelementptr i8, ptr %5, i64 %1728
  %1729 = add i64 %34, 2305843009213693951
  %1730 = sub nuw nsw i64 -4, %1727
  %scevgep5113 = getelementptr i8, ptr %5, i64 %1730
  %invariant.gep5471 = getelementptr %struct.complex, ptr %39, i64 %50
  %invariant.gep5473 = getelementptr i8, ptr %36, i64 8
  %invariant.gep5475 = getelementptr i8, ptr %36, i64 16
  %invariant.gep5477 = getelementptr i8, ptr %36, i64 24
  %invariant.gep5465 = getelementptr i8, ptr %36, i64 8
  %invariant.gep5467 = getelementptr i8, ptr %36, i64 8
  br label %.outer

.outer.us.preheader:                              ; preds = %.loopexit3491
  %scevgep5244 = getelementptr i8, ptr %5, i64 8
  %scevgep5249 = getelementptr i8, ptr %5, i64 12
  %invariant.gep5485 = getelementptr i8, ptr %39, i64 8
  %invariant.gep5487 = getelementptr i8, ptr %39, i64 8
  %invariant.gep5489 = getelementptr i8, ptr %39, i64 8
  br label %.outer.us

.outer.us:                                        ; preds = %.outer.us.backedge, %.outer.us.preheader
  %.pre4422 = phi i64 [ %.pre4394, %.outer.us.preheader ], [ %.pre4422.be, %.outer.us.backedge ]
  %1731 = phi i64 [ %118, %.outer.us.preheader ], [ %.be, %.outer.us.backedge ]
  %.23241.ph.us = phi i64 [ 0, %.outer.us.preheader ], [ %.33242.us, %.outer.us.backedge ]
  %.33184.ph.us = phi i64 [ %.23183, %.outer.us.preheader ], [ %.43185.us, %.outer.us.backedge ]
  %.33179.ph.us = phi i64 [ %.23178, %.outer.us.preheader ], [ %.43180.us, %.outer.us.backedge ]
  %.33175.ph.us = phi i64 [ %.23174, %.outer.us.preheader ], [ %.4.us, %.outer.us.backedge ]
  %.1.ph.us = phi i64 [ 1, %.outer.us.preheader ], [ %.13497.us, %.outer.us.backedge ]
  %.not33243880.us = icmp eq i64 %.1.ph.us, 0
  br i1 %.not33243880.us, label %1732, label %.lr.ph3883.us

1732:                                             ; preds = %.lr.ph3883.split.split.us, %.outer.us
  %.33184.lcssa.us = phi i64 [ %88, %.lr.ph3883.split.split.us ], [ %.33184.ph.us, %.outer.us ]
  %.33179.lcssa.us = phi i64 [ %2451, %.lr.ph3883.split.split.us ], [ %.33179.ph.us, %.outer.us ]
  %.33175.lcssa.us = phi i64 [ %2454, %.lr.ph3883.split.split.us ], [ %.33175.ph.us, %.outer.us ]
  %1733 = sub nsw i64 %.23241.ph.us, %.pre4422
  %1734 = icmp slt i64 %1733, 2
  br i1 %1734, label %.loopexit3480, label %1735

1735:                                             ; preds = %.lr.ph3883.split.us.us, %1732
  %.13497.us = phi i64 [ 0, %1732 ], [ %.1.ph.us, %.lr.ph3883.split.us.us ]
  %.not33243494.us = phi i1 [ true, %1732 ], [ false, %.lr.ph3883.split.us.us ]
  %.33242.us = phi i64 [ %1733, %1732 ], [ %2447, %.lr.ph3883.split.us.us ]
  %.43185.us = phi i64 [ %.33184.lcssa.us, %1732 ], [ %2456, %.lr.ph3883.split.us.us ]
  %.43180.us = phi i64 [ %.33179.lcssa.us, %1732 ], [ %2451, %.lr.ph3883.split.us.us ]
  %.4.us = phi i64 [ %.33175.lcssa.us, %1732 ], [ %2454, %.lr.ph3883.split.us.us ]
  %1736 = load i64, ptr %31, align 8, !tbaa !5
  %1737 = sub nsw i64 %86, %1736
  %1738 = icmp slt i64 %.33242.us, %1737
  br i1 %1738, label %1741, label %1739

1739:                                             ; preds = %1735
  %1740 = load i64, ptr %2, align 8, !tbaa !5
  br label %1741

1741:                                             ; preds = %1739, %1735
  %storemerge.us = phi i64 [ %1740, %1739 ], [ %86, %1735 ]
  store i64 %storemerge.us, ptr %28, align 8, !tbaa !5
  br i1 %.not33243494.us, label %1919, label %1742

1742:                                             ; preds = %1741
  %1743 = mul nsw i64 %.33242.us, %37
  %gep5486 = getelementptr %struct.complex, ptr %invariant.gep5485, i64 %1743
  %1744 = load float, ptr %gep5486, align 4, !tbaa !9
  %1745 = mul nsw i64 %.33242.us, %34
  %1746 = add nsw i64 %1745, 1
  %1747 = getelementptr inbounds %struct.complex, ptr %36, i64 %1746
  %1748 = load float, ptr %1747, align 4, !tbaa !9
  %1749 = fdiv float %1748, %1744
  %1750 = fdiv float %1749, %1744
  store float %1750, ptr %19, align 4, !tbaa !12
  store float %1750, ptr %1747, align 4, !tbaa !9
  %1751 = getelementptr inbounds %struct.complex, ptr %36, i64 %1746, i32 1
  store float 0.000000e+00, ptr %1751, align 4, !tbaa !13
  %1752 = add nsw i64 %.33242.us, -1
  store i64 %1752, ptr %18, align 8, !tbaa !5
  %.not33284062.us.not = icmp slt i64 %.43180.us, %.33242.us
  %1753 = add i64 %.33242.us, 1
  br i1 %.not33284062.us.not, label %.lr.ph4065.us.preheader, label %._crit_edge4492

.lr.ph4065.us.preheader:                          ; preds = %1742
  %1754 = sub i64 %.33242.us, %.43180.us
  %.neg5356 = add i64 %.43180.us, 1
  %xtraiter5348 = and i64 %1754, 1
  %lcmp.mod5349.not = icmp eq i64 %xtraiter5348, 0
  br i1 %lcmp.mod5349.not, label %.lr.ph4065.us.prol.loopexit, label %.lr.ph4065.us.prol

.lr.ph4065.us.prol:                               ; preds = %.lr.ph4065.us.preheader
  %1755 = mul nsw i64 %.43180.us, %34
  %1756 = sub i64 %1753, %.43180.us
  %1757 = getelementptr %struct.complex, ptr %36, i64 %1756
  %1758 = getelementptr %struct.complex, ptr %1757, i64 %1755
  %1759 = load <2 x float>, ptr %1758, align 4, !tbaa !12
  %1760 = insertelement <2 x float> poison, float %1744, i64 0
  %1761 = shufflevector <2 x float> %1760, <2 x float> poison, <2 x i32> zeroinitializer
  %1762 = fdiv <2 x float> %1759, %1761
  store <2 x float> %1762, ptr %1758, align 4, !tbaa !12
  %1763 = add i64 %.43180.us, 1
  br label %.lr.ph4065.us.prol.loopexit

.lr.ph4065.us.prol.loopexit:                      ; preds = %.lr.ph4065.us.prol, %.lr.ph4065.us.preheader
  %.lcssa.unr = phi <2 x float> [ poison, %.lr.ph4065.us.preheader ], [ %1762, %.lr.ph4065.us.prol ]
  %.334063.us.unr = phi i64 [ %.43180.us, %.lr.ph4065.us.preheader ], [ %1763, %.lr.ph4065.us.prol ]
  %1764 = icmp eq i64 %.33242.us, %.neg5356
  br i1 %1764, label %._crit_edge4066.us, label %.lr.ph4065.us.preheader.new

.lr.ph4065.us.preheader.new:                      ; preds = %.lr.ph4065.us.prol.loopexit
  %1765 = insertelement <2 x float> poison, float %1744, i64 0
  %1766 = shufflevector <2 x float> %1765, <2 x float> poison, <2 x i32> zeroinitializer
  %1767 = insertelement <2 x float> poison, float %1744, i64 0
  %1768 = shufflevector <2 x float> %1767, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph4065.us

.lr.ph4065.us:                                    ; preds = %.lr.ph4065.us, %.lr.ph4065.us.preheader.new
  %.334063.us = phi i64 [ %.334063.us.unr, %.lr.ph4065.us.preheader.new ], [ %1782, %.lr.ph4065.us ]
  %1769 = mul nsw i64 %.334063.us, %34
  %1770 = sub i64 %1753, %.334063.us
  %1771 = getelementptr %struct.complex, ptr %36, i64 %1770
  %1772 = getelementptr %struct.complex, ptr %1771, i64 %1769
  %1773 = load <2 x float>, ptr %1772, align 4, !tbaa !12
  %1774 = fdiv <2 x float> %1773, %1766
  store <2 x float> %1774, ptr %1772, align 4, !tbaa !12
  %1775 = add i64 %.334063.us, 1
  %1776 = mul nsw i64 %1775, %34
  %1777 = sub i64 %.33242.us, %.334063.us
  %1778 = getelementptr %struct.complex, ptr %36, i64 %1777
  %1779 = getelementptr %struct.complex, ptr %1778, i64 %1776
  %1780 = load <2 x float>, ptr %1779, align 4, !tbaa !12
  %1781 = fdiv <2 x float> %1780, %1768
  store <2 x float> %1781, ptr %1779, align 4, !tbaa !12
  %1782 = add i64 %.334063.us, 2
  %exitcond4374.not.1 = icmp eq i64 %1782, %.33242.us
  br i1 %exitcond4374.not.1, label %._crit_edge4066.us, label %.lr.ph4065.us, !llvm.loop !77

._crit_edge4492:                                  ; preds = %1742, %._crit_edge4066.us
  %1783 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %1783, ptr %17, align 8, !tbaa !5
  %1784 = add nsw i64 %.pre4422, %.33242.us
  store i64 %1784, ptr %15, align 8, !tbaa !5
  %1785 = call i64 @llvm.smin.i64(i64 %1783, i64 %1784)
  %.not33304071.us.not = icmp slt i64 %.33242.us, %1785
  br i1 %.not33304071.us.not, label %.lr.ph4074.us, label %1795

scalar.ph5255:                                    ; preds = %scalar.ph5255, %scalar.ph5255.preheader.new
  %.344072.us = phi i64 [ %.344072.us.unr, %scalar.ph5255.preheader.new ], [ %1794, %scalar.ph5255 ]
  %1786 = getelementptr %struct.complex, ptr %2469, i64 %.344072.us
  %1787 = load <2 x float>, ptr %1786, align 4, !tbaa !12
  %1788 = fdiv <2 x float> %1787, %2471
  store <2 x float> %1788, ptr %1786, align 4, !tbaa !12
  %1789 = add i64 %.344072.us, 1
  %1790 = add i64 %2457, %1789
  %1791 = getelementptr inbounds %struct.complex, ptr %36, i64 %1790
  %1792 = load <2 x float>, ptr %1791, align 4, !tbaa !12
  %1793 = fdiv <2 x float> %1792, %2473
  store <2 x float> %1793, ptr %1791, align 4, !tbaa !12
  %1794 = add i64 %.344072.us, 2
  %exitcond4375.not.1 = icmp eq i64 %1789, %1785
  br i1 %exitcond4375.not.1, label %._crit_edge4075.us, label %scalar.ph5255, !llvm.loop !78

1795:                                             ; preds = %._crit_edge4075.us, %._crit_edge4492
  %1796 = add nsw i64 %1736, %.33242.us
  store i64 %1796, ptr %18, align 8, !tbaa !5
  %.not33314107.us = icmp slt i64 %1736, 1
  br i1 %.not33314107.us, label %._crit_edge4112.us, label %.lr.ph4111.us

1797:                                             ; preds = %.lr.ph4111.us, %._crit_edge4105.us
  %.183209.neg4109.us.in = phi i64 [ %.33242.us, %.lr.ph4111.us ], [ %.1832094108.us, %._crit_edge4105.us ]
  %.1832094108.us = phi i64 [ %1753, %.lr.ph4111.us ], [ %1856, %._crit_edge4105.us ]
  %1798 = load i64, ptr %31, align 8, !tbaa !5
  %1799 = add nsw i64 %1798, %.33242.us
  store i64 %1799, ptr %17, align 8, !tbaa !5
  %.not33514088.us = icmp sgt i64 %.1832094108.us, %1799
  br i1 %.not33514088.us, label %._crit_edge4092.us, label %.lr.ph4091.us

1800:                                             ; preds = %.lr.ph4091.us, %1800
  %.354089.us = phi i64 [ %.1832094108.us, %.lr.ph4091.us ], [ %1850, %1800 ]
  %1801 = add i64 %2496, %.354089.us
  store i64 %1801, ptr %15, align 8, !tbaa !5
  store i64 %1801, ptr %16, align 8, !tbaa !5
  %1802 = sub nsw i64 %.354089.us, %.33242.us
  %1803 = add nsw i64 %1802, 1
  call void @r_cnjg(ptr noundef nonnull %23, ptr noundef %gep4081.us) #4
  %gep4083.us = getelementptr %struct.complex, ptr %invariant.gep4082.us, i64 %1803
  %1804 = load float, ptr %gep4083.us, align 4, !tbaa !9
  %1805 = getelementptr inbounds i8, ptr %gep4083.us, i64 4
  %1806 = load float, ptr %1805, align 4, !tbaa !13
  %1807 = fneg float %1806
  %1808 = load <2 x float>, ptr %23, align 8, !tbaa !12
  %1809 = insertelement <2 x float> poison, float %1806, i64 0
  %1810 = insertelement <2 x float> %1809, float %1807, i64 1
  %1811 = fmul <2 x float> %1808, %1810
  %1812 = shufflevector <2 x float> %1811, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1813 = insertelement <2 x float> poison, float %1804, i64 0
  %1814 = shufflevector <2 x float> %1813, <2 x float> poison, <2 x i32> zeroinitializer
  %1815 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1814, <2 x float> %1808, <2 x float> %1812)
  store <2 x float> %1815, ptr %22, align 8, !tbaa !12
  %1816 = load i64, ptr %16, align 8, !tbaa !5
  %1817 = getelementptr inbounds %struct.complex, ptr %36, i64 %1816
  %1818 = load <2 x float>, ptr %1817, align 4, !tbaa !12
  %1819 = fsub <2 x float> %1818, %1815
  store <2 x float> %1819, ptr %21, align 8, !tbaa !12
  call void @r_cnjg(ptr noundef nonnull %24, ptr noundef %gep4085.us) #4
  %1820 = load float, ptr %24, align 4, !tbaa !9
  %gep4087.us = getelementptr %struct.complex, ptr %invariant.gep4080.us, i64 %1803
  %1821 = load float, ptr %91, align 4, !tbaa !13
  %1822 = fneg float %1821
  %1823 = load float, ptr %1747, align 4, !tbaa !9
  store float %1823, ptr %19, align 4, !tbaa !12
  %1824 = load float, ptr %gep4083.us, align 4, !tbaa !9
  %1825 = fmul float %1823, %1824
  %1826 = load float, ptr %1805, align 4, !tbaa !13
  %1827 = fmul float %1823, %1826
  %1828 = fneg float %1827
  %1829 = load <2 x float>, ptr %gep4087.us, align 4, !tbaa !12
  %1830 = insertelement <2 x float> poison, float %1821, i64 0
  %1831 = insertelement <2 x float> %1830, float %1822, i64 1
  %1832 = fmul <2 x float> %1829, %1831
  %1833 = shufflevector <2 x float> %1832, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1834 = insertelement <2 x float> poison, float %1820, i64 0
  %1835 = shufflevector <2 x float> %1834, <2 x float> poison, <2 x i32> zeroinitializer
  %1836 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1835, <2 x float> %1829, <2 x float> %1833)
  %1837 = load <2 x float>, ptr %21, align 8, !tbaa !12
  %1838 = fsub <2 x float> %1837, %1836
  call void @r_cnjg(ptr noundef nonnull %25, ptr noundef %gep4085.us) #4
  %1839 = load <2 x float>, ptr %25, align 8, !tbaa !12
  %1840 = insertelement <2 x float> poison, float %1827, i64 0
  %1841 = insertelement <2 x float> %1840, float %1828, i64 1
  %1842 = fmul <2 x float> %1839, %1841
  %1843 = shufflevector <2 x float> %1842, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1844 = insertelement <2 x float> poison, float %1825, i64 0
  %1845 = shufflevector <2 x float> %1844, <2 x float> poison, <2 x i32> zeroinitializer
  %1846 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1845, <2 x float> %1839, <2 x float> %1843)
  %1847 = fadd <2 x float> %1838, %1846
  store <2 x float> %1847, ptr %20, align 8, !tbaa !12
  %1848 = load i64, ptr %15, align 8, !tbaa !5
  %1849 = getelementptr inbounds %struct.complex, ptr %36, i64 %1848
  store <2 x float> %1847, ptr %1849, align 4, !tbaa !12
  %1850 = add nsw i64 %.354089.us, 1
  %1851 = load i64, ptr %17, align 8, !tbaa !5
  %.not3351.us.not = icmp slt i64 %.354089.us, %1851
  br i1 %.not3351.us.not, label %1800, label %._crit_edge4092.us.loopexit, !llvm.loop !79

._crit_edge4092.us.loopexit:                      ; preds = %1800
  %.pre4423 = load i64, ptr %31, align 8, !tbaa !5
  %.pre4487 = add nsw i64 %.pre4423, %.33242.us
  br label %._crit_edge4092.us

._crit_edge4092.us:                               ; preds = %._crit_edge4092.us.loopexit, %1797
  %.pre-phi4488 = phi i64 [ %.pre4487, %._crit_edge4092.us.loopexit ], [ %1799, %1797 ]
  %1852 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %1852, ptr %15, align 8, !tbaa !5
  %1853 = load i64, ptr %3, align 8, !tbaa !5
  %1854 = add nsw i64 %1853, %.33242.us
  store i64 %1854, ptr %16, align 8, !tbaa !5
  %1855 = call i64 @llvm.smin.i64(i64 %1852, i64 %1854)
  store i64 %1855, ptr %17, align 8, !tbaa !5
  %.not3353.not4101.us = icmp slt i64 %.pre-phi4488, %1855
  br i1 %.not3353.not4101.us, label %.lr.ph4104.us, label %._crit_edge4105.us

._crit_edge4105.us:                               ; preds = %1858, %._crit_edge4092.us
  %1856 = add nsw i64 %.1832094108.us, 1
  %1857 = load i64, ptr %18, align 8, !tbaa !5
  %.not3331.us.not = icmp slt i64 %.1832094108.us, %1857
  br i1 %.not3331.us.not, label %1797, label %._crit_edge4112.us, !llvm.loop !80

1858:                                             ; preds = %.lr.ph4104.us, %1858
  %.36.in4102.us = phi i64 [ %.pre-phi4488, %.lr.ph4104.us ], [ %.36.us, %1858 ]
  %.36.us = add nsw i64 %.36.in4102.us, 1
  %1859 = add i64 %2500, %.36.us
  store i64 %1859, ptr %15, align 8, !tbaa !5
  store i64 %1859, ptr %16, align 8, !tbaa !5
  call void @r_cnjg(ptr noundef nonnull %21, ptr noundef %gep4096.us) #4
  %1860 = sub nsw i64 %.36.us, %.33242.us
  %1861 = load float, ptr %21, align 8, !tbaa !9
  %gep4100.us = getelementptr %struct.complex, ptr %invariant.gep4099.us, i64 %1860
  %1862 = load float, ptr %90, align 4, !tbaa !13
  %1863 = fneg float %1862
  %1864 = load i64, ptr %16, align 8, !tbaa !5
  %1865 = getelementptr inbounds %struct.complex, ptr %36, i64 %1864
  %1866 = load <2 x float>, ptr %gep4100.us, align 4, !tbaa !12
  %1867 = insertelement <2 x float> poison, float %1862, i64 0
  %1868 = insertelement <2 x float> %1867, float %1863, i64 1
  %1869 = fmul <2 x float> %1866, %1868
  %1870 = shufflevector <2 x float> %1869, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1871 = insertelement <2 x float> poison, float %1861, i64 0
  %1872 = shufflevector <2 x float> %1871, <2 x float> poison, <2 x i32> zeroinitializer
  %1873 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1872, <2 x float> %1866, <2 x float> %1870)
  %1874 = load <2 x float>, ptr %1865, align 4, !tbaa !12
  %1875 = fsub <2 x float> %1874, %1873
  store <2 x float> %1875, ptr %20, align 8, !tbaa !12
  %1876 = load i64, ptr %15, align 8, !tbaa !5
  %1877 = getelementptr inbounds %struct.complex, ptr %36, i64 %1876
  store <2 x float> %1875, ptr %1877, align 4, !tbaa !12
  %1878 = load i64, ptr %17, align 8, !tbaa !5
  %.not3353.not.us = icmp slt i64 %.36.us, %1878
  br i1 %.not3353.not.us, label %1858, label %._crit_edge4105.us, !llvm.loop !81

._crit_edge4112.us:                               ; preds = %._crit_edge4105.us, %1795
  store i64 %.33242.us, ptr %18, align 8, !tbaa !5
  %.not33324128.us = icmp sgt i64 %.43180.us, %.33242.us
  br i1 %.not33324128.us, label %1903, label %.lr.ph4131.us

1879:                                             ; preds = %.lr.ph4131.us, %1901
  %indvars.iv4376 = phi i64 [ %2509, %.lr.ph4131.us ], [ %indvars.iv.next4377, %1901 ]
  %.374129.us = phi i64 [ %.43180.us, %.lr.ph4131.us ], [ %1902, %1901 ]
  %smin4378 = call i64 @llvm.smin.i64(i64 %indvars.iv4376, i64 %2508)
  %1880 = add nsw i64 %2506, %.374129.us
  %1881 = call i64 @llvm.smin.i64(i64 %1880, i64 %2508)
  %.not33504119.us.not = icmp slt i64 %.33242.us, %1881
  br i1 %.not33504119.us.not, label %.lr.ph4122.us, label %1901

1882:                                             ; preds = %.lr.ph4122.us, %1882
  %.1932104120.us = phi i64 [ %1753, %.lr.ph4122.us ], [ %1900, %1882 ]
  %1883 = add i64 %2503, %.1932104120.us
  %1884 = sub nsw i64 %.1932104120.us, %.33242.us
  %gep4116.us = getelementptr %struct.complex, ptr %invariant.gep4115.us, i64 %1884
  %1885 = load float, ptr %gep4116.us, align 4, !tbaa !9
  %1886 = getelementptr inbounds i8, ptr %gep4116.us, i64 4
  %1887 = load float, ptr %1886, align 4, !tbaa !13
  %1888 = fneg float %1887
  %1889 = getelementptr inbounds %struct.complex, ptr %36, i64 %1883
  %1890 = load <2 x float>, ptr %2505, align 4, !tbaa !12
  %1891 = insertelement <2 x float> poison, float %1887, i64 0
  %1892 = insertelement <2 x float> %1891, float %1888, i64 1
  %1893 = fmul <2 x float> %1890, %1892
  %1894 = shufflevector <2 x float> %1893, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1895 = insertelement <2 x float> poison, float %1885, i64 0
  %1896 = shufflevector <2 x float> %1895, <2 x float> poison, <2 x i32> zeroinitializer
  %1897 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1896, <2 x float> %1890, <2 x float> %1894)
  %1898 = load <2 x float>, ptr %1889, align 4, !tbaa !12
  %1899 = fsub <2 x float> %1898, %1897
  store <2 x float> %1899, ptr %1889, align 4, !tbaa !12
  %1900 = add i64 %.1932104120.us, 1
  %exitcond4379.not = icmp eq i64 %.1932104120.us, %smin4378
  br i1 %exitcond4379.not, label %._crit_edge4123.us, label %1882, !llvm.loop !82

1901:                                             ; preds = %._crit_edge4123.us, %1879
  %.lcssa41254134.us = phi i64 [ %1883, %._crit_edge4123.us ], [ %2508, %1879 ]
  %.lcssa41244133.us = phi i64 [ %1883, %._crit_edge4123.us ], [ %1880, %1879 ]
  %1902 = add i64 %.374129.us, 1
  %indvars.iv.next4377 = add i64 %indvars.iv4376, 1
  %exitcond4381.not = icmp eq i64 %.374129.us, %.33242.us
  br i1 %exitcond4381.not, label %._crit_edge4132.us, label %1879, !llvm.loop !83

1903:                                             ; preds = %._crit_edge4132.us, %._crit_edge4112.us
  br i1 %.not, label %1904, label %1913

1904:                                             ; preds = %1903
  %1905 = fdiv float 1.000000e+00, %1744
  store float %1905, ptr %19, align 4, !tbaa !12
  %1906 = mul nsw i64 %.33242.us, %40
  %gep4251.us = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %1906
  %1907 = call i32 @f2c_csscal(ptr noundef nonnull %28, ptr noundef nonnull %19, ptr noundef %gep4251.us, ptr noundef nonnull @c__1) #4
  %1908 = load i64, ptr %31, align 8, !tbaa !5
  %1909 = icmp sgt i64 %1908, 0
  br i1 %1909, label %1910, label %1913

1910:                                             ; preds = %1904
  store <2 x float> <float -1.000000e+00, float -0.000000e+00>, ptr %20, align 8, !tbaa !12
  %gep4253.us = getelementptr %struct.complex, ptr %invariant.gep4252, i64 %1743
  %1911 = mul nsw i64 %1753, %40
  %gep4255.us = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %1911
  %1912 = call i32 @f2c_cgerc(ptr noundef nonnull %28, ptr noundef nonnull %31, ptr noundef nonnull %20, ptr noundef %gep4251.us, ptr noundef nonnull @c__1, ptr noundef %gep4253.us, ptr noundef nonnull @c__1, ptr noundef %gep4255.us, ptr noundef nonnull %10) #4
  br label %1913

1913:                                             ; preds = %1910, %1904, %1903
  %1914 = mul nsw i64 %.43180.us, %34
  %1915 = sub i64 %1753, %.43180.us
  %1916 = getelementptr %struct.complex, ptr %36, i64 %1915
  %1917 = getelementptr %struct.complex, ptr %1916, i64 %1914
  %1918 = load <2 x float>, ptr %1917, align 4, !tbaa !12
  store <2 x float> %1918, ptr %30, align 8, !tbaa !12
  %.pre4424 = load i64, ptr %4, align 8, !tbaa !5
  br label %1919

1919:                                             ; preds = %1913, %1741
  %1920 = phi i64 [ %.pre4424, %1913 ], [ %1731, %1741 ]
  %1921 = add nsw i64 %1920, -1
  store i64 %1921, ptr %18, align 8, !tbaa !5
  %.not33334171.us = icmp slt i64 %1920, 2
  br i1 %.not33334171.us, label %._crit_edge4175.us, label %.lr.ph4174.us

1922:                                             ; preds = %.lr.ph4174.us, %.loopexit3475.us
  %.2032114172.us = phi i64 [ 1, %.lr.ph4174.us ], [ %2072, %.loopexit3475.us ]
  %.pre4425 = load i64, ptr %29, align 8, !tbaa !5
  br i1 %.not33243494.us, label %._crit_edge4426, label %1923

._crit_edge4426:                                  ; preds = %1922
  %.pre4427 = load i64, ptr %3, align 8, !tbaa !5
  br label %2003

1923:                                             ; preds = %1922
  %1924 = add nsw i64 %.2032114172.us, %.33242.us
  %1925 = icmp sgt i64 %1924, %.pre4425
  %1926 = icmp slt i64 %1924, %86
  %or.cond3387.us = select i1 %1925, i1 %1926, i1 false
  %.pre4428 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %or.cond3387.us, label %1927, label %2003

1927:                                             ; preds = %1923
  %1928 = sub nsw i64 %.pre4425, %.2032114172.us
  %1929 = sub nsw i64 %1924, %.pre4428
  %1930 = mul nsw i64 %1929, %34
  %1931 = getelementptr %struct.complex, ptr %36, i64 %1928
  %1932 = getelementptr %struct.complex, ptr %1931, i64 %1930
  %1933 = getelementptr inbounds float, ptr %44, i64 %1929
  %1934 = getelementptr inbounds %struct.complex, ptr %43, i64 %1929
  %1935 = call i32 @clartg_(ptr noundef %1932, ptr noundef nonnull %30, ptr noundef nonnull %1933, ptr noundef nonnull %1934, ptr noundef nonnull %26) #4
  %1936 = getelementptr %struct.complex, ptr %gep5488, i64 %.2032114172.us
  %1937 = load float, ptr %1936, align 4, !tbaa !9
  %1938 = fneg float %1937
  %1939 = getelementptr inbounds i8, ptr %1936, i64 4
  %1940 = load float, ptr %1939, align 4, !tbaa !13
  %1941 = fneg float %1940
  %1942 = load i64, ptr %4, align 8, !tbaa !5
  %1943 = add i64 %2518, %.2032114172.us
  %1944 = sub i64 %1943, %1942
  store i64 %1944, ptr %17, align 8, !tbaa !5
  %1945 = load i64, ptr %3, align 8, !tbaa !5
  %1946 = sub nsw i64 %1924, %1945
  store i64 %1946, ptr %15, align 8, !tbaa !5
  %1947 = getelementptr inbounds float, ptr %44, i64 %1946
  %1948 = load float, ptr %1947, align 4, !tbaa !12
  %1949 = getelementptr inbounds %struct.complex, ptr %43, i64 %1946
  %1950 = load <2 x float>, ptr %30, align 8, !tbaa !12
  %1951 = insertelement <2 x float> poison, float %1941, i64 0
  %1952 = insertelement <2 x float> %1951, float %1940, i64 1
  %1953 = fmul <2 x float> %1950, %1952
  %1954 = shufflevector <2 x float> %1953, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1955 = insertelement <2 x float> poison, float %1938, i64 0
  %1956 = shufflevector <2 x float> %1955, <2 x float> poison, <2 x i32> zeroinitializer
  %1957 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1956, <2 x float> %1950, <2 x float> %1954)
  store <2 x float> %1957, ptr %20, align 8, !tbaa !12
  call void @r_cnjg(ptr noundef nonnull %22, ptr noundef nonnull %1949) #4
  %1958 = load i64, ptr %29, align 8, !tbaa !5
  %1959 = load i64, ptr %3, align 8, !tbaa !5
  %1960 = sub nsw i64 %1924, %1959
  %1961 = mul nsw i64 %1960, %34
  %1962 = add nsw i64 %1961, %1958
  %1963 = load float, ptr %22, align 8, !tbaa !9
  %1964 = getelementptr inbounds %struct.complex, ptr %36, i64 %1962
  %1965 = load float, ptr %89, align 4, !tbaa !13
  %1966 = fneg float %1965
  %1967 = load i64, ptr %17, align 8, !tbaa !5
  %1968 = getelementptr inbounds %struct.complex, ptr %43, i64 %1967
  %1969 = insertelement <2 x float> poison, float %1948, i64 0
  %1970 = shufflevector <2 x float> %1969, <2 x float> poison, <2 x i32> zeroinitializer
  %1971 = fmul <2 x float> %1957, %1970
  %1972 = load <2 x float>, ptr %1964, align 4, !tbaa !12
  %1973 = insertelement <2 x float> poison, float %1965, i64 0
  %1974 = insertelement <2 x float> %1973, float %1966, i64 1
  %1975 = fmul <2 x float> %1972, %1974
  %1976 = shufflevector <2 x float> %1975, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1977 = insertelement <2 x float> poison, float %1963, i64 0
  %1978 = shufflevector <2 x float> %1977, <2 x float> poison, <2 x i32> zeroinitializer
  %1979 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1978, <2 x float> %1972, <2 x float> %1976)
  %1980 = fsub <2 x float> %1971, %1979
  store <2 x float> %1980, ptr %1968, align 4, !tbaa !12
  store i64 %1962, ptr %17, align 8, !tbaa !5
  %1981 = getelementptr inbounds %struct.complex, ptr %43, i64 %1960
  %1982 = load float, ptr %1981, align 4, !tbaa !9
  %1983 = getelementptr inbounds i8, ptr %1981, i64 4
  %1984 = load float, ptr %1983, align 4, !tbaa !13
  %1985 = fneg float %1984
  %1986 = insertelement <2 x float> poison, float %1984, i64 0
  %1987 = insertelement <2 x float> %1986, float %1985, i64 1
  %1988 = fmul <2 x float> %1957, %1987
  %1989 = shufflevector <2 x float> %1988, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1990 = insertelement <2 x float> poison, float %1982, i64 0
  %1991 = shufflevector <2 x float> %1990, <2 x float> poison, <2 x i32> zeroinitializer
  %1992 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1991, <2 x float> %1957, <2 x float> %1989)
  store i64 %1960, ptr %16, align 8, !tbaa !5
  %1993 = getelementptr inbounds float, ptr %44, i64 %1960
  %1994 = load float, ptr %1993, align 4, !tbaa !12
  %1995 = getelementptr %struct.complex, ptr %36, i64 %1958
  %1996 = getelementptr %struct.complex, ptr %1995, i64 %1961
  %1997 = load <2 x float>, ptr %1996, align 4, !tbaa !12
  %1998 = insertelement <2 x float> poison, float %1994, i64 0
  %1999 = shufflevector <2 x float> %1998, <2 x float> poison, <2 x i32> zeroinitializer
  %2000 = fmul <2 x float> %1999, %1997
  store <2 x float> %2000, ptr %21, align 8, !tbaa !12
  %2001 = fadd <2 x float> %1992, %2000
  store <2 x float> %2001, ptr %20, align 8, !tbaa !12
  store <2 x float> %2001, ptr %1964, align 4, !tbaa !12
  %2002 = load <2 x float>, ptr %26, align 8, !tbaa !12
  store <2 x float> %2002, ptr %30, align 8, !tbaa !12
  br label %2003

2003:                                             ; preds = %._crit_edge4426, %1927, %1923
  %2004 = phi i64 [ %1959, %1927 ], [ %.pre4428, %1923 ], [ %.pre4427, %._crit_edge4426 ]
  %2005 = phi i64 [ %1958, %1927 ], [ %.pre4425, %1923 ], [ %.pre4425, %._crit_edge4426 ]
  %2006 = add i64 %2519, %.2032114172.us
  %2007 = call i64 @llvm.smax.i64(i64 %2006, i64 1)
  %2008 = mul nsw i64 %2005, %2007
  %2009 = add i64 %2520, %.2032114172.us
  %2010 = sub i64 %2009, %2008
  %2011 = add i64 %2004, -1
  %2012 = add i64 %2011, %2010
  %2013 = sdiv i64 %2012, %2005
  store i64 %2013, ptr %27, align 8, !tbaa !5
  %2014 = add nsw i64 %2013, -1
  %2015 = mul nsw i64 %2014, %2005
  %2016 = sub nsw i64 %2010, %2015
  br i1 %.not33243494.us, label %2022, label %2017

2017:                                             ; preds = %2003
  %2018 = add i64 %2521, %.2032114172.us
  %2019 = shl i64 %2004, 1
  %2020 = sub i64 %2018, %2019
  %2021 = call i64 @llvm.smin.i64(i64 %2010, i64 %2020)
  %.pre4484 = add i64 %2011, %2021
  %.pre4485 = sdiv i64 %.pre4484, %2005
  br label %2022

2022:                                             ; preds = %2017, %2003
  %.pre-phi4486 = phi i64 [ %.pre4485, %2017 ], [ %2013, %2003 ]
  %.3.us = phi i64 [ %2021, %2017 ], [ %2010, %2003 ]
  store i64 %.pre-phi4486, ptr %32, align 8, !tbaa !5
  store i64 %.3.us, ptr %17, align 8, !tbaa !5
  store i64 %2005, ptr %15, align 8, !tbaa !5
  %2023 = icmp slt i64 %2005, 0
  %2024 = icmp sge i64 %2016, %.3.us
  %2025 = icmp sle i64 %2016, %.3.us
  %.in33454136.us = select i1 %2023, i1 %2024, i1 %2025
  br i1 %.in33454136.us, label %.lr.ph4139.us, label %2026

2026:                                             ; preds = %._crit_edge4140.us, %2022
  %2027 = icmp sgt i64 %.pre-phi4486, 0
  br i1 %2027, label %2028, label %2035

2028:                                             ; preds = %2026
  %2029 = mul nsw i64 %2016, %34
  %2030 = getelementptr %struct.complex, ptr %36, i64 %2005
  %2031 = getelementptr %struct.complex, ptr %2030, i64 %2029
  %2032 = getelementptr inbounds %struct.complex, ptr %43, i64 %2016
  %2033 = getelementptr inbounds float, ptr %44, i64 %2016
  %2034 = call i32 @clargv_(ptr noundef nonnull %32, ptr noundef %2031, ptr noundef nonnull %33, ptr noundef nonnull %2032, ptr noundef nonnull %29, ptr noundef nonnull %2033, ptr noundef nonnull %29) #4
  %.pre4429 = load i64, ptr %27, align 8, !tbaa !5
  %.pre4431.pre = load i64, ptr %3, align 8, !tbaa !5
  br label %2035

2035:                                             ; preds = %2028, %2026
  %.pre4431 = phi i64 [ %.pre4431.pre, %2028 ], [ %2004, %2026 ]
  %2036 = phi i64 [ %.pre4429, %2028 ], [ %2013, %2026 ]
  %2037 = icmp sgt i64 %2036, 0
  br i1 %2037, label %2038, label %2051

2038:                                             ; preds = %2035
  %2039 = add nsw i64 %.pre4431, -1
  store i64 %2039, ptr %15, align 8, !tbaa !5
  %.not33464146.us = icmp slt i64 %.pre4431, 2
  %.pre4516 = mul nsw i64 %2016, %34
  br i1 %.not33464146.us, label %.._crit_edge4150.us_crit_edge, label %.lr.ph4149.us

.._crit_edge4150.us_crit_edge:                    ; preds = %2038
  %.pre4518 = add nsw i64 %2016, -1
  %.pre4520 = mul nsw i64 %.pre4518, %34
  br label %._crit_edge4150.us

2040:                                             ; preds = %.lr.ph4149.us, %2040
  %.184147.us = phi i64 [ 1, %.lr.ph4149.us ], [ %2041, %2040 ]
  %2041 = add nuw nsw i64 %.184147.us, 1
  %gep4152.us = getelementptr %struct.complex, ptr %invariant.gep4151.us, i64 %2041
  %gep4154.us = getelementptr %struct.complex, ptr %invariant.gep4153.us, i64 %.184147.us
  %2042 = call i32 @clartv_(ptr noundef nonnull %27, ptr noundef %gep4152.us, ptr noundef nonnull %33, ptr noundef %gep4154.us, ptr noundef nonnull %33, ptr noundef nonnull %2514, ptr noundef nonnull %2515, ptr noundef nonnull %29) #4
  %2043 = load i64, ptr %15, align 8, !tbaa !5
  %.not3346.us.not = icmp slt i64 %.184147.us, %2043
  br i1 %.not3346.us.not, label %2040, label %._crit_edge4150.us, !llvm.loop !84

._crit_edge4150.us:                               ; preds = %2040, %.._crit_edge4150.us_crit_edge
  %.pre-phi4521 = phi i64 [ %.pre4520, %.._crit_edge4150.us_crit_edge ], [ %2513, %2040 ]
  %gep4170.us = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %.pre4516
  %2044 = getelementptr %struct.complex, ptr %36, i64 %.pre-phi4521
  %2045 = getelementptr i8, ptr %2044, i64 8
  %2046 = getelementptr i8, ptr %2044, i64 16
  %2047 = getelementptr inbounds float, ptr %44, i64 %2016
  %2048 = getelementptr inbounds %struct.complex, ptr %43, i64 %2016
  %2049 = call i32 @clar2v_(ptr noundef nonnull %27, ptr noundef %gep4170.us, ptr noundef %2045, ptr noundef %2046, ptr noundef nonnull %33, ptr noundef nonnull %2047, ptr noundef nonnull %2048, ptr noundef nonnull %29) #4
  %2050 = call i32 @clacgv_(ptr noundef nonnull %27, ptr noundef nonnull %2048, ptr noundef nonnull %29) #4
  %.pre4430 = load i64, ptr %3, align 8, !tbaa !5
  br label %2051

2051:                                             ; preds = %._crit_edge4150.us, %2035
  %2052 = phi i64 [ %.pre4430, %._crit_edge4150.us ], [ %.pre4431, %2035 ]
  %2053 = load i64, ptr %4, align 8, !tbaa !5
  %reass.sub4268 = sub i64 %2053, %.2032114172.us
  %2054 = add i64 %reass.sub4268, 1
  store i64 %2054, ptr %15, align 8, !tbaa !5
  %.not3347.not4156.us = icmp sgt i64 %2052, %2054
  br i1 %.not3347.not4156.us, label %.lr.ph4159.us, label %._crit_edge4160.us

._crit_edge4160.us:                               ; preds = %2095, %2051
  br i1 %.not, label %2055, label %.loopexit3475.us

2055:                                             ; preds = %._crit_edge4160.us
  store i64 %2010, ptr %15, align 8, !tbaa !5
  %2056 = load i64, ptr %29, align 8, !tbaa !5
  store i64 %2056, ptr %17, align 8, !tbaa !5
  %2057 = icmp slt i64 %2056, 0
  %2058 = icmp slt i64 %2015, 1
  %2059 = icmp sgt i64 %2015, -1
  %.in33484165.us = select i1 %2057, i1 %2058, i1 %2059
  br i1 %.in33484165.us, label %.lr.ph4168.us, label %.loopexit3475.us

.lr.ph4168.us:                                    ; preds = %2055, %.lr.ph4168.us
  %.394166.us = phi i64 [ %2067, %.lr.ph4168.us ], [ %2016, %2055 ]
  %2060 = getelementptr inbounds %struct.complex, ptr %43, i64 %.394166.us
  call void @r_cnjg(ptr noundef nonnull %20, ptr noundef nonnull %2060) #4
  %2061 = mul nsw i64 %.394166.us, %40
  %gep4162.us = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %2061
  %2062 = add nsw i64 %.394166.us, -1
  %2063 = mul nsw i64 %2062, %40
  %gep4164.us = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %2063
  %2064 = getelementptr inbounds float, ptr %44, i64 %.394166.us
  %2065 = call i32 @crot_(ptr noundef nonnull %28, ptr noundef %gep4162.us, ptr noundef nonnull @c__1, ptr noundef %gep4164.us, ptr noundef nonnull @c__1, ptr noundef nonnull %2064, ptr noundef nonnull %20) #4
  %2066 = load i64, ptr %17, align 8, !tbaa !5
  %2067 = add nsw i64 %2066, %.394166.us
  %2068 = icmp slt i64 %2066, 0
  %2069 = load i64, ptr %15, align 8
  %2070 = icmp sge i64 %2067, %2069
  %2071 = icmp sle i64 %2067, %2069
  %.in3348.us = select i1 %2068, i1 %2070, i1 %2071
  br i1 %.in3348.us, label %.lr.ph4168.us, label %.loopexit3475.us, !llvm.loop !85

.loopexit3475.us:                                 ; preds = %.lr.ph4168.us, %2055, %._crit_edge4160.us
  %2072 = add nuw nsw i64 %.2032114172.us, 1
  %2073 = load i64, ptr %18, align 8, !tbaa !5
  %.not3333.us.not = icmp slt i64 %.2032114172.us, %2073
  br i1 %.not3333.us.not, label %1922, label %._crit_edge4175.us, !llvm.loop !86

2074:                                             ; preds = %.lr.ph4159.us, %2095
  %2075 = phi i64 [ %2054, %.lr.ph4159.us ], [ %2096, %2095 ]
  %.194157.us.in = phi i64 [ %2052, %.lr.ph4159.us ], [ %.194157.us, %2095 ]
  %.194157.us = add nsw i64 %.194157.us.in, -1
  %2076 = add i64 %2516, %.194157.us
  %2077 = load i64, ptr %29, align 8, !tbaa !5
  %2078 = sdiv i64 %2076, %2077
  store i64 %2078, ptr %32, align 8, !tbaa !5
  %2079 = icmp sgt i64 %2078, 0
  br i1 %2079, label %2080, label %2095

2080:                                             ; preds = %2074
  %2081 = add nsw i64 %2078, -1
  %2082 = mul nsw i64 %2081, %2077
  %2083 = sub nsw i64 %2010, %2082
  %2084 = sub nsw i64 %2077, %.194157.us
  %2085 = sub i64 %.194157.us, %2077
  %2086 = add i64 %2085, %2083
  %2087 = mul nsw i64 %2086, %34
  %2088 = getelementptr %struct.complex, ptr %36, i64 %2084
  %2089 = getelementptr i8, ptr %2088, i64 8
  %2090 = getelementptr %struct.complex, ptr %2089, i64 %2087
  %2091 = getelementptr %struct.complex, ptr %2088, i64 %2087
  %2092 = getelementptr inbounds float, ptr %44, i64 %2083
  %2093 = getelementptr inbounds %struct.complex, ptr %43, i64 %2083
  %2094 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %2090, ptr noundef nonnull %33, ptr noundef %2091, ptr noundef nonnull %33, ptr noundef nonnull %2092, ptr noundef nonnull %2093, ptr noundef nonnull %29) #4
  %.pre4432 = load i64, ptr %15, align 8, !tbaa !5
  br label %2095

2095:                                             ; preds = %2080, %2074
  %2096 = phi i64 [ %.pre4432, %2080 ], [ %2075, %2074 ]
  %.not3347.not.us = icmp sgt i64 %.194157.us, %2096
  br i1 %.not3347.not.us, label %2074, label %._crit_edge4160.us, !llvm.loop !87

2097:                                             ; preds = %.lr.ph4139.us, %2097
  %.384137.us = phi i64 [ %2016, %.lr.ph4139.us ], [ %2122, %2097 ]
  %2098 = add nsw i64 %.384137.us, -1
  %2099 = mul nsw i64 %2098, %34
  %2100 = getelementptr inbounds %struct.complex, ptr %43, i64 %.384137.us
  %2101 = load float, ptr %2100, align 4, !tbaa !9
  %2102 = getelementptr %struct.complex, ptr %2511, i64 %2099
  %2103 = getelementptr inbounds i8, ptr %2100, i64 4
  %2104 = load float, ptr %2103, align 4, !tbaa !13
  %2105 = fneg float %2104
  %2106 = load <2 x float>, ptr %2102, align 4, !tbaa !12
  %2107 = insertelement <2 x float> poison, float %2104, i64 0
  %2108 = insertelement <2 x float> %2107, float %2105, i64 1
  %2109 = fmul <2 x float> %2106, %2108
  %2110 = shufflevector <2 x float> %2109, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2111 = insertelement <2 x float> poison, float %2101, i64 0
  %2112 = shufflevector <2 x float> %2111, <2 x float> poison, <2 x i32> zeroinitializer
  %2113 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2112, <2 x float> %2106, <2 x float> %2110)
  store <2 x float> %2113, ptr %2100, align 4, !tbaa !12
  %2114 = add nsw i64 %2099, %2005
  %2115 = getelementptr inbounds float, ptr %44, i64 %.384137.us
  %2116 = load float, ptr %2115, align 4, !tbaa !12
  %2117 = load <2 x float>, ptr %2102, align 4, !tbaa !12
  %2118 = insertelement <2 x float> poison, float %2116, i64 0
  %2119 = shufflevector <2 x float> %2118, <2 x float> poison, <2 x i32> zeroinitializer
  %2120 = fmul <2 x float> %2119, %2117
  %2121 = getelementptr inbounds %struct.complex, ptr %36, i64 %2114
  store <2 x float> %2120, ptr %2121, align 4, !tbaa !12
  %2122 = add nsw i64 %.384137.us, %2005
  %2123 = icmp sge i64 %2122, %.3.us
  %2124 = icmp sle i64 %2122, %.3.us
  %.in3345.us = select i1 %2023, i1 %2123, i1 %2124
  br i1 %.in3345.us, label %2097, label %._crit_edge4140.us, !llvm.loop !88

._crit_edge4175.us:                               ; preds = %.loopexit3475.us, %1919
  br i1 %.not33243494.us, label %._crit_edge4175.us._crit_edge, label %2125

._crit_edge4175.us._crit_edge:                    ; preds = %._crit_edge4175.us
  %.pre4433 = load i64, ptr %4, align 8, !tbaa !5
  br label %2149

2125:                                             ; preds = %._crit_edge4175.us
  %2126 = icmp sgt i64 %.4.us, 0
  %2127 = load i64, ptr %31, align 8
  %2128 = icmp sgt i64 %2127, 0
  %or.cond7.us = select i1 %2126, i1 %2128, i1 false
  %.pre4434 = load i64, ptr %4, align 8, !tbaa !5
  br i1 %or.cond7.us, label %2129, label %2149

2129:                                             ; preds = %2125
  %2130 = add i64 %.33242.us, %86
  %2131 = add i64 %2130, %2127
  %2132 = sub i64 %2131, %.pre4434
  store i64 %2132, ptr %18, align 8, !tbaa !5
  %2133 = mul nsw i64 %.33242.us, %37
  %gep5490 = getelementptr %struct.complex, ptr %invariant.gep5489, i64 %2133
  %2134 = getelementptr %struct.complex, ptr %gep5490, i64 %2127
  %2135 = load float, ptr %2134, align 4, !tbaa !9
  %2136 = fneg float %2135
  %2137 = getelementptr inbounds i8, ptr %2134, i64 4
  %2138 = load float, ptr %2137, align 4, !tbaa !13
  %2139 = fneg float %2138
  %2140 = load <2 x float>, ptr %30, align 8, !tbaa !12
  %2141 = insertelement <2 x float> poison, float %2139, i64 0
  %2142 = insertelement <2 x float> %2141, float %2138, i64 1
  %2143 = fmul <2 x float> %2140, %2142
  %2144 = shufflevector <2 x float> %2143, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2145 = insertelement <2 x float> poison, float %2136, i64 0
  %2146 = shufflevector <2 x float> %2145, <2 x float> poison, <2 x i32> zeroinitializer
  %2147 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2146, <2 x float> %2140, <2 x float> %2144)
  store <2 x float> %2147, ptr %20, align 8, !tbaa !12
  %2148 = getelementptr inbounds %struct.complex, ptr %43, i64 %2132
  store <2 x float> %2147, ptr %2148, align 4, !tbaa !12
  br label %2149

2149:                                             ; preds = %._crit_edge4175.us._crit_edge, %2129, %2125
  %2150 = phi i64 [ %.pre4433, %._crit_edge4175.us._crit_edge ], [ %.pre4434, %2129 ], [ %.pre4434, %2125 ]
  %2151 = icmp sgt i64 %2150, 0
  br i1 %2151, label %.lr.ph4199.us, label %._crit_edge4231.us.thread

._crit_edge4200.us:                               ; preds = %2376
  %.pre4436 = load i64, ptr %4, align 8, !tbaa !5
  %2152 = icmp sgt i64 %.pre4436, 0
  br i1 %2152, label %.lr.ph4230.us, label %._crit_edge4231.us.thread

._crit_edge4231.us.thread:                        ; preds = %._crit_edge4200.us, %2149
  %.ph4535 = phi i64 [ %.pre4436, %._crit_edge4200.us ], [ %2150, %2149 ]
  %2153 = add nsw i64 %.ph4535, -1
  store i64 %2153, ptr %17, align 8, !tbaa !5
  br label %._crit_edge4240.us.thread

._crit_edge4231.us:                               ; preds = %.loopexit.us
  %.pre4441 = load i64, ptr %4, align 8, !tbaa !5
  %2154 = add nsw i64 %.pre4441, -1
  store i64 %2154, ptr %17, align 8, !tbaa !5
  %.not33344236.us = icmp slt i64 %.pre4441, 2
  br i1 %.not33344236.us, label %._crit_edge4240.us.thread, label %.lr.ph4239.us

2155:                                             ; preds = %.lr.ph4239.us, %._crit_edge4235.us
  %2156 = phi i64 [ %2154, %.lr.ph4239.us ], [ %2166, %._crit_edge4235.us ]
  %.2332144237.us = phi i64 [ 1, %.lr.ph4239.us ], [ %2167, %._crit_edge4235.us ]
  store i64 1, ptr %18, align 8, !tbaa !5
  %2157 = add i64 %2534, %.2332144237.us
  store i64 %2157, ptr %15, align 8, !tbaa !5
  %2158 = call i64 @llvm.smax.i64(i64 %2157, i64 1)
  %2159 = load i64, ptr %29, align 8, !tbaa !5
  %2160 = mul nsw i64 %2159, %2158
  %2161 = add i64 %2535, %.2332144237.us
  %2162 = sub i64 %2161, %2160
  %2163 = load i64, ptr %4, align 8, !tbaa !5
  %2164 = sub nsw i64 %2163, %.2332144237.us
  %2165 = icmp sgt i64 %2164, 0
  br i1 %2165, label %.lr.ph4234.us, label %._crit_edge4235.us

._crit_edge4235.us.loopexit:                      ; preds = %2188
  %.pre4442 = load i64, ptr %17, align 8, !tbaa !5
  br label %._crit_edge4235.us

._crit_edge4235.us:                               ; preds = %._crit_edge4235.us.loopexit, %2155
  %2166 = phi i64 [ %.pre4442, %._crit_edge4235.us.loopexit ], [ %2156, %2155 ]
  %2167 = add nuw nsw i64 %.2332144237.us, 1
  %.not3334.us.not = icmp slt i64 %.2332144237.us, %2166
  br i1 %.not3334.us.not, label %2155, label %._crit_edge4240.us, !llvm.loop !89

2168:                                             ; preds = %.lr.ph4234.us, %2188
  %.234232.us = phi i64 [ %2164, %.lr.ph4234.us ], [ %2189, %2188 ]
  %2169 = add i64 %2533, %.234232.us
  %2170 = load i64, ptr %29, align 8, !tbaa !5
  %2171 = sdiv i64 %2169, %2170
  store i64 %2171, ptr %32, align 8, !tbaa !5
  %2172 = icmp sgt i64 %2171, 0
  br i1 %2172, label %2173, label %2188

2173:                                             ; preds = %2168
  %2174 = add nsw i64 %2171, -1
  %2175 = mul nsw i64 %2174, %2170
  %2176 = sub nsw i64 %2162, %2175
  %2177 = sub nsw i64 %2170, %.234232.us
  %2178 = sub i64 %.234232.us, %2170
  %2179 = add i64 %2178, %2176
  %2180 = mul nsw i64 %2179, %34
  %2181 = getelementptr %struct.complex, ptr %36, i64 %2177
  %2182 = getelementptr i8, ptr %2181, i64 8
  %2183 = getelementptr %struct.complex, ptr %2182, i64 %2180
  %2184 = getelementptr %struct.complex, ptr %2181, i64 %2180
  %2185 = getelementptr inbounds float, ptr %44, i64 %2176
  %2186 = getelementptr inbounds %struct.complex, ptr %43, i64 %2176
  %2187 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %2183, ptr noundef nonnull %33, ptr noundef %2184, ptr noundef nonnull %33, ptr noundef nonnull %2185, ptr noundef nonnull %2186, ptr noundef nonnull %29) #4
  br label %2188

2188:                                             ; preds = %2173, %2168
  %2189 = add nsw i64 %.234232.us, -1
  %2190 = icmp sgt i64 %.234232.us, 1
  br i1 %2190, label %2168, label %._crit_edge4235.us.loopexit, !llvm.loop !90

._crit_edge4240.us.thread:                        ; preds = %._crit_edge4231.us, %._crit_edge4231.us.thread
  %.ph4537 = phi i64 [ %.ph4535, %._crit_edge4231.us.thread ], [ %.pre4441, %._crit_edge4231.us ]
  %.pre4422.pre.pre4538 = load i64, ptr %3, align 8, !tbaa !5
  br label %.outer.us.backedge

.outer.us.backedge:                               ; preds = %._crit_edge4240.us.thread, %2192, %..loopexit3478_crit_edge.us, %._crit_edge4240.us
  %.pre4422.be = phi i64 [ %.pre4422.pre.pre4538, %._crit_edge4240.us.thread ], [ %.pre4422.pre.pre, %2192 ], [ %.pre4422.pre.pre, %..loopexit3478_crit_edge.us ], [ %.pre4422.pre.pre, %._crit_edge4240.us ]
  %.be = phi i64 [ %.ph4537, %._crit_edge4240.us.thread ], [ %.pre4443, %2192 ], [ %.pre4443, %..loopexit3478_crit_edge.us ], [ %.pre4443, %._crit_edge4240.us ]
  br label %.outer.us

._crit_edge4240.us:                               ; preds = %._crit_edge4235.us
  %.pre4443 = load i64, ptr %4, align 8, !tbaa !5
  %2191 = icmp sgt i64 %.pre4443, 1
  %.pre4422.pre.pre = load i64, ptr %3, align 8, !tbaa !5
  br i1 %2191, label %2192, label %.outer.us.backedge

2192:                                             ; preds = %._crit_edge4240.us
  %2193 = sub nsw i64 %.4.us, %.pre4422.pre.pre
  store i64 %2193, ptr %17, align 8, !tbaa !5
  %.not33354241.us = icmp slt i64 %2193, 2
  br i1 %.not33354241.us, label %.outer.us.backedge, label %.lr.ph4244.us.preheader

.lr.ph4244.us.preheader:                          ; preds = %2192
  %2194 = add i64 %.4.us, 1
  %2195 = sub i64 %2194, %.pre4422.pre.pre
  %2196 = xor i64 %.pre4422.pre.pre, -1
  %2197 = add i64 %.4.us, %2196
  %min.iters.check5220 = icmp ult i64 %2197, 58
  br i1 %min.iters.check5220, label %.lr.ph4244.us.preheader5273, label %vector.scevcheck5137

vector.scevcheck5137:                             ; preds = %.lr.ph4244.us.preheader
  %2198 = add i64 %.4.us, -2
  %2199 = sub i64 %2198, %.pre4422.pre.pre
  %2200 = shl i64 %.pre4422.pre.pre, 3
  %scevgep5139 = getelementptr i8, ptr %scevgep5138, i64 %2200
  %mul.result5141 = shl i64 %2199, 3
  %2201 = getelementptr i8, ptr %scevgep5139, i64 %mul.result5141
  %2202 = icmp ult ptr %2201, %scevgep5139
  %mul.result5144 = shl i64 %2199, 3
  %mul.overflow5145 = icmp ugt i64 %2199, 2305843009213693951
  %2203 = getelementptr i8, ptr %scevgep5138, i64 %mul.result5144
  %2204 = icmp ult ptr %2203, %scevgep5138
  %2205 = or i1 %2204, %mul.overflow5145
  %mul.result5148 = shl i64 %2199, 3
  %2206 = getelementptr i8, ptr %scevgep5146, i64 %mul.result5148
  %2207 = icmp ult ptr %2206, %scevgep5146
  %scevgep5151 = getelementptr i8, ptr %scevgep5150, i64 %2200
  %mul.result5153 = shl i64 %2199, 3
  %2208 = getelementptr i8, ptr %scevgep5151, i64 %mul.result5153
  %2209 = icmp ult ptr %2208, %scevgep5151
  %2210 = or i1 %2202, %2205
  %2211 = or i1 %2207, %2210
  %2212 = or i1 %2209, %2211
  br i1 %2212, label %.lr.ph4244.us.preheader5273, label %vector.memcheck5155

vector.memcheck5155:                              ; preds = %vector.scevcheck5137
  %2213 = shl i64 %.4.us, 2
  %2214 = shl i64 %.pre4422.pre.pre, 2
  %2215 = sub i64 %2213, %2214
  %scevgep5157 = getelementptr i8, ptr %12, i64 %2215
  %2216 = shl i64 %.4.us, 3
  %2217 = shl i64 %.pre4422.pre.pre, 3
  %2218 = sub i64 %2216, %2217
  %scevgep5159 = getelementptr i8, ptr %scevgep5158, i64 %2218
  %scevgep5160 = getelementptr i8, ptr %11, i64 %2218
  %scevgep5162 = getelementptr i8, ptr %scevgep5161, i64 %2214
  %scevgep5163 = getelementptr i8, ptr %12, i64 %2213
  %scevgep5165 = getelementptr i8, ptr %scevgep5164, i64 %2217
  %scevgep5167 = getelementptr i8, ptr %scevgep5166, i64 %2216
  %scevgep5169 = getelementptr i8, ptr %scevgep5168, i64 %2217
  %scevgep5170 = getelementptr i8, ptr %11, i64 %2216
  %bound05171 = icmp ult ptr %scevgep5156, %scevgep5159
  %bound15172 = icmp ult ptr %scevgep5150, %scevgep5157
  %found.conflict5173 = and i1 %bound05171, %bound15172
  %bound05174 = icmp ult ptr %scevgep5156, %scevgep5160
  %bound15175 = icmp ult ptr %scevgep5138, %scevgep5157
  %found.conflict5176 = and i1 %bound05174, %bound15175
  %conflict.rdx5177 = or i1 %found.conflict5173, %found.conflict5176
  %bound05178 = icmp ult ptr %scevgep5156, %scevgep5163
  %bound15179 = icmp ult ptr %scevgep5162, %scevgep5157
  %found.conflict5180 = and i1 %bound05178, %bound15179
  %conflict.rdx5181 = or i1 %conflict.rdx5177, %found.conflict5180
  %bound05182 = icmp ult ptr %scevgep5156, %scevgep5167
  %bound15183 = icmp ult ptr %scevgep5165, %scevgep5157
  %found.conflict5184 = and i1 %bound05182, %bound15183
  %conflict.rdx5185 = or i1 %conflict.rdx5181, %found.conflict5184
  %bound05186 = icmp ult ptr %scevgep5156, %scevgep5170
  %bound15187 = icmp ult ptr %scevgep5169, %scevgep5157
  %found.conflict5188 = and i1 %bound05186, %bound15187
  %conflict.rdx5189 = or i1 %conflict.rdx5185, %found.conflict5188
  %bound05190 = icmp ult ptr %scevgep5150, %scevgep5160
  %bound15191 = icmp ult ptr %scevgep5138, %scevgep5159
  %found.conflict5192 = and i1 %bound05190, %bound15191
  %conflict.rdx5193 = or i1 %conflict.rdx5189, %found.conflict5192
  %bound05194 = icmp ult ptr %scevgep5150, %scevgep5163
  %bound15195 = icmp ult ptr %scevgep5162, %scevgep5159
  %found.conflict5196 = and i1 %bound05194, %bound15195
  %conflict.rdx5197 = or i1 %conflict.rdx5193, %found.conflict5196
  %bound05198 = icmp ult ptr %scevgep5150, %scevgep5167
  %bound15199 = icmp ult ptr %scevgep5165, %scevgep5159
  %found.conflict5200 = and i1 %bound05198, %bound15199
  %conflict.rdx5201 = or i1 %conflict.rdx5197, %found.conflict5200
  %bound05202 = icmp ult ptr %scevgep5150, %scevgep5170
  %bound15203 = icmp ult ptr %scevgep5169, %scevgep5159
  %found.conflict5204 = and i1 %bound05202, %bound15203
  %conflict.rdx5205 = or i1 %conflict.rdx5201, %found.conflict5204
  %bound05206 = icmp ult ptr %scevgep5138, %scevgep5163
  %bound15207 = icmp ult ptr %scevgep5162, %scevgep5160
  %found.conflict5208 = and i1 %bound05206, %bound15207
  %conflict.rdx5209 = or i1 %conflict.rdx5205, %found.conflict5208
  %bound05210 = icmp ult ptr %scevgep5138, %scevgep5167
  %bound15211 = icmp ult ptr %scevgep5165, %scevgep5160
  %found.conflict5212 = and i1 %bound05210, %bound15211
  %conflict.rdx5213 = or i1 %conflict.rdx5209, %found.conflict5212
  %bound05214 = icmp ult ptr %scevgep5138, %scevgep5170
  %bound15215 = icmp ult ptr %scevgep5169, %scevgep5160
  %found.conflict5216 = and i1 %bound05214, %bound15215
  %conflict.rdx5217 = or i1 %conflict.rdx5213, %found.conflict5216
  br i1 %conflict.rdx5217, label %.lr.ph4244.us.preheader5273, label %vector.ph5221

vector.ph5221:                                    ; preds = %vector.memcheck5155
  %n.vec5223 = and i64 %2197, -4
  %ind.end5224 = or disjoint i64 %n.vec5223, 2
  %invariant.gep5479 = getelementptr %struct.complex, ptr %43, i64 %.pre4422.pre.pre
  %invariant.gep5481 = getelementptr %struct.complex, ptr %43, i64 %.pre4422.pre.pre
  br label %vector.body5226

vector.body5226:                                  ; preds = %vector.body5226, %vector.ph5221
  %index5227 = phi i64 [ 0, %vector.ph5221 ], [ %index.next5239, %vector.body5226 ]
  %offset.idx5228 = or disjoint i64 %index5227, 2
  %2219 = add i64 %index5227, 4
  %2220 = getelementptr float, ptr %44, i64 %offset.idx5228
  %2221 = getelementptr float, ptr %2220, i64 %.pre4422.pre.pre
  %2222 = getelementptr i8, ptr %2221, i64 8
  %wide.load5229 = load <2 x float>, ptr %2221, align 4, !tbaa !12, !alias.scope !91
  %wide.load5230 = load <2 x float>, ptr %2222, align 4, !tbaa !12, !alias.scope !91
  %2223 = getelementptr i8, ptr %2220, i64 8
  store <2 x float> %wide.load5229, ptr %2220, align 4, !tbaa !12, !alias.scope !94, !noalias !96
  store <2 x float> %wide.load5230, ptr %2223, align 4, !tbaa !12, !alias.scope !94, !noalias !96
  %gep5480 = getelementptr %struct.complex, ptr %invariant.gep5479, i64 %offset.idx5228
  %gep5482 = getelementptr %struct.complex, ptr %invariant.gep5481, i64 %2219
  %wide.vec5231 = load <4 x float>, ptr %gep5480, align 4, !tbaa !12
  %wide.vec5232 = load <4 x float>, ptr %gep5482, align 4, !tbaa !12
  %2224 = getelementptr inbounds %struct.complex, ptr %43, i64 %offset.idx5228
  %2225 = getelementptr inbounds %struct.complex, ptr %43, i64 %2219
  store <4 x float> %wide.vec5231, ptr %2224, align 4, !tbaa !12
  store <4 x float> %wide.vec5232, ptr %2225, align 4, !tbaa !12
  %index.next5239 = add nuw i64 %index5227, 4
  %2226 = icmp eq i64 %index.next5239, %n.vec5223
  br i1 %2226, label %middle.block5218, label %vector.body5226, !llvm.loop !101

middle.block5218:                                 ; preds = %vector.body5226
  %cmp.n5240 = icmp eq i64 %2197, %n.vec5223
  %ind.escape5242 = or disjoint i64 %n.vec5223, 1
  br i1 %cmp.n5240, label %..loopexit3478_crit_edge.us, label %.lr.ph4244.us.preheader5273

.lr.ph4244.us.preheader5273:                      ; preds = %middle.block5218, %vector.memcheck5155, %vector.scevcheck5137, %.lr.ph4244.us.preheader
  %.434242.us.ph = phi i64 [ 2, %vector.memcheck5155 ], [ 2, %vector.scevcheck5137 ], [ 2, %.lr.ph4244.us.preheader ], [ %ind.end5224, %middle.block5218 ]
  %invariant.gep5483 = getelementptr %struct.complex, ptr %43, i64 %.pre4422.pre.pre
  br label %.lr.ph4244.us

.lr.ph4244.us:                                    ; preds = %.lr.ph4244.us.preheader5273, %.lr.ph4244.us
  %.434242.us = phi i64 [ %2232, %.lr.ph4244.us ], [ %.434242.us.ph, %.lr.ph4244.us.preheader5273 ]
  %2227 = getelementptr float, ptr %44, i64 %.434242.us
  %2228 = getelementptr float, ptr %2227, i64 %.pre4422.pre.pre
  %2229 = load float, ptr %2228, align 4, !tbaa !12
  store float %2229, ptr %2227, align 4, !tbaa !12
  %gep5484 = getelementptr %struct.complex, ptr %invariant.gep5483, i64 %.434242.us
  %2230 = getelementptr inbounds %struct.complex, ptr %43, i64 %.434242.us
  %2231 = load <2 x float>, ptr %gep5484, align 4, !tbaa !12
  store <2 x float> %2231, ptr %2230, align 4, !tbaa !12
  %2232 = add nuw i64 %.434242.us, 1
  %exitcond4382.not = icmp eq i64 %2232, %2195
  br i1 %exitcond4382.not, label %..loopexit3478_crit_edge.us, label %.lr.ph4244.us, !llvm.loop !102

2233:                                             ; preds = %.lr.ph4230.us, %.loopexit.us
  %.2232134228.us = phi i64 [ %.pre4436, %.lr.ph4230.us ], [ %2309, %.loopexit.us ]
  store i64 1, ptr %18, align 8, !tbaa !5
  %2234 = add i64 %2531, %.2232134228.us
  store i64 %2234, ptr %17, align 8, !tbaa !5
  %2235 = call i64 @llvm.smax.i64(i64 %2234, i64 1)
  %2236 = load i64, ptr %29, align 8, !tbaa !5
  %2237 = mul nsw i64 %2236, %2235
  %2238 = add i64 %2532, %.2232134228.us
  %2239 = sub i64 %2238, %2237
  %2240 = load i64, ptr %3, align 8, !tbaa !5
  %2241 = add i64 %2240, -1
  %2242 = add i64 %2241, %2239
  %2243 = sdiv i64 %2242, %2236
  store i64 %2243, ptr %27, align 8, !tbaa !5
  %2244 = add nsw i64 %2243, -1
  %2245 = mul nsw i64 %2244, %2236
  %2246 = sub nsw i64 %2239, %2245
  %2247 = icmp sgt i64 %2243, 0
  %.pre4438 = load i64, ptr %4, align 8, !tbaa !5
  br i1 %2247, label %2248, label %2282

2248:                                             ; preds = %2233
  %2249 = mul nsw i64 %2246, %34
  %2250 = getelementptr %struct.complex, ptr %36, i64 %2236
  %2251 = getelementptr %struct.complex, ptr %2250, i64 %2249
  %2252 = sub nsw i64 %86, %.pre4438
  %2253 = add nsw i64 %2252, %2246
  %2254 = getelementptr inbounds %struct.complex, ptr %43, i64 %2253
  %2255 = getelementptr inbounds float, ptr %44, i64 %2253
  %2256 = call i32 @clargv_(ptr noundef nonnull %27, ptr noundef %2251, ptr noundef nonnull %33, ptr noundef nonnull %2254, ptr noundef nonnull %29, ptr noundef nonnull %2255, ptr noundef nonnull %29) #4
  %2257 = load i64, ptr %3, align 8, !tbaa !5
  %2258 = add nsw i64 %2257, -1
  store i64 %2258, ptr %18, align 8, !tbaa !5
  %invariant.gep4201.us = getelementptr %struct.complex, ptr %36, i64 %2249
  %.not33374205.us = icmp slt i64 %2257, 2
  %.pre4512 = add nsw i64 %2246, -1
  %.pre4514 = mul nsw i64 %.pre4512, %34
  br i1 %.not33374205.us, label %._crit_edge4209.us, label %.lr.ph4208.us

2259:                                             ; preds = %.lr.ph4208.us, %2259
  %.214206.us = phi i64 [ 1, %.lr.ph4208.us ], [ %2260, %2259 ]
  %2260 = add nuw nsw i64 %.214206.us, 1
  %gep4202.us = getelementptr %struct.complex, ptr %invariant.gep4201.us, i64 %2260
  %gep4211.us = getelementptr %struct.complex, ptr %invariant.gep4210.us, i64 %.214206.us
  %2261 = load i64, ptr %4, align 8, !tbaa !5
  %2262 = sub nsw i64 %86, %2261
  %2263 = add nsw i64 %2262, %2246
  %2264 = getelementptr inbounds float, ptr %44, i64 %2263
  %2265 = getelementptr inbounds %struct.complex, ptr %43, i64 %2263
  %2266 = call i32 @clartv_(ptr noundef nonnull %27, ptr noundef %gep4202.us, ptr noundef nonnull %33, ptr noundef %gep4211.us, ptr noundef nonnull %33, ptr noundef nonnull %2264, ptr noundef nonnull %2265, ptr noundef nonnull %29) #4
  %2267 = load i64, ptr %18, align 8, !tbaa !5
  %.not3337.us.not = icmp slt i64 %.214206.us, %2267
  br i1 %.not3337.us.not, label %2259, label %._crit_edge4209.us, !llvm.loop !103

._crit_edge4209.us:                               ; preds = %2259, %2248
  %gep4227.us = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %2249
  %2268 = getelementptr %struct.complex, ptr %36, i64 %.pre4514
  %2269 = getelementptr i8, ptr %2268, i64 8
  %2270 = getelementptr i8, ptr %2268, i64 16
  %2271 = load i64, ptr %4, align 8, !tbaa !5
  %2272 = sub nsw i64 %86, %2271
  %2273 = add nsw i64 %2272, %2246
  %2274 = getelementptr inbounds float, ptr %44, i64 %2273
  %2275 = getelementptr inbounds %struct.complex, ptr %43, i64 %2273
  %2276 = call i32 @clar2v_(ptr noundef nonnull %27, ptr noundef %gep4227.us, ptr noundef %2269, ptr noundef %2270, ptr noundef nonnull %33, ptr noundef nonnull %2274, ptr noundef nonnull %2275, ptr noundef nonnull %29) #4
  %2277 = load i64, ptr %4, align 8, !tbaa !5
  %2278 = sub nsw i64 %86, %2277
  %2279 = getelementptr %struct.complex, ptr %43, i64 %2278
  %2280 = getelementptr %struct.complex, ptr %2279, i64 %2246
  %2281 = call i32 @clacgv_(ptr noundef nonnull %27, ptr noundef %2280, ptr noundef nonnull %29) #4
  %.pre4437 = load i64, ptr %4, align 8, !tbaa !5
  %.pre4439 = load i64, ptr %3, align 8, !tbaa !5
  br label %2282

2282:                                             ; preds = %._crit_edge4209.us, %2233
  %2283 = phi i64 [ %.pre4439, %._crit_edge4209.us ], [ %2240, %2233 ]
  %2284 = phi i64 [ %.pre4437, %._crit_edge4209.us ], [ %.pre4438, %2233 ]
  %reass.sub4269 = sub i64 %2284, %.2232134228.us
  %2285 = add i64 %reass.sub4269, 1
  store i64 %2285, ptr %18, align 8, !tbaa !5
  %.not3338.not4213.us = icmp sgt i64 %2283, %2285
  br i1 %.not3338.not4213.us, label %.lr.ph4216.us, label %._crit_edge4217.us

._crit_edge4217.us:                               ; preds = %2335, %2282
  br i1 %.not, label %2286, label %.loopexit.us

2286:                                             ; preds = %._crit_edge4217.us
  store i64 %2239, ptr %18, align 8, !tbaa !5
  %2287 = load i64, ptr %29, align 8, !tbaa !5
  store i64 %2287, ptr %17, align 8, !tbaa !5
  %2288 = icmp slt i64 %2287, 0
  %2289 = icmp slt i64 %2245, 1
  %2290 = icmp sgt i64 %2245, -1
  %.in33394222.us = select i1 %2288, i1 %2289, i1 %2290
  br i1 %.in33394222.us, label %.lr.ph4225.us, label %.loopexit.us

.lr.ph4225.us:                                    ; preds = %2286, %.lr.ph4225.us
  %.424223.us = phi i64 [ %2304, %.lr.ph4225.us ], [ %2246, %2286 ]
  %2291 = load i64, ptr %4, align 8, !tbaa !5
  %2292 = sub nsw i64 %86, %2291
  %2293 = getelementptr %struct.complex, ptr %43, i64 %2292
  %2294 = getelementptr %struct.complex, ptr %2293, i64 %.424223.us
  call void @r_cnjg(ptr noundef nonnull %20, ptr noundef %2294) #4
  %2295 = mul nsw i64 %.424223.us, %40
  %gep4219.us = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %2295
  %2296 = add nsw i64 %.424223.us, -1
  %2297 = mul nsw i64 %2296, %40
  %gep4221.us = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %2297
  %2298 = load i64, ptr %4, align 8, !tbaa !5
  %2299 = sub nsw i64 %86, %2298
  %2300 = getelementptr float, ptr %44, i64 %2299
  %2301 = getelementptr float, ptr %2300, i64 %.424223.us
  %2302 = call i32 @crot_(ptr noundef nonnull %28, ptr noundef %gep4219.us, ptr noundef nonnull @c__1, ptr noundef %gep4221.us, ptr noundef nonnull @c__1, ptr noundef %2301, ptr noundef nonnull %20) #4
  %2303 = load i64, ptr %17, align 8, !tbaa !5
  %2304 = add nsw i64 %2303, %.424223.us
  %2305 = icmp slt i64 %2303, 0
  %2306 = load i64, ptr %18, align 8
  %2307 = icmp sge i64 %2304, %2306
  %2308 = icmp sle i64 %2304, %2306
  %.in3339.us = select i1 %2305, i1 %2307, i1 %2308
  br i1 %.in3339.us, label %.lr.ph4225.us, label %.loopexit.us, !llvm.loop !104

.loopexit.us:                                     ; preds = %.lr.ph4225.us, %2286, %._crit_edge4217.us
  %2309 = add nsw i64 %.2232134228.us, -1
  %2310 = icmp sgt i64 %.2232134228.us, 1
  br i1 %2310, label %2233, label %._crit_edge4231.us, !llvm.loop !105

2311:                                             ; preds = %.lr.ph4216.us, %2335
  %2312 = phi i64 [ %2285, %.lr.ph4216.us ], [ %2336, %2335 ]
  %.224214.us.in = phi i64 [ %2283, %.lr.ph4216.us ], [ %.224214.us, %2335 ]
  %.224214.us = add nsw i64 %.224214.us.in, -1
  %2313 = add i64 %2530, %.224214.us
  %2314 = load i64, ptr %29, align 8, !tbaa !5
  %2315 = sdiv i64 %2313, %2314
  store i64 %2315, ptr %32, align 8, !tbaa !5
  %2316 = icmp sgt i64 %2315, 0
  br i1 %2316, label %2317, label %2335

2317:                                             ; preds = %2311
  %2318 = add nsw i64 %2315, -1
  %2319 = mul nsw i64 %2318, %2314
  %2320 = sub nsw i64 %2239, %2319
  %2321 = sub nsw i64 %2314, %.224214.us
  %2322 = sub i64 %.224214.us, %2314
  %2323 = add i64 %2322, %2320
  %2324 = mul nsw i64 %2323, %34
  %2325 = getelementptr %struct.complex, ptr %36, i64 %2321
  %2326 = getelementptr i8, ptr %2325, i64 8
  %2327 = getelementptr %struct.complex, ptr %2326, i64 %2324
  %2328 = getelementptr %struct.complex, ptr %2325, i64 %2324
  %2329 = load i64, ptr %4, align 8, !tbaa !5
  %2330 = sub nsw i64 %86, %2329
  %2331 = add nsw i64 %2330, %2320
  %2332 = getelementptr inbounds float, ptr %44, i64 %2331
  %2333 = getelementptr inbounds %struct.complex, ptr %43, i64 %2331
  %2334 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %2327, ptr noundef nonnull %33, ptr noundef %2328, ptr noundef nonnull %33, ptr noundef nonnull %2332, ptr noundef nonnull %2333, ptr noundef nonnull %29) #4
  %.pre4440 = load i64, ptr %18, align 8, !tbaa !5
  br label %2335

2335:                                             ; preds = %2317, %2311
  %2336 = phi i64 [ %.pre4440, %2317 ], [ %2312, %2311 ]
  %.not3338.not.us = icmp sgt i64 %.224214.us, %2336
  br i1 %.not3338.not.us, label %2311, label %._crit_edge4217.us, !llvm.loop !106

2337:                                             ; preds = %.lr.ph4199.us, %2376
  %.2132124197.us = phi i64 [ %2150, %.lr.ph4199.us ], [ %2377, %2376 ]
  %2338 = add i64 %2527, %.2132124197.us
  %2339 = load i64, ptr %29, align 8, !tbaa !5
  %2340 = add i64 %2528, %.2132124197.us
  br i1 %.not33243494.us, label %2343, label %2341

2341:                                             ; preds = %2337
  %2342 = call i64 @llvm.smax.i64(i64 %2338, i64 2)
  br label %2345

2343:                                             ; preds = %2337
  %2344 = call i64 @llvm.smax.i64(i64 %2338, i64 1)
  br label %2345

2345:                                             ; preds = %2343, %2341
  %.sink4642 = phi i64 [ %2344, %2343 ], [ %2342, %2341 ]
  %.sink4387 = phi i64 [ 1, %2343 ], [ 2, %2341 ]
  %2346 = mul nsw i64 %2339, %.sink4642
  %2347 = sub i64 %2340, %2346
  store i64 %.sink4387, ptr %18, align 8
  store i64 %2338, ptr %17, align 8
  %2348 = load i64, ptr %4, align 8, !tbaa !5
  %2349 = sub nsw i64 %2348, %.2132124197.us
  %2350 = icmp sgt i64 %2349, 0
  %2351 = add i64 %2347, -1
  br i1 %2350, label %.lr.ph4178.us, label %._crit_edge4179.us

._crit_edge4179.us.loopexit:                      ; preds = %2445
  %.pre4435 = load i64, ptr %29, align 8, !tbaa !5
  br label %._crit_edge4179.us

._crit_edge4179.us:                               ; preds = %2345, %._crit_edge4179.us.loopexit
  %2352 = phi i64 [ %.pre4435, %._crit_edge4179.us.loopexit ], [ %2339, %2345 ]
  %2353 = load i64, ptr %3, align 8, !tbaa !5
  %2354 = add i64 %2351, %2353
  %2355 = sdiv i64 %2354, %2352
  store i64 %2355, ptr %27, align 8, !tbaa !5
  %2356 = add nsw i64 %2355, -1
  %2357 = mul nsw i64 %2356, %2352
  %2358 = sub nsw i64 %2347, %2357
  %2359 = icmp slt i64 %2352, 0
  %2360 = icmp slt i64 %2357, 1
  %2361 = icmp sgt i64 %2357, -1
  %.in33404180.us = select i1 %2359, i1 %2360, i1 %2361
  br i1 %.in33404180.us, label %.lr.ph4183.us, label %.thread4540

.thread4540:                                      ; preds = %._crit_edge4179.us
  store i64 %2347, ptr %17, align 8, !tbaa !5
  store i64 %2352, ptr %18, align 8, !tbaa !5
  br label %2363

2362:                                             ; preds = %2408
  store i64 %2409, ptr %15, align 8, !tbaa !5
  store i64 %2410, ptr %16, align 8, !tbaa !5
  store i64 %2347, ptr %17, align 8, !tbaa !5
  store i64 %2352, ptr %18, align 8, !tbaa !5
  br i1 %.in33404180.us, label %.lr.ph4191.us, label %2363

2363:                                             ; preds = %.thread4540, %._crit_edge4192.us, %2362
  br i1 %.not33243494.us, label %2376, label %2364

2364:                                             ; preds = %2363
  %2365 = add nsw i64 %.2132124197.us, %.33242.us
  %2366 = icmp sle i64 %2365, %2352
  %2367 = load i64, ptr %31, align 8
  %.not3342.us = icmp sgt i64 %.2132124197.us, %2367
  %or.cond3388.us = select i1 %2366, i1 true, i1 %.not3342.us
  br i1 %or.cond3388.us, label %2376, label %2368

2368:                                             ; preds = %2364
  %2369 = load i64, ptr %4, align 8, !tbaa !5
  %2370 = add i64 %2529, %.2132124197.us
  %2371 = sub i64 %2370, %2369
  %2372 = sub nsw i64 %2371, %2353
  store i64 %2372, ptr %18, align 8, !tbaa !5
  store i64 %2371, ptr %17, align 8, !tbaa !5
  %2373 = getelementptr inbounds %struct.complex, ptr %43, i64 %2371
  %2374 = getelementptr inbounds %struct.complex, ptr %43, i64 %2372
  %2375 = load <2 x float>, ptr %2373, align 4, !tbaa !12
  store <2 x float> %2375, ptr %2374, align 4, !tbaa !12
  br label %2376

2376:                                             ; preds = %2368, %2364, %2363
  %2377 = add nsw i64 %.2132124197.us, -1
  %2378 = icmp sgt i64 %.2132124197.us, 1
  br i1 %2378, label %2337, label %._crit_edge4200.us, !llvm.loop !107

2379:                                             ; preds = %.lr.ph4191.us, %2379
  %.414189.us = phi i64 [ %2358, %.lr.ph4191.us ], [ %2405, %2379 ]
  %2380 = add nsw i64 %2525, %.414189.us
  %2381 = add nsw i64 %.414189.us, -1
  %2382 = mul nsw i64 %2381, %34
  %2383 = getelementptr inbounds %struct.complex, ptr %43, i64 %2380
  %2384 = load float, ptr %2383, align 4, !tbaa !9
  %2385 = getelementptr %struct.complex, ptr %2526, i64 %2382
  %2386 = getelementptr inbounds i8, ptr %2383, i64 4
  %2387 = load float, ptr %2386, align 4, !tbaa !13
  %2388 = fneg float %2387
  %2389 = load <2 x float>, ptr %2385, align 4, !tbaa !12
  %2390 = insertelement <2 x float> poison, float %2387, i64 0
  %2391 = insertelement <2 x float> %2390, float %2388, i64 1
  %2392 = fmul <2 x float> %2389, %2391
  %2393 = shufflevector <2 x float> %2392, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2394 = insertelement <2 x float> poison, float %2384, i64 0
  %2395 = shufflevector <2 x float> %2394, <2 x float> poison, <2 x i32> zeroinitializer
  %2396 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2395, <2 x float> %2389, <2 x float> %2393)
  store <2 x float> %2396, ptr %2383, align 4, !tbaa !12
  %2397 = add nsw i64 %2382, %2352
  %2398 = getelementptr inbounds float, ptr %44, i64 %2380
  %2399 = load float, ptr %2398, align 4, !tbaa !12
  %2400 = load <2 x float>, ptr %2385, align 4, !tbaa !12
  %2401 = insertelement <2 x float> poison, float %2399, i64 0
  %2402 = shufflevector <2 x float> %2401, <2 x float> poison, <2 x i32> zeroinitializer
  %2403 = fmul <2 x float> %2402, %2400
  %2404 = getelementptr inbounds %struct.complex, ptr %36, i64 %2397
  store <2 x float> %2403, ptr %2404, align 4, !tbaa !12
  %2405 = add nsw i64 %.414189.us, %2352
  %2406 = icmp sge i64 %2405, %2347
  %2407 = icmp sle i64 %2405, %2347
  %.in3341.us = select i1 %2359, i1 %2406, i1 %2407
  br i1 %.in3341.us, label %2379, label %._crit_edge4192.us, !llvm.loop !108

2408:                                             ; preds = %.lr.ph4183.us, %2408
  %.404181.us = phi i64 [ %2358, %.lr.ph4183.us ], [ %2417, %2408 ]
  %2409 = add nsw i64 %2523, %.404181.us
  %2410 = add nsw i64 %2409, %2353
  %2411 = getelementptr inbounds %struct.complex, ptr %43, i64 %2410
  %2412 = getelementptr inbounds %struct.complex, ptr %43, i64 %2409
  %2413 = load <2 x float>, ptr %2411, align 4, !tbaa !12
  store <2 x float> %2413, ptr %2412, align 4, !tbaa !12
  %2414 = getelementptr float, ptr %44, i64 %2409
  %2415 = getelementptr float, ptr %2414, i64 %2353
  %2416 = load float, ptr %2415, align 4, !tbaa !12
  store float %2416, ptr %2414, align 4, !tbaa !12
  %2417 = add nsw i64 %.404181.us, %2352
  %2418 = icmp sge i64 %2417, %2347
  %2419 = icmp sle i64 %2417, %2347
  %.in3340.us = select i1 %2359, i1 %2418, i1 %2419
  br i1 %.in3340.us, label %2408, label %2362, !llvm.loop !109

.lr.ph4178.us:                                    ; preds = %2345, %2445
  %.204176.us = phi i64 [ %.pre-phi4509, %2445 ], [ %2349, %2345 ]
  %2420 = load i64, ptr %3, align 8, !tbaa !5
  %2421 = add i64 %2351, %.204176.us
  %2422 = add i64 %2421, %2420
  %2423 = load i64, ptr %29, align 8, !tbaa !5
  %2424 = sdiv i64 %2422, %2423
  store i64 %2424, ptr %32, align 8, !tbaa !5
  %2425 = icmp sgt i64 %2424, 0
  br i1 %2425, label %2426, label %._crit_edge4493

._crit_edge4493:                                  ; preds = %.lr.ph4178.us
  %.pre4508 = add nsw i64 %.204176.us, -1
  br label %2445

2426:                                             ; preds = %.lr.ph4178.us
  %2427 = add nsw i64 %2424, -1
  %2428 = mul nsw i64 %2427, %2423
  %2429 = sub nsw i64 %2347, %2428
  %2430 = sub nsw i64 %2423, %.204176.us
  %2431 = add i64 %.204176.us, -1
  %2432 = add i64 %2431, %2429
  %2433 = mul nsw i64 %2432, %34
  %2434 = getelementptr %struct.complex, ptr %36, i64 %2430
  %2435 = getelementptr i8, ptr %2434, i64 8
  %2436 = getelementptr %struct.complex, ptr %2435, i64 %2433
  %2437 = getelementptr %struct.complex, ptr %2434, i64 %2433
  %2438 = load i64, ptr %4, align 8, !tbaa !5
  %2439 = add i64 %2420, %86
  %2440 = add i64 %2439, %2429
  %2441 = sub i64 %2440, %2438
  %2442 = getelementptr inbounds float, ptr %44, i64 %2441
  %2443 = getelementptr inbounds %struct.complex, ptr %43, i64 %2441
  %2444 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %2436, ptr noundef nonnull %33, ptr noundef %2437, ptr noundef nonnull %33, ptr noundef nonnull %2442, ptr noundef nonnull %2443, ptr noundef nonnull %29) #4
  br label %2445

2445:                                             ; preds = %._crit_edge4493, %2426
  %.pre-phi4509 = phi i64 [ %.pre4508, %._crit_edge4493 ], [ %2431, %2426 ]
  %2446 = icmp sgt i64 %.204176.us, 1
  br i1 %2446, label %.lr.ph4178.us, label %._crit_edge4179.us.loopexit, !llvm.loop !110

.lr.ph3883.us:                                    ; preds = %.outer.us
  %2447 = add nsw i64 %.23241.ph.us, 1
  %2448 = sub nsw i64 %86, %2447
  %2449 = call i64 @llvm.smin.i64(i64 %1731, i64 %2448)
  store i64 %2449, ptr %31, align 8, !tbaa !5
  %2450 = sub nsw i64 %2447, %.pre4422
  %2451 = call i64 @llvm.smax.i64(i64 %2450, i64 1)
  %2452 = add nsw i64 %2449, %2447
  %2453 = load i64, ptr %29, align 8, !tbaa !5
  %2454 = sub i64 %2452, %2453
  %.not3326.us = icmp slt i64 %.23241.ph.us, %86
  br i1 %.not3326.us, label %.lr.ph3883.split.us.us, label %.lr.ph3883.split.us4256

.lr.ph3883.split.us4256:                          ; preds = %.lr.ph3883.us
  %2455 = icmp eq i64 %.pre4422, 0
  br i1 %2455, label %.loopexit3480, label %.lr.ph3883.split.split.us

.lr.ph3883.split.us.us:                           ; preds = %.lr.ph3883.us
  store i64 1, ptr %17, align 8, !tbaa !5
  %2456 = add nsw i64 %.23241.ph.us, 2
  br label %1735

.lr.ph3883.split.split.us:                        ; preds = %.lr.ph3883.split.us4256
  store i64 1, ptr %17, align 8, !tbaa !5
  br label %1732

._crit_edge4066.us:                               ; preds = %.lr.ph4065.us, %.lr.ph4065.us.prol.loopexit
  %.lcssa = phi <2 x float> [ %.lcssa.unr, %.lr.ph4065.us.prol.loopexit ], [ %1781, %.lr.ph4065.us ]
  store <2 x float> %.lcssa, ptr %20, align 8, !tbaa !12
  br label %._crit_edge4492

.lr.ph4074.us:                                    ; preds = %._crit_edge4492
  %reass.sub4265 = sub i64 %1745, %.33242.us
  %2457 = add i64 %reass.sub4265, 1
  %2458 = sub i64 %1785, %.33242.us
  %min.iters.check5256 = icmp ult i64 %2458, 4
  br i1 %min.iters.check5256, label %scalar.ph5255.preheader, label %vector.scevcheck5243

scalar.ph5255.preheader:                          ; preds = %middle.block5254, %vector.scevcheck5243, %.lr.ph4074.us
  %.344072.us.ph = phi i64 [ %1753, %vector.scevcheck5243 ], [ %1753, %.lr.ph4074.us ], [ %ind.end5260, %middle.block5254 ]
  %2459 = add i64 %1785, %.344072.us.ph
  %2460 = and i64 %2459, 1
  %lcmp.mod5352.not.not = icmp eq i64 %2460, 0
  br i1 %lcmp.mod5352.not.not, label %scalar.ph5255.prol, label %scalar.ph5255.prol.loopexit

scalar.ph5255.prol:                               ; preds = %scalar.ph5255.preheader
  %2461 = add i64 %2457, %.344072.us.ph
  %2462 = getelementptr inbounds %struct.complex, ptr %36, i64 %2461
  %2463 = load <2 x float>, ptr %2462, align 4, !tbaa !12
  %2464 = insertelement <2 x float> poison, float %1744, i64 0
  %2465 = shufflevector <2 x float> %2464, <2 x float> poison, <2 x i32> zeroinitializer
  %2466 = fdiv <2 x float> %2463, %2465
  store <2 x float> %2466, ptr %2462, align 4, !tbaa !12
  %2467 = add i64 %.344072.us.ph, 1
  br label %scalar.ph5255.prol.loopexit

scalar.ph5255.prol.loopexit:                      ; preds = %scalar.ph5255.prol, %scalar.ph5255.preheader
  %.lcssa5277.unr = phi i64 [ poison, %scalar.ph5255.preheader ], [ %2461, %scalar.ph5255.prol ]
  %.lcssa5276.unr = phi <2 x float> [ poison, %scalar.ph5255.preheader ], [ %2466, %scalar.ph5255.prol ]
  %.344072.us.unr = phi i64 [ %.344072.us.ph, %scalar.ph5255.preheader ], [ %2467, %scalar.ph5255.prol ]
  %2468 = icmp eq i64 %1785, %.344072.us.ph
  br i1 %2468, label %._crit_edge4075.us, label %scalar.ph5255.preheader.new

scalar.ph5255.preheader.new:                      ; preds = %scalar.ph5255.prol.loopexit
  %2469 = getelementptr %struct.complex, ptr %36, i64 %2457
  %2470 = insertelement <2 x float> poison, float %1744, i64 0
  %2471 = shufflevector <2 x float> %2470, <2 x float> poison, <2 x i32> zeroinitializer
  %2472 = insertelement <2 x float> poison, float %1744, i64 0
  %2473 = shufflevector <2 x float> %2472, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph5255

vector.scevcheck5243:                             ; preds = %.lr.ph4074.us
  %2474 = xor i64 %.33242.us, -1
  %2475 = add i64 %1785, %2474
  %2476 = shl i64 %.33242.us, 3
  %2477 = add i64 %2476, -8
  %2478 = mul i64 %34, %2477
  %scevgep5245 = getelementptr i8, ptr %scevgep5244, i64 %2478
  %mul.result5247 = shl i64 %2475, 3
  %2479 = getelementptr i8, ptr %scevgep5245, i64 %mul.result5247
  %2480 = icmp ult ptr %2479, %scevgep5245
  %scevgep5250 = getelementptr i8, ptr %scevgep5249, i64 %2478
  %mul.result5252 = shl i64 %2475, 3
  %mul.overflow5253 = icmp ugt i64 %2475, 2305843009213693951
  %2481 = getelementptr i8, ptr %scevgep5250, i64 %mul.result5252
  %2482 = icmp ult ptr %2481, %scevgep5250
  %2483 = or i1 %2482, %mul.overflow5253
  %2484 = or i1 %2480, %2483
  br i1 %2484, label %scalar.ph5255.preheader, label %vector.ph5257

vector.ph5257:                                    ; preds = %vector.scevcheck5243
  %n.vec5259 = and i64 %2458, -4
  %ind.end5260 = add i64 %1753, %n.vec5259
  %broadcast.splatinsert5268 = insertelement <4 x float> poison, float %1744, i64 0
  %broadcast.splat5269 = shufflevector <4 x float> %broadcast.splatinsert5268, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body5262

vector.body5262:                                  ; preds = %vector.body5262, %vector.ph5257
  %index5263 = phi i64 [ 0, %vector.ph5257 ], [ %index.next5271, %vector.body5262 ]
  %offset.idx5264 = add i64 %1753, %index5263
  %2485 = add i64 %2457, %offset.idx5264
  %2486 = getelementptr inbounds %struct.complex, ptr %36, i64 %2485
  %wide.vec5265 = load <8 x float>, ptr %2486, align 4, !tbaa !12
  %strided.vec5266 = shufflevector <8 x float> %wide.vec5265, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec5267 = shufflevector <8 x float> %wide.vec5265, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %2487 = fdiv <4 x float> %strided.vec5266, %broadcast.splat5269
  %2488 = fdiv <4 x float> %strided.vec5267, %broadcast.splat5269
  %2489 = getelementptr inbounds %struct.complex, ptr %36, i64 %2485
  %interleaved.vec5270 = shufflevector <4 x float> %2487, <4 x float> %2488, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec5270, ptr %2489, align 4, !tbaa !12
  %index.next5271 = add nuw i64 %index5263, 4
  %2490 = icmp eq i64 %index.next5271, %n.vec5259
  br i1 %2490, label %middle.block5254, label %vector.body5262, !llvm.loop !111

middle.block5254:                                 ; preds = %vector.body5262
  %2491 = add i64 %offset.idx5264, 3
  %2492 = add i64 %2457, %2491
  %cmp.n5272 = icmp eq i64 %2458, %n.vec5259
  %2493 = shufflevector <4 x float> %2487, <4 x float> %2488, <2 x i32> <i32 3, i32 7>
  br i1 %cmp.n5272, label %._crit_edge4075.us, label %scalar.ph5255.preheader

._crit_edge4075.us:                               ; preds = %scalar.ph5255.prol.loopexit, %scalar.ph5255, %middle.block5254
  %.lcssa4650 = phi i64 [ %2492, %middle.block5254 ], [ %.lcssa5277.unr, %scalar.ph5255.prol.loopexit ], [ %1790, %scalar.ph5255 ]
  %2494 = phi <2 x float> [ %2493, %middle.block5254 ], [ %.lcssa5276.unr, %scalar.ph5255.prol.loopexit ], [ %1793, %scalar.ph5255 ]
  store i64 %.lcssa4650, ptr %17, align 8, !tbaa !5
  store i64 %.lcssa4650, ptr %15, align 8, !tbaa !5
  store <2 x float> %2494, ptr %20, align 8, !tbaa !12
  br label %1795

.lr.ph4091.us:                                    ; preds = %1797
  %2495 = mul nsw i64 %.1832094108.us, %34
  %2496 = sub i64 %2495, %.183209.neg4109.us.in
  %2497 = sub nsw i64 %.1832094108.us, %.33242.us
  %2498 = add nsw i64 %2497, 1
  %gep4081.us = getelementptr %struct.complex, ptr %invariant.gep4080.us, i64 %2498
  %gep4085.us = getelementptr %struct.complex, ptr %invariant.gep4082.us, i64 %2498
  br label %1800

.lr.ph4104.us:                                    ; preds = %._crit_edge4092.us
  %2499 = mul nsw i64 %.1832094108.us, %34
  %2500 = sub i64 %2499, %.183209.neg4109.us.in
  %2501 = sub nsw i64 %.1832094108.us, %.33242.us
  %gep4096.us = getelementptr %struct.complex, ptr %invariant.gep4095.us, i64 %2501
  br label %1858

.lr.ph4111.us:                                    ; preds = %1795
  %invariant.gep4080.us = getelementptr %struct.complex, ptr %36, i64 %1745
  %invariant.gep4082.us = getelementptr %struct.complex, ptr %39, i64 %1743
  %invariant.gep4095.us = getelementptr %struct.complex, ptr %invariant.gep3878, i64 %1743
  %invariant.gep4099.us = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %1745
  br label %1797

.lr.ph4122.us:                                    ; preds = %1879
  %2502 = mul nsw i64 %.374129.us, %34
  %reass.sub4266 = sub i64 %2502, %.374129.us
  %2503 = add i64 %reass.sub4266, 1
  %2504 = sub nsw i64 %.33242.us, %.374129.us
  %gep4118.us = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %2504
  %2505 = getelementptr %struct.complex, ptr %gep4118.us, i64 %2502
  br label %1882

._crit_edge4123.us:                               ; preds = %1882
  store <2 x float> %1899, ptr %20, align 8, !tbaa !12
  br label %1901

.lr.ph4131.us:                                    ; preds = %._crit_edge4112.us
  %2506 = load i64, ptr %3, align 8, !tbaa !5
  %2507 = load i64, ptr %31, align 8, !tbaa !5
  %2508 = add nsw i64 %2507, %.33242.us
  %invariant.gep4115.us = getelementptr %struct.complex, ptr %invariant.gep3878, i64 %1743
  %2509 = add nsw i64 %.43180.us, %2506
  %2510 = add i64 %.33242.us, %2506
  br label %1879

._crit_edge4132.us:                               ; preds = %1901
  %smin4380 = call i64 @llvm.smin.i64(i64 %2510, i64 %2508)
  store i64 %.lcssa41244133.us, ptr %15, align 8, !tbaa !5
  store i64 %.lcssa41254134.us, ptr %16, align 8, !tbaa !5
  store i64 %smin4380, ptr %17, align 8, !tbaa !5
  br label %1903

.lr.ph4139.us:                                    ; preds = %2022
  %2511 = getelementptr %struct.complex, ptr %36, i64 %2005
  br label %2097

._crit_edge4140.us:                               ; preds = %2097
  store i64 %2114, ptr %16, align 8, !tbaa !5
  store <2 x float> %2120, ptr %20, align 8, !tbaa !12
  br label %2026

.lr.ph4149.us:                                    ; preds = %2038
  %invariant.gep4151.us = getelementptr %struct.complex, ptr %36, i64 %.pre4516
  %2512 = add nsw i64 %2016, -1
  %2513 = mul nsw i64 %2512, %34
  %invariant.gep4153.us = getelementptr %struct.complex, ptr %invariant.gep3791, i64 %2513
  %2514 = getelementptr inbounds float, ptr %44, i64 %2016
  %2515 = getelementptr inbounds %struct.complex, ptr %43, i64 %2016
  br label %2040

.lr.ph4159.us:                                    ; preds = %2051
  %2516 = add i64 %2010, -1
  br label %2074

.lr.ph4174.us:                                    ; preds = %1919
  %2517 = mul nsw i64 %.33242.us, %37
  %2518 = add i64 %.33242.us, %86
  %reass.sub4267 = sub i64 %.43185.us, %86
  %2519 = add i64 %reass.sub4267, 1
  %2520 = add i64 %.33242.us, 1
  %2521 = add i64 %.33242.us, -1
  %gep5488 = getelementptr %struct.complex, ptr %invariant.gep5487, i64 %2517
  br label %1922

.lr.ph4183.us:                                    ; preds = %._crit_edge4179.us
  %2522 = load i64, ptr %4, align 8, !tbaa !5
  %2523 = sub nsw i64 %86, %2522
  br label %2408

.lr.ph4191.us:                                    ; preds = %2362
  %2524 = load i64, ptr %4, align 8, !tbaa !5
  %2525 = sub nsw i64 %86, %2524
  %2526 = getelementptr %struct.complex, ptr %36, i64 %2352
  br label %2379

._crit_edge4192.us:                               ; preds = %2379
  store i64 %2397, ptr %15, align 8, !tbaa !5
  store i64 %2380, ptr %16, align 8, !tbaa !5
  store <2 x float> %2403, ptr %20, align 8, !tbaa !12
  br label %2363

.lr.ph4199.us:                                    ; preds = %2149
  %2527 = sub i64 %.43185.us, %86
  %2528 = add i64 %.33242.us, 1
  %2529 = add i64 %.33242.us, %86
  br label %2337

.lr.ph4208.us:                                    ; preds = %2248
  %invariant.gep4210.us = getelementptr %struct.complex, ptr %invariant.gep3791, i64 %.pre4514
  br label %2259

.lr.ph4216.us:                                    ; preds = %2282
  %2530 = add i64 %2239, -1
  br label %2311

.lr.ph4230.us:                                    ; preds = %._crit_edge4200.us
  %2531 = sub i64 %.43185.us, %86
  %2532 = add i64 %.33242.us, 1
  br label %2233

.lr.ph4234.us:                                    ; preds = %2155
  %2533 = add i64 %2162, -1
  br label %2168

.lr.ph4239.us:                                    ; preds = %._crit_edge4231.us
  %reass.sub4270 = sub i64 %.43185.us, %86
  %2534 = add i64 %reass.sub4270, 1
  %2535 = add i64 %.33242.us, 1
  br label %2155

..loopexit3478_crit_edge.us:                      ; preds = %.lr.ph4244.us, %middle.block5218
  %.434242.us.lcssa = phi i64 [ %ind.escape5242, %middle.block5218 ], [ %.434242.us, %.lr.ph4244.us ]
  store i64 %.434242.us.lcssa, ptr %18, align 8, !tbaa !5
  store i64 %.4.us, ptr %15, align 8, !tbaa !5
  br label %.outer.us.backedge

.outer:                                           ; preds = %.outer.backedge, %.outer.preheader
  %.pre4396 = phi i64 [ %.pre4394, %.outer.preheader ], [ %.pre4396.be, %.outer.backedge ]
  %2536 = phi i64 [ %118, %.outer.preheader ], [ %.be5289, %.outer.backedge ]
  %.23241.ph = phi i64 [ 0, %.outer.preheader ], [ %.33242, %.outer.backedge ]
  %.33184.ph = phi i64 [ %.23183, %.outer.preheader ], [ %.43185, %.outer.backedge ]
  %.33179.ph = phi i64 [ %.23178, %.outer.preheader ], [ %.43180, %.outer.backedge ]
  %.33175.ph = phi i64 [ %.23174, %.outer.preheader ], [ %.4, %.outer.backedge ]
  %.1.ph = phi i64 [ 1, %.outer.preheader ], [ %.13497, %.outer.backedge ]
  %.not33243880 = icmp eq i64 %.1.ph, 0
  br i1 %.not33243880, label %2547, label %.lr.ph3883

.lr.ph3883:                                       ; preds = %.outer
  %2537 = add nsw i64 %.23241.ph, 1
  %2538 = sub nsw i64 %86, %2537
  %2539 = call i64 @llvm.smin.i64(i64 %2536, i64 %2538)
  store i64 %2539, ptr %31, align 8, !tbaa !5
  %2540 = sub nsw i64 %2537, %.pre4396
  %2541 = call i64 @llvm.smax.i64(i64 %2540, i64 1)
  %2542 = add nsw i64 %2539, %2537
  %2543 = load i64, ptr %29, align 8, !tbaa !5
  %2544 = sub i64 %2542, %2543
  %.not3326 = icmp slt i64 %.23241.ph, %86
  br i1 %.not3326, label %.lr.ph3883.split.us, label %.lr.ph3883.split

.lr.ph3883.split.us:                              ; preds = %.lr.ph3883
  store i64 %2540, ptr %18, align 8, !tbaa !5
  %2545 = add nsw i64 %.23241.ph, 2
  br label %2550

.lr.ph3883.split:                                 ; preds = %.lr.ph3883
  %2546 = icmp eq i64 %.pre4396, 0
  br i1 %2546, label %.loopexit3480, label %._crit_edge3884

._crit_edge3884:                                  ; preds = %.lr.ph3883.split
  store i64 %2540, ptr %18, align 8, !tbaa !5
  br label %2547

2547:                                             ; preds = %._crit_edge3884, %.outer
  %.33184.lcssa = phi i64 [ %88, %._crit_edge3884 ], [ %.33184.ph, %.outer ]
  %.33179.lcssa = phi i64 [ %2541, %._crit_edge3884 ], [ %.33179.ph, %.outer ]
  %.33175.lcssa = phi i64 [ %2544, %._crit_edge3884 ], [ %.33175.ph, %.outer ]
  %2548 = sub nsw i64 %.23241.ph, %.pre4396
  %2549 = icmp slt i64 %2548, 2
  br i1 %2549, label %.loopexit3480, label %2550

2550:                                             ; preds = %.lr.ph3883.split.us, %2547
  %.13497 = phi i64 [ 0, %2547 ], [ %.1.ph, %.lr.ph3883.split.us ]
  %.not33243494 = phi i1 [ true, %2547 ], [ false, %.lr.ph3883.split.us ]
  %.33242 = phi i64 [ %2548, %2547 ], [ %2537, %.lr.ph3883.split.us ]
  %.43185 = phi i64 [ %.33184.lcssa, %2547 ], [ %2545, %.lr.ph3883.split.us ]
  %.43180 = phi i64 [ %.33179.lcssa, %2547 ], [ %2541, %.lr.ph3883.split.us ]
  %.4 = phi i64 [ %.33175.lcssa, %2547 ], [ %2544, %.lr.ph3883.split.us ]
  %2551 = load i64, ptr %31, align 8, !tbaa !5
  %2552 = sub nsw i64 %86, %2551
  %2553 = icmp slt i64 %.33242, %2552
  br i1 %2553, label %2556, label %2554

2554:                                             ; preds = %2550
  %2555 = load i64, ptr %2, align 8, !tbaa !5
  br label %2556

2556:                                             ; preds = %2550, %2554
  %storemerge = phi i64 [ %2555, %2554 ], [ %86, %2550 ]
  store i64 %storemerge, ptr %28, align 8, !tbaa !5
  br i1 %.not33243494, label %2822, label %2557

2557:                                             ; preds = %2556
  %2558 = mul nsw i64 %.33242, %37
  %gep5472 = getelementptr %struct.complex, ptr %invariant.gep5471, i64 %2558
  %2559 = load float, ptr %gep5472, align 4, !tbaa !9
  %2560 = load i64, ptr %29, align 8, !tbaa !5
  %2561 = mul nsw i64 %.33242, %34
  %2562 = add nsw i64 %2560, %2561
  store i64 %2562, ptr %17, align 8, !tbaa !5
  %2563 = getelementptr inbounds %struct.complex, ptr %36, i64 %2562
  %2564 = load float, ptr %2563, align 4, !tbaa !9
  %2565 = fdiv float %2564, %2559
  %2566 = fdiv float %2565, %2559
  store float %2566, ptr %19, align 4, !tbaa !12
  store float %2566, ptr %2563, align 4, !tbaa !9
  %2567 = getelementptr inbounds %struct.complex, ptr %36, i64 %2562, i32 1
  store float 0.000000e+00, ptr %2567, align 4, !tbaa !13
  %.not33543894.not = icmp slt i64 %.43180, %.33242
  br i1 %.not33543894.not, label %.lr.ph3897, label %2618

.lr.ph3897:                                       ; preds = %2557
  %2568 = sub i64 %2561, %.33242
  %2569 = sub i64 %.33242, %.43180
  %min.iters.check5120 = icmp ult i64 %2569, 4
  br i1 %min.iters.check5120, label %scalar.ph5119.preheader, label %vector.scevcheck5107

vector.scevcheck5107:                             ; preds = %.lr.ph3897
  %2570 = xor i64 %.43180, -1
  %2571 = add i64 %.33242, %2570
  %2572 = add i64 %.43180, %2560
  %2573 = mul i64 %1729, %.33242
  %2574 = add i64 %2572, %2573
  %2575 = shl i64 %2574, 3
  %scevgep5109 = getelementptr i8, ptr %scevgep5108, i64 %2575
  %mul.result5111 = shl i64 %2571, 3
  %2576 = getelementptr i8, ptr %scevgep5109, i64 %mul.result5111
  %2577 = icmp ult ptr %2576, %scevgep5109
  %scevgep5114 = getelementptr i8, ptr %scevgep5113, i64 %2575
  %mul.result5116 = shl i64 %2571, 3
  %mul.overflow5117 = icmp ugt i64 %2571, 2305843009213693951
  %2578 = getelementptr i8, ptr %scevgep5114, i64 %mul.result5116
  %2579 = icmp ult ptr %2578, %scevgep5114
  %2580 = or i1 %2579, %mul.overflow5117
  %2581 = or i1 %2577, %2580
  br i1 %2581, label %scalar.ph5119.preheader, label %vector.ph5121

vector.ph5121:                                    ; preds = %vector.scevcheck5107
  %n.vec5123 = and i64 %2569, -4
  %ind.end5124 = add i64 %.43180, %n.vec5123
  %broadcast.splatinsert5132 = insertelement <4 x float> poison, float %2559, i64 0
  %broadcast.splat5133 = shufflevector <4 x float> %broadcast.splatinsert5132, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body5126

vector.body5126:                                  ; preds = %vector.body5126, %vector.ph5121
  %index5127 = phi i64 [ 0, %vector.ph5121 ], [ %index.next5135, %vector.body5126 ]
  %offset.idx5128 = add i64 %.43180, %index5127
  %2582 = add i64 %2568, %offset.idx5128
  %2583 = add i64 %2582, %2560
  %2584 = getelementptr inbounds %struct.complex, ptr %36, i64 %2583
  %wide.vec5129 = load <8 x float>, ptr %2584, align 4, !tbaa !12
  %strided.vec5130 = shufflevector <8 x float> %wide.vec5129, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec5131 = shufflevector <8 x float> %wide.vec5129, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %2585 = fdiv <4 x float> %strided.vec5130, %broadcast.splat5133
  %2586 = fdiv <4 x float> %strided.vec5131, %broadcast.splat5133
  %2587 = getelementptr inbounds %struct.complex, ptr %36, i64 %2583
  %interleaved.vec5134 = shufflevector <4 x float> %2585, <4 x float> %2586, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec5134, ptr %2587, align 4, !tbaa !12
  %index.next5135 = add nuw i64 %index5127, 4
  %2588 = icmp eq i64 %index.next5135, %n.vec5123
  br i1 %2588, label %middle.block5118, label %vector.body5126, !llvm.loop !112

middle.block5118:                                 ; preds = %vector.body5126
  %cmp.n5136 = icmp eq i64 %2569, %n.vec5123
  %2589 = shufflevector <4 x float> %2585, <4 x float> %2586, <2 x i32> <i32 3, i32 7>
  br i1 %cmp.n5136, label %._crit_edge3898, label %scalar.ph5119.preheader

scalar.ph5119.preheader:                          ; preds = %middle.block5118, %vector.scevcheck5107, %.lr.ph3897
  %.2232373895.ph = phi i64 [ %.43180, %vector.scevcheck5107 ], [ %.43180, %.lr.ph3897 ], [ %ind.end5124, %middle.block5118 ]
  %2590 = sub i64 %.33242, %.2232373895.ph
  %xtraiter5343 = and i64 %2590, 3
  %lcmp.mod5344.not = icmp eq i64 %xtraiter5343, 0
  br i1 %lcmp.mod5344.not, label %scalar.ph5119.prol.loopexit, label %scalar.ph5119.prol.preheader

scalar.ph5119.prol.preheader:                     ; preds = %scalar.ph5119.preheader
  %2591 = getelementptr %struct.complex, ptr %36, i64 %2568
  %invariant.gep5469 = getelementptr %struct.complex, ptr %2591, i64 %2560
  %2592 = insertelement <2 x float> poison, float %2559, i64 0
  %2593 = shufflevector <2 x float> %2592, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph5119.prol

scalar.ph5119.prol:                               ; preds = %scalar.ph5119.prol, %scalar.ph5119.prol.preheader
  %.2232373895.prol = phi i64 [ %2596, %scalar.ph5119.prol ], [ %.2232373895.ph, %scalar.ph5119.prol.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph5119.prol ], [ 0, %scalar.ph5119.prol.preheader ]
  %gep5470 = getelementptr %struct.complex, ptr %invariant.gep5469, i64 %.2232373895.prol
  %2594 = load <2 x float>, ptr %gep5470, align 4, !tbaa !12
  %2595 = fdiv <2 x float> %2594, %2593
  store <2 x float> %2595, ptr %gep5470, align 4, !tbaa !12
  %2596 = add i64 %.2232373895.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter5343
  br i1 %prol.iter.cmp.not, label %scalar.ph5119.prol.loopexit, label %scalar.ph5119.prol, !llvm.loop !113

scalar.ph5119.prol.loopexit:                      ; preds = %scalar.ph5119.prol, %scalar.ph5119.preheader
  %.lcssa5292.unr = phi <2 x float> [ poison, %scalar.ph5119.preheader ], [ %2595, %scalar.ph5119.prol ]
  %.2232373895.unr = phi i64 [ %.2232373895.ph, %scalar.ph5119.preheader ], [ %2596, %scalar.ph5119.prol ]
  %2597 = sub i64 %.2232373895.ph, %.33242
  %2598 = icmp ugt i64 %2597, -4
  br i1 %2598, label %._crit_edge3898, label %scalar.ph5119.preheader.new

scalar.ph5119.preheader.new:                      ; preds = %scalar.ph5119.prol.loopexit
  %2599 = getelementptr %struct.complex, ptr %36, i64 %2568
  %invariant.gep5451 = getelementptr %struct.complex, ptr %2599, i64 %2560
  %2600 = insertelement <2 x float> poison, float %2559, i64 0
  %2601 = shufflevector <2 x float> %2600, <2 x float> poison, <2 x i32> zeroinitializer
  %gep5474 = getelementptr %struct.complex, ptr %invariant.gep5473, i64 %2568
  %invariant.gep5455 = getelementptr %struct.complex, ptr %gep5474, i64 %2560
  %2602 = insertelement <2 x float> poison, float %2559, i64 0
  %2603 = shufflevector <2 x float> %2602, <2 x float> poison, <2 x i32> zeroinitializer
  %gep5476 = getelementptr %struct.complex, ptr %invariant.gep5475, i64 %2568
  %invariant.gep5459 = getelementptr %struct.complex, ptr %gep5476, i64 %2560
  %2604 = insertelement <2 x float> poison, float %2559, i64 0
  %2605 = shufflevector <2 x float> %2604, <2 x float> poison, <2 x i32> zeroinitializer
  %gep5478 = getelementptr %struct.complex, ptr %invariant.gep5477, i64 %2568
  %invariant.gep5463 = getelementptr %struct.complex, ptr %gep5478, i64 %2560
  %2606 = insertelement <2 x float> poison, float %2559, i64 0
  %2607 = shufflevector <2 x float> %2606, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph5119

scalar.ph5119:                                    ; preds = %scalar.ph5119, %scalar.ph5119.preheader.new
  %.2232373895 = phi i64 [ %.2232373895.unr, %scalar.ph5119.preheader.new ], [ %2616, %scalar.ph5119 ]
  %gep5452 = getelementptr %struct.complex, ptr %invariant.gep5451, i64 %.2232373895
  %2608 = load <2 x float>, ptr %gep5452, align 4, !tbaa !12
  %2609 = fdiv <2 x float> %2608, %2601
  store <2 x float> %2609, ptr %gep5452, align 4, !tbaa !12
  %gep5456 = getelementptr %struct.complex, ptr %invariant.gep5455, i64 %.2232373895
  %2610 = load <2 x float>, ptr %gep5456, align 4, !tbaa !12
  %2611 = fdiv <2 x float> %2610, %2603
  store <2 x float> %2611, ptr %gep5456, align 4, !tbaa !12
  %gep5460 = getelementptr %struct.complex, ptr %invariant.gep5459, i64 %.2232373895
  %2612 = load <2 x float>, ptr %gep5460, align 4, !tbaa !12
  %2613 = fdiv <2 x float> %2612, %2605
  store <2 x float> %2613, ptr %gep5460, align 4, !tbaa !12
  %gep5464 = getelementptr %struct.complex, ptr %invariant.gep5463, i64 %.2232373895
  %2614 = load <2 x float>, ptr %gep5464, align 4, !tbaa !12
  %2615 = fdiv <2 x float> %2614, %2607
  store <2 x float> %2615, ptr %gep5464, align 4, !tbaa !12
  %2616 = add i64 %.2232373895, 4
  %exitcond4368.not.3 = icmp eq i64 %2616, %.33242
  br i1 %exitcond4368.not.3, label %._crit_edge3898, label %scalar.ph5119, !llvm.loop !115

._crit_edge3898:                                  ; preds = %scalar.ph5119.prol.loopexit, %scalar.ph5119, %middle.block5118
  %2617 = phi <2 x float> [ %2589, %middle.block5118 ], [ %.lcssa5292.unr, %scalar.ph5119.prol.loopexit ], [ %2615, %scalar.ph5119 ]
  store <2 x float> %2617, ptr %20, align 8, !tbaa !12
  br label %2618

2618:                                             ; preds = %._crit_edge3898, %2557
  %2619 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %2619, ptr %18, align 8, !tbaa !5
  %2620 = add nsw i64 %.pre4396, %.33242
  store i64 %2620, ptr %15, align 8, !tbaa !5
  %2621 = call i64 @llvm.smin.i64(i64 %2619, i64 %2620)
  %2622 = add i64 %.33242, 1
  %.not33563902.not = icmp slt i64 %.33242, %2621
  br i1 %.not33563902.not, label %.lr.ph3905.preheader, label %2654

.lr.ph3905.preheader:                             ; preds = %2618
  %2623 = sub i64 %2621, %.33242
  %.neg5355 = add i64 %.33242, 1
  %xtraiter5345 = and i64 %2623, 1
  %lcmp.mod5346.not = icmp eq i64 %xtraiter5345, 0
  br i1 %lcmp.mod5346.not, label %.lr.ph3905.prol.loopexit, label %.lr.ph3905.prol

.lr.ph3905.prol:                                  ; preds = %.lr.ph3905.preheader
  %2624 = mul nsw i64 %2622, %34
  %2625 = add i64 %2624, -1
  %2626 = add i64 %2625, %2560
  %2627 = getelementptr inbounds %struct.complex, ptr %36, i64 %2626
  %2628 = load <2 x float>, ptr %2627, align 4, !tbaa !12
  %2629 = insertelement <2 x float> poison, float %2559, i64 0
  %2630 = shufflevector <2 x float> %2629, <2 x float> poison, <2 x i32> zeroinitializer
  %2631 = fdiv <2 x float> %2628, %2630
  store <2 x float> %2631, ptr %2627, align 4, !tbaa !12
  %2632 = add i64 %.33242, 2
  br label %.lr.ph3905.prol.loopexit

.lr.ph3905.prol.loopexit:                         ; preds = %.lr.ph3905.prol, %.lr.ph3905.preheader
  %.lcssa5294.unr = phi i64 [ poison, %.lr.ph3905.preheader ], [ %2626, %.lr.ph3905.prol ]
  %.lcssa5293.unr = phi <2 x float> [ poison, %.lr.ph3905.preheader ], [ %2631, %.lr.ph3905.prol ]
  %.2332383903.unr = phi i64 [ %2622, %.lr.ph3905.preheader ], [ %2632, %.lr.ph3905.prol ]
  %2633 = icmp eq i64 %2621, %.neg5355
  br i1 %2633, label %._crit_edge3906, label %.lr.ph3905.preheader.new

.lr.ph3905.preheader.new:                         ; preds = %.lr.ph3905.prol.loopexit
  %2634 = insertelement <2 x float> poison, float %2559, i64 0
  %2635 = shufflevector <2 x float> %2634, <2 x float> poison, <2 x i32> zeroinitializer
  %2636 = insertelement <2 x float> poison, float %2559, i64 0
  %2637 = shufflevector <2 x float> %2636, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph3905

.lr.ph3905:                                       ; preds = %.lr.ph3905, %.lr.ph3905.preheader.new
  %.2332383903 = phi i64 [ %.2332383903.unr, %.lr.ph3905.preheader.new ], [ %2653, %.lr.ph3905 ]
  %2638 = sub i64 %.33242, %.2332383903
  %2639 = mul nsw i64 %.2332383903, %34
  %2640 = getelementptr %struct.complex, ptr %36, i64 %2638
  %2641 = getelementptr %struct.complex, ptr %2640, i64 %2639
  %2642 = getelementptr %struct.complex, ptr %2641, i64 %2560
  %2643 = load <2 x float>, ptr %2642, align 4, !tbaa !12
  %2644 = fdiv <2 x float> %2643, %2635
  store <2 x float> %2644, ptr %2642, align 4, !tbaa !12
  %2645 = add i64 %.2332383903, 1
  %2646 = sub i64 %.33242, %2645
  %2647 = mul nsw i64 %2645, %34
  %2648 = add i64 %2646, %2647
  %2649 = add i64 %2648, %2560
  %2650 = getelementptr inbounds %struct.complex, ptr %36, i64 %2649
  %2651 = load <2 x float>, ptr %2650, align 4, !tbaa !12
  %2652 = fdiv <2 x float> %2651, %2637
  store <2 x float> %2652, ptr %2650, align 4, !tbaa !12
  %2653 = add i64 %.2332383903, 2
  %exitcond4369.not.1 = icmp eq i64 %2645, %2621
  br i1 %exitcond4369.not.1, label %._crit_edge3906, label %.lr.ph3905, !llvm.loop !116

._crit_edge3906:                                  ; preds = %.lr.ph3905, %.lr.ph3905.prol.loopexit
  %.lcssa5294 = phi i64 [ %.lcssa5294.unr, %.lr.ph3905.prol.loopexit ], [ %2649, %.lr.ph3905 ]
  %.lcssa5293 = phi <2 x float> [ %.lcssa5293.unr, %.lr.ph3905.prol.loopexit ], [ %2652, %.lr.ph3905 ]
  store i64 %.lcssa5294, ptr %18, align 8, !tbaa !5
  store i64 %.lcssa5294, ptr %15, align 8, !tbaa !5
  store <2 x float> %.lcssa5293, ptr %20, align 8, !tbaa !12
  br label %2654

2654:                                             ; preds = %._crit_edge3906, %2618
  %2655 = add nsw i64 %2551, %.33242
  store i64 %2655, ptr %17, align 8, !tbaa !5
  %.not33573931 = icmp slt i64 %2551, 1
  br i1 %.not33573931, label %._crit_edge3935, label %.lr.ph3934

.lr.ph3934:                                       ; preds = %2654
  %invariant.gep3915 = getelementptr %struct.complex, ptr %36, i64 %2561
  br label %2656

2656:                                             ; preds = %.lr.ph3934, %._crit_edge3930
  %.1232033932 = phi i64 [ %2622, %.lr.ph3934 ], [ %2761, %._crit_edge3930 ]
  %2657 = load i64, ptr %31, align 8, !tbaa !5
  %2658 = add nsw i64 %2657, %.33242
  store i64 %2658, ptr %18, align 8, !tbaa !5
  %.not33773917 = icmp sgt i64 %.1232033932, %2658
  br i1 %.not33773917, label %._crit_edge3921, label %.lr.ph3920

.lr.ph3920:                                       ; preds = %2656
  %2659 = sub nsw i64 %.33242, %.1232033932
  %2660 = mul nsw i64 %.1232033932, %34
  %2661 = getelementptr %struct.complex, ptr %36, i64 %2659
  %invariant.gep3922 = getelementptr %struct.complex, ptr %2661, i64 %2660
  %2662 = mul nsw i64 %.1232033932, %37
  %gep3914 = getelementptr %struct.complex, ptr %invariant.gep, i64 %2659
  %2663 = getelementptr %struct.complex, ptr %gep3914, i64 %2662
  br label %2664

2664:                                             ; preds = %.lr.ph3920, %2664
  %.243918 = phi i64 [ %.1232033932, %.lr.ph3920 ], [ %2723, %2664 ]
  %2665 = sub i64 %.1232033932, %.243918
  %2666 = load i64, ptr %29, align 8, !tbaa !5
  %2667 = mul nsw i64 %.243918, %34
  %2668 = add i64 %2665, %2667
  %2669 = add i64 %2668, %2666
  store i64 %2669, ptr %15, align 8, !tbaa !5
  store i64 %2669, ptr %16, align 8, !tbaa !5
  %2670 = sub nsw i64 %.33242, %.243918
  %2671 = mul nsw i64 %.243918, %37
  %gep3923 = getelementptr %struct.complex, ptr %invariant.gep3922, i64 %2666
  call void @r_cnjg(ptr noundef nonnull %23, ptr noundef %gep3923) #4
  %gep3912 = getelementptr %struct.complex, ptr %invariant.gep, i64 %2670
  %2672 = getelementptr %struct.complex, ptr %gep3912, i64 %2671
  %2673 = load float, ptr %2672, align 4, !tbaa !9
  %2674 = getelementptr inbounds i8, ptr %2672, i64 4
  %2675 = load float, ptr %2674, align 4, !tbaa !13
  %2676 = fneg float %2675
  %2677 = load <2 x float>, ptr %23, align 8, !tbaa !12
  %2678 = insertelement <2 x float> poison, float %2675, i64 0
  %2679 = insertelement <2 x float> %2678, float %2676, i64 1
  %2680 = fmul <2 x float> %2677, %2679
  %2681 = shufflevector <2 x float> %2680, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2682 = insertelement <2 x float> poison, float %2673, i64 0
  %2683 = shufflevector <2 x float> %2682, <2 x float> poison, <2 x i32> zeroinitializer
  %2684 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2683, <2 x float> %2677, <2 x float> %2681)
  store <2 x float> %2684, ptr %22, align 8, !tbaa !12
  %2685 = load i64, ptr %16, align 8, !tbaa !5
  %2686 = getelementptr inbounds %struct.complex, ptr %36, i64 %2685
  %2687 = load <2 x float>, ptr %2686, align 4, !tbaa !12
  %2688 = fsub <2 x float> %2687, %2684
  store <2 x float> %2688, ptr %21, align 8, !tbaa !12
  call void @r_cnjg(ptr noundef nonnull %24, ptr noundef %2663) #4
  %2689 = load i64, ptr %29, align 8, !tbaa !5
  %2690 = load float, ptr %24, align 4, !tbaa !9
  %2691 = getelementptr %struct.complex, ptr %36, i64 %2670
  %2692 = getelementptr %struct.complex, ptr %2691, i64 %2689
  %2693 = getelementptr %struct.complex, ptr %2692, i64 %2667
  %2694 = load float, ptr %91, align 4, !tbaa !13
  %2695 = fneg float %2694
  %gep3916 = getelementptr %struct.complex, ptr %invariant.gep3915, i64 %2689
  %2696 = load float, ptr %gep3916, align 4, !tbaa !9
  store float %2696, ptr %19, align 4, !tbaa !12
  %2697 = load float, ptr %2672, align 4, !tbaa !9
  %2698 = fmul float %2696, %2697
  %2699 = load float, ptr %2674, align 4, !tbaa !13
  %2700 = fmul float %2696, %2699
  %2701 = fneg float %2700
  %2702 = load <2 x float>, ptr %2693, align 4, !tbaa !12
  %2703 = insertelement <2 x float> poison, float %2694, i64 0
  %2704 = insertelement <2 x float> %2703, float %2695, i64 1
  %2705 = fmul <2 x float> %2702, %2704
  %2706 = shufflevector <2 x float> %2705, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2707 = insertelement <2 x float> poison, float %2690, i64 0
  %2708 = shufflevector <2 x float> %2707, <2 x float> poison, <2 x i32> zeroinitializer
  %2709 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2708, <2 x float> %2702, <2 x float> %2706)
  %2710 = load <2 x float>, ptr %21, align 8, !tbaa !12
  %2711 = fsub <2 x float> %2710, %2709
  call void @r_cnjg(ptr noundef nonnull %25, ptr noundef %2663) #4
  %2712 = load <2 x float>, ptr %25, align 8, !tbaa !12
  %2713 = insertelement <2 x float> poison, float %2700, i64 0
  %2714 = insertelement <2 x float> %2713, float %2701, i64 1
  %2715 = fmul <2 x float> %2712, %2714
  %2716 = shufflevector <2 x float> %2715, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2717 = insertelement <2 x float> poison, float %2698, i64 0
  %2718 = shufflevector <2 x float> %2717, <2 x float> poison, <2 x i32> zeroinitializer
  %2719 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2718, <2 x float> %2712, <2 x float> %2716)
  %2720 = fadd <2 x float> %2711, %2719
  store <2 x float> %2720, ptr %20, align 8, !tbaa !12
  %2721 = load i64, ptr %15, align 8, !tbaa !5
  %2722 = getelementptr inbounds %struct.complex, ptr %36, i64 %2721
  store <2 x float> %2720, ptr %2722, align 4, !tbaa !12
  %2723 = add nsw i64 %.243918, 1
  %2724 = load i64, ptr %18, align 8, !tbaa !5
  %.not3377.not = icmp slt i64 %.243918, %2724
  br i1 %.not3377.not, label %2664, label %._crit_edge3921.loopexit, !llvm.loop !117

._crit_edge3921.loopexit:                         ; preds = %2664
  %.pre4397 = load i64, ptr %31, align 8, !tbaa !5
  %.pre4489 = add nsw i64 %.pre4397, %.33242
  br label %._crit_edge3921

._crit_edge3921:                                  ; preds = %._crit_edge3921.loopexit, %2656
  %.pre-phi4490 = phi i64 [ %.pre4489, %._crit_edge3921.loopexit ], [ %2658, %2656 ]
  %2725 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %2725, ptr %15, align 8, !tbaa !5
  %2726 = load i64, ptr %3, align 8, !tbaa !5
  %2727 = add nsw i64 %2726, %.33242
  store i64 %2727, ptr %16, align 8, !tbaa !5
  %2728 = call i64 @llvm.smin.i64(i64 %2725, i64 %2727)
  store i64 %2728, ptr %18, align 8, !tbaa !5
  %.not3379.not3926 = icmp slt i64 %.pre-phi4490, %2728
  br i1 %.not3379.not3926, label %.lr.ph3929, label %._crit_edge3930

.lr.ph3929:                                       ; preds = %._crit_edge3921
  %2729 = sub nsw i64 %.33242, %.1232033932
  %2730 = mul nsw i64 %.1232033932, %37
  %gep3925 = getelementptr %struct.complex, ptr %invariant.gep, i64 %2729
  %2731 = getelementptr %struct.complex, ptr %gep3925, i64 %2730
  %.pre4398 = load i64, ptr %29, align 8, !tbaa !5
  br label %2732

2732:                                             ; preds = %.lr.ph3929, %2732
  %2733 = phi i64 [ %.pre4398, %.lr.ph3929 ], [ %2739, %2732 ]
  %.25.in3927 = phi i64 [ %.pre-phi4490, %.lr.ph3929 ], [ %.25, %2732 ]
  %.25 = add nsw i64 %.25.in3927, 1
  %.25.neg = xor i64 %.25.in3927, -1
  %2734 = add i64 %.1232033932, %.25.neg
  %2735 = mul nsw i64 %.25, %34
  %2736 = add i64 %2734, %2735
  %2737 = add i64 %2736, %2733
  store i64 %2737, ptr %15, align 8, !tbaa !5
  store i64 %2737, ptr %16, align 8, !tbaa !5
  call void @r_cnjg(ptr noundef nonnull %21, ptr noundef %2731) #4
  %2738 = sub nsw i64 %.33242, %.25
  %2739 = load i64, ptr %29, align 8, !tbaa !5
  %2740 = load float, ptr %21, align 8, !tbaa !9
  %2741 = getelementptr %struct.complex, ptr %36, i64 %2738
  %2742 = getelementptr %struct.complex, ptr %2741, i64 %2739
  %2743 = getelementptr %struct.complex, ptr %2742, i64 %2735
  %2744 = load float, ptr %90, align 4, !tbaa !13
  %2745 = fneg float %2744
  %2746 = load i64, ptr %16, align 8, !tbaa !5
  %2747 = getelementptr inbounds %struct.complex, ptr %36, i64 %2746
  %2748 = load <2 x float>, ptr %2743, align 4, !tbaa !12
  %2749 = insertelement <2 x float> poison, float %2744, i64 0
  %2750 = insertelement <2 x float> %2749, float %2745, i64 1
  %2751 = fmul <2 x float> %2748, %2750
  %2752 = shufflevector <2 x float> %2751, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2753 = insertelement <2 x float> poison, float %2740, i64 0
  %2754 = shufflevector <2 x float> %2753, <2 x float> poison, <2 x i32> zeroinitializer
  %2755 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2754, <2 x float> %2748, <2 x float> %2752)
  %2756 = load <2 x float>, ptr %2747, align 4, !tbaa !12
  %2757 = fsub <2 x float> %2756, %2755
  store <2 x float> %2757, ptr %20, align 8, !tbaa !12
  %2758 = load i64, ptr %15, align 8, !tbaa !5
  %2759 = getelementptr inbounds %struct.complex, ptr %36, i64 %2758
  store <2 x float> %2757, ptr %2759, align 4, !tbaa !12
  %2760 = load i64, ptr %18, align 8, !tbaa !5
  %.not3379.not = icmp slt i64 %.25, %2760
  br i1 %.not3379.not, label %2732, label %._crit_edge3930, !llvm.loop !118

._crit_edge3930:                                  ; preds = %2732, %._crit_edge3921
  %2761 = add nsw i64 %.1232033932, 1
  %2762 = load i64, ptr %17, align 8, !tbaa !5
  %.not3357.not = icmp slt i64 %.1232033932, %2762
  br i1 %.not3357.not, label %2656, label %._crit_edge3935, !llvm.loop !119

._crit_edge3935:                                  ; preds = %._crit_edge3930, %2654
  store i64 %.33242, ptr %17, align 8, !tbaa !5
  %.not33583947 = icmp sgt i64 %.43180, %.33242
  br i1 %.not33583947, label %2799, label %.lr.ph3950

.lr.ph3950:                                       ; preds = %._crit_edge3935
  %2763 = load i64, ptr %3, align 8, !tbaa !5
  %2764 = load i64, ptr %31, align 8, !tbaa !5
  %2765 = add nsw i64 %2764, %.33242
  %2766 = load i64, ptr %29, align 8
  %invariant.gep3952 = getelementptr %struct.complex, ptr %36, i64 %2766
  %invariant.gep3954 = getelementptr %struct.complex, ptr %invariant.gep3952, i64 %2561
  %2767 = add nsw i64 %.43180, %2763
  %2768 = add i64 %.33242, %2763
  br label %2769

2769:                                             ; preds = %.lr.ph3950, %2797
  %indvars.iv = phi i64 [ %2767, %.lr.ph3950 ], [ %indvars.iv.next, %2797 ]
  %.263948 = phi i64 [ %.43180, %.lr.ph3950 ], [ %2798, %2797 ]
  %smin = call i64 @llvm.smin.i64(i64 %indvars.iv, i64 %2765)
  %2770 = add nsw i64 %2763, %.263948
  %2771 = call i64 @llvm.smin.i64(i64 %2770, i64 %2765)
  %.not33763938.not = icmp slt i64 %.33242, %2771
  br i1 %.not33763938.not, label %.lr.ph3941, label %2797

.lr.ph3941:                                       ; preds = %2769
  %2772 = sub nsw i64 %.263948, %.33242
  %gep3955 = getelementptr %struct.complex, ptr %invariant.gep3954, i64 %2772
  br label %2773

2773:                                             ; preds = %.lr.ph3941, %2773
  %.1332043939 = phi i64 [ %2622, %.lr.ph3941 ], [ %2796, %2773 ]
  %2774 = sub i64 %.263948, %.1332043939
  %2775 = mul nsw i64 %.1332043939, %34
  %2776 = add i64 %2774, %2775
  %2777 = add i64 %2776, %2766
  %2778 = sub nsw i64 %.33242, %.1332043939
  %2779 = mul nsw i64 %.1332043939, %37
  %gep3937 = getelementptr %struct.complex, ptr %invariant.gep, i64 %2778
  %2780 = getelementptr %struct.complex, ptr %gep3937, i64 %2779
  %2781 = load float, ptr %2780, align 4, !tbaa !9
  %2782 = getelementptr inbounds i8, ptr %2780, i64 4
  %2783 = load float, ptr %2782, align 4, !tbaa !13
  %2784 = fneg float %2783
  %2785 = getelementptr inbounds %struct.complex, ptr %36, i64 %2777
  %2786 = load <2 x float>, ptr %gep3955, align 4, !tbaa !12
  %2787 = insertelement <2 x float> poison, float %2783, i64 0
  %2788 = insertelement <2 x float> %2787, float %2784, i64 1
  %2789 = fmul <2 x float> %2786, %2788
  %2790 = shufflevector <2 x float> %2789, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2791 = insertelement <2 x float> poison, float %2781, i64 0
  %2792 = shufflevector <2 x float> %2791, <2 x float> poison, <2 x i32> zeroinitializer
  %2793 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2792, <2 x float> %2786, <2 x float> %2790)
  %2794 = load <2 x float>, ptr %2785, align 4, !tbaa !12
  %2795 = fsub <2 x float> %2794, %2793
  store <2 x float> %2795, ptr %2785, align 4, !tbaa !12
  %2796 = add i64 %.1332043939, 1
  %exitcond4370.not = icmp eq i64 %.1332043939, %smin
  br i1 %exitcond4370.not, label %._crit_edge3942, label %2773, !llvm.loop !120

._crit_edge3942:                                  ; preds = %2773
  store <2 x float> %2795, ptr %20, align 8, !tbaa !12
  br label %2797

2797:                                             ; preds = %._crit_edge3942, %2769
  %.lcssa39443957 = phi i64 [ %2777, %._crit_edge3942 ], [ %2765, %2769 ]
  %.lcssa39433956 = phi i64 [ %2777, %._crit_edge3942 ], [ %2770, %2769 ]
  %2798 = add i64 %.263948, 1
  %indvars.iv.next = add i64 %indvars.iv, 1
  %exitcond4372.not = icmp eq i64 %.263948, %.33242
  br i1 %exitcond4372.not, label %._crit_edge3951, label %2769, !llvm.loop !121

._crit_edge3951:                                  ; preds = %2797
  %smin4371 = call i64 @llvm.smin.i64(i64 %2768, i64 %2765)
  store i64 %.lcssa39433956, ptr %15, align 8, !tbaa !5
  store i64 %.lcssa39443957, ptr %16, align 8, !tbaa !5
  store i64 %smin4371, ptr %18, align 8, !tbaa !5
  br label %2799

2799:                                             ; preds = %._crit_edge3951, %._crit_edge3935
  br i1 %.not, label %2800, label %2815

2800:                                             ; preds = %2799
  %2801 = fdiv float 1.000000e+00, %2559
  store float %2801, ptr %19, align 4, !tbaa !12
  %2802 = mul nsw i64 %.33242, %40
  %gep4247 = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %2802
  %2803 = call i32 @f2c_csscal(ptr noundef nonnull %28, ptr noundef nonnull %19, ptr noundef %gep4247, ptr noundef nonnull @c__1) #4
  %2804 = load i64, ptr %31, align 8, !tbaa !5
  %2805 = icmp sgt i64 %2804, 0
  br i1 %2805, label %2806, label %2815

2806:                                             ; preds = %2800
  store <2 x float> <float -1.000000e+00, float -0.000000e+00>, ptr %20, align 8, !tbaa !12
  %2807 = load i64, ptr %8, align 8, !tbaa !5
  %2808 = add nsw i64 %2807, -1
  store i64 %2808, ptr %17, align 8, !tbaa !5
  %2809 = load i64, ptr %4, align 8, !tbaa !5
  %2810 = mul nsw i64 %2622, %37
  %2811 = getelementptr %struct.complex, ptr %39, i64 %2809
  %2812 = getelementptr %struct.complex, ptr %2811, i64 %2810
  %2813 = mul nsw i64 %2622, %40
  %gep4249 = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %2813
  %2814 = call i32 @f2c_cgeru(ptr noundef nonnull %28, ptr noundef nonnull %31, ptr noundef nonnull %20, ptr noundef %gep4247, ptr noundef nonnull @c__1, ptr noundef %2812, ptr noundef nonnull %17, ptr noundef %gep4249, ptr noundef nonnull %10) #4
  br label %2815

2815:                                             ; preds = %2800, %2806, %2799
  %2816 = load i64, ptr %29, align 8, !tbaa !5
  %2817 = sub i64 %2561, %.33242
  %2818 = getelementptr %struct.complex, ptr %36, i64 %2817
  %2819 = getelementptr %struct.complex, ptr %2818, i64 %.43180
  %2820 = getelementptr %struct.complex, ptr %2819, i64 %2816
  %2821 = load <2 x float>, ptr %2820, align 4, !tbaa !12
  store <2 x float> %2821, ptr %30, align 8, !tbaa !12
  %.pre4399 = load i64, ptr %4, align 8, !tbaa !5
  br label %2822

2822:                                             ; preds = %2815, %2556
  %2823 = phi i64 [ %.pre4399, %2815 ], [ %2536, %2556 ]
  %2824 = add nsw i64 %2823, -1
  store i64 %2824, ptr %17, align 8, !tbaa !5
  %.not33593991 = icmp slt i64 %2823, 2
  br i1 %.not33593991, label %._crit_edge3995, label %.lr.ph3994

.lr.ph3994:                                       ; preds = %2822
  %2825 = mul nsw i64 %.33242, %34
  %invariant.gep3996 = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %2825
  %2826 = add i64 %.33242, %86
  %reass.sub4261 = sub i64 %.43185, %86
  %2827 = add i64 %reass.sub4261, 1
  %2828 = add i64 %.33242, 1
  %2829 = add i64 %.33242, -1
  br label %2830

2830:                                             ; preds = %.lr.ph3994, %.loopexit3477
  %.1432053992 = phi i64 [ 1, %.lr.ph3994 ], [ %3047, %.loopexit3477 ]
  %.pre4401 = load i64, ptr %29, align 8, !tbaa !5
  br i1 %.not33243494, label %._crit_edge4402, label %2831

._crit_edge4402:                                  ; preds = %2830
  %.pre4403 = load i64, ptr %3, align 8, !tbaa !5
  br label %2907

2831:                                             ; preds = %2830
  %2832 = add nsw i64 %.1432053992, %.33242
  %2833 = icmp sgt i64 %2832, %.pre4401
  %2834 = icmp slt i64 %2832, %86
  %or.cond3385 = select i1 %2833, i1 %2834, i1 false
  %.pre4404 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %or.cond3385, label %2835, label %2907

2835:                                             ; preds = %2831
  %gep3997 = getelementptr %struct.complex, ptr %invariant.gep3996, i64 %.1432053992
  %2836 = sub nsw i64 %2832, %.pre4404
  %2837 = getelementptr inbounds float, ptr %44, i64 %2836
  %2838 = getelementptr inbounds %struct.complex, ptr %43, i64 %2836
  %2839 = call i32 @clartg_(ptr noundef %gep3997, ptr noundef nonnull %30, ptr noundef nonnull %2837, ptr noundef nonnull %2838, ptr noundef nonnull %26) #4
  %2840 = sub nsw i64 %50, %.1432053992
  %2841 = mul nsw i64 %2832, %37
  %2842 = getelementptr %struct.complex, ptr %39, i64 %2841
  %2843 = getelementptr %struct.complex, ptr %2842, i64 %2840
  %2844 = load float, ptr %2843, align 4, !tbaa !9
  %2845 = fneg float %2844
  %2846 = getelementptr inbounds i8, ptr %2843, i64 4
  %2847 = load float, ptr %2846, align 4, !tbaa !13
  %2848 = fneg float %2847
  %2849 = load i64, ptr %4, align 8, !tbaa !5
  %2850 = add i64 %2826, %.1432053992
  %2851 = sub i64 %2850, %2849
  store i64 %2851, ptr %18, align 8, !tbaa !5
  %2852 = load i64, ptr %3, align 8, !tbaa !5
  %2853 = sub nsw i64 %2832, %2852
  store i64 %2853, ptr %15, align 8, !tbaa !5
  %2854 = getelementptr inbounds float, ptr %44, i64 %2853
  %2855 = load float, ptr %2854, align 4, !tbaa !12
  %2856 = getelementptr inbounds %struct.complex, ptr %43, i64 %2853
  %2857 = mul nsw i64 %2832, %34
  %2858 = add nsw i64 %2857, 1
  %2859 = getelementptr inbounds %struct.complex, ptr %36, i64 %2858
  %2860 = load <2 x float>, ptr %30, align 8, !tbaa !12
  %2861 = insertelement <2 x float> poison, float %2848, i64 0
  %2862 = insertelement <2 x float> %2861, float %2847, i64 1
  %2863 = fmul <2 x float> %2860, %2862
  %2864 = shufflevector <2 x float> %2863, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2865 = insertelement <2 x float> poison, float %2845, i64 0
  %2866 = shufflevector <2 x float> %2865, <2 x float> poison, <2 x i32> zeroinitializer
  %2867 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2866, <2 x float> %2860, <2 x float> %2864)
  store <2 x float> %2867, ptr %20, align 8, !tbaa !12
  call void @r_cnjg(ptr noundef nonnull %22, ptr noundef nonnull %2856) #4
  %2868 = load float, ptr %22, align 8, !tbaa !9
  %2869 = load float, ptr %89, align 4, !tbaa !13
  %2870 = fneg float %2869
  %2871 = load i64, ptr %18, align 8, !tbaa !5
  %2872 = getelementptr inbounds %struct.complex, ptr %43, i64 %2871
  %2873 = insertelement <2 x float> poison, float %2855, i64 0
  %2874 = shufflevector <2 x float> %2873, <2 x float> poison, <2 x i32> zeroinitializer
  %2875 = fmul <2 x float> %2867, %2874
  %2876 = load <2 x float>, ptr %2859, align 4, !tbaa !12
  %2877 = insertelement <2 x float> poison, float %2869, i64 0
  %2878 = insertelement <2 x float> %2877, float %2870, i64 1
  %2879 = fmul <2 x float> %2876, %2878
  %2880 = shufflevector <2 x float> %2879, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2881 = insertelement <2 x float> poison, float %2868, i64 0
  %2882 = shufflevector <2 x float> %2881, <2 x float> poison, <2 x i32> zeroinitializer
  %2883 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2882, <2 x float> %2876, <2 x float> %2880)
  %2884 = fsub <2 x float> %2875, %2883
  store <2 x float> %2884, ptr %2872, align 4, !tbaa !12
  store i64 %2858, ptr %18, align 8, !tbaa !5
  %2885 = load i64, ptr %3, align 8, !tbaa !5
  %2886 = sub nsw i64 %2832, %2885
  %2887 = getelementptr inbounds %struct.complex, ptr %43, i64 %2886
  %2888 = load float, ptr %2887, align 4, !tbaa !9
  %2889 = getelementptr inbounds i8, ptr %2887, i64 4
  %2890 = load float, ptr %2889, align 4, !tbaa !13
  %2891 = fneg float %2890
  %2892 = insertelement <2 x float> poison, float %2890, i64 0
  %2893 = insertelement <2 x float> %2892, float %2891, i64 1
  %2894 = fmul <2 x float> %2867, %2893
  %2895 = shufflevector <2 x float> %2894, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2896 = insertelement <2 x float> poison, float %2888, i64 0
  %2897 = shufflevector <2 x float> %2896, <2 x float> poison, <2 x i32> zeroinitializer
  %2898 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2897, <2 x float> %2867, <2 x float> %2895)
  store i64 %2886, ptr %16, align 8, !tbaa !5
  %2899 = getelementptr inbounds float, ptr %44, i64 %2886
  %2900 = load float, ptr %2899, align 4, !tbaa !12
  %2901 = load <2 x float>, ptr %2859, align 4, !tbaa !12
  %2902 = insertelement <2 x float> poison, float %2900, i64 0
  %2903 = shufflevector <2 x float> %2902, <2 x float> poison, <2 x i32> zeroinitializer
  %2904 = fmul <2 x float> %2903, %2901
  store <2 x float> %2904, ptr %21, align 8, !tbaa !12
  %2905 = fadd <2 x float> %2898, %2904
  store <2 x float> %2905, ptr %20, align 8, !tbaa !12
  store <2 x float> %2905, ptr %2859, align 4, !tbaa !12
  %2906 = load <2 x float>, ptr %26, align 8, !tbaa !12
  store <2 x float> %2906, ptr %30, align 8, !tbaa !12
  %.pre4400 = load i64, ptr %29, align 8, !tbaa !5
  br label %2907

2907:                                             ; preds = %._crit_edge4402, %2831, %2835
  %2908 = phi i64 [ %.pre4404, %2831 ], [ %2885, %2835 ], [ %.pre4403, %._crit_edge4402 ]
  %2909 = phi i64 [ %.pre4401, %2831 ], [ %.pre4400, %2835 ], [ %.pre4401, %._crit_edge4402 ]
  %2910 = add i64 %2827, %.1432053992
  %2911 = call i64 @llvm.smax.i64(i64 %2910, i64 1)
  %2912 = mul nsw i64 %2911, %2909
  %2913 = add i64 %2828, %.1432053992
  %2914 = sub i64 %2913, %2912
  %2915 = add i64 %2908, -1
  %2916 = add i64 %2915, %2914
  %2917 = sdiv i64 %2916, %2909
  store i64 %2917, ptr %27, align 8, !tbaa !5
  %2918 = add nsw i64 %2917, -1
  %2919 = mul nsw i64 %2909, %2918
  %2920 = sub nsw i64 %2914, %2919
  br i1 %.not33243494, label %2926, label %2921

2921:                                             ; preds = %2907
  %2922 = add i64 %2829, %.1432053992
  %2923 = shl i64 %2908, 1
  %2924 = sub i64 %2922, %2923
  %2925 = call i64 @llvm.smin.i64(i64 %2914, i64 %2924)
  br label %2926

2926:                                             ; preds = %2907, %2921
  %.2 = phi i64 [ %2925, %2921 ], [ %2914, %2907 ]
  %2927 = add i64 %.2, -1
  %2928 = add i64 %2927, %2908
  %2929 = sdiv i64 %2928, %2909
  store i64 %2929, ptr %32, align 8, !tbaa !5
  store i64 %.2, ptr %18, align 8, !tbaa !5
  store i64 %2909, ptr %15, align 8, !tbaa !5
  %2930 = icmp slt i64 %2909, 0
  %2931 = icmp sge i64 %2920, %.2
  %2932 = icmp sle i64 %2920, %.2
  %.in33713959 = select i1 %2930, i1 %2931, i1 %2932
  br i1 %.in33713959, label %.lr.ph3962, label %2960

.lr.ph3962:                                       ; preds = %2926, %.lr.ph3962
  %.273960 = phi i64 [ %2957, %.lr.ph3962 ], [ %2920, %2926 ]
  %2933 = add i64 %.273960, -1
  %2934 = add i64 %2933, %2908
  %2935 = mul nsw i64 %2934, %34
  %2936 = getelementptr inbounds %struct.complex, ptr %43, i64 %.273960
  %2937 = load float, ptr %2936, align 4, !tbaa !9
  %gep5466 = getelementptr %struct.complex, ptr %invariant.gep5465, i64 %2935
  %2938 = getelementptr inbounds i8, ptr %2936, i64 4
  %2939 = load float, ptr %2938, align 4, !tbaa !13
  %2940 = fneg float %2939
  %2941 = load <2 x float>, ptr %gep5466, align 4, !tbaa !12
  %2942 = insertelement <2 x float> poison, float %2939, i64 0
  %2943 = insertelement <2 x float> %2942, float %2940, i64 1
  %2944 = fmul <2 x float> %2941, %2943
  %2945 = shufflevector <2 x float> %2944, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %2946 = insertelement <2 x float> poison, float %2937, i64 0
  %2947 = shufflevector <2 x float> %2946, <2 x float> poison, <2 x i32> zeroinitializer
  %2948 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %2947, <2 x float> %2941, <2 x float> %2945)
  store <2 x float> %2948, ptr %2936, align 4, !tbaa !12
  %2949 = add nsw i64 %2935, 1
  %2950 = getelementptr inbounds float, ptr %44, i64 %.273960
  %2951 = load float, ptr %2950, align 4, !tbaa !12
  %2952 = load <2 x float>, ptr %gep5466, align 4, !tbaa !12
  %2953 = insertelement <2 x float> poison, float %2951, i64 0
  %2954 = shufflevector <2 x float> %2953, <2 x float> poison, <2 x i32> zeroinitializer
  %2955 = fmul <2 x float> %2954, %2952
  %2956 = getelementptr inbounds %struct.complex, ptr %36, i64 %2949
  store <2 x float> %2955, ptr %2956, align 4, !tbaa !12
  %2957 = add nsw i64 %2909, %.273960
  %2958 = icmp sge i64 %2957, %.2
  %2959 = icmp sle i64 %2957, %.2
  %.in3371 = select i1 %2930, i1 %2958, i1 %2959
  br i1 %.in3371, label %.lr.ph3962, label %._crit_edge3963, !llvm.loop !122

._crit_edge3963:                                  ; preds = %.lr.ph3962
  store i64 %2949, ptr %16, align 8, !tbaa !5
  store <2 x float> %2955, ptr %20, align 8, !tbaa !12
  br label %2960

2960:                                             ; preds = %._crit_edge3963, %2926
  %2961 = icmp sgt i64 %2929, 0
  br i1 %2961, label %2962, label %2968

2962:                                             ; preds = %2960
  %2963 = add nsw i64 %2908, %2920
  %2964 = mul nsw i64 %2963, %34
  %gep3990 = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %2964
  %2965 = getelementptr inbounds %struct.complex, ptr %43, i64 %2920
  %2966 = getelementptr inbounds float, ptr %44, i64 %2920
  %2967 = call i32 @clargv_(ptr noundef nonnull %32, ptr noundef %gep3990, ptr noundef nonnull %33, ptr noundef nonnull %2965, ptr noundef nonnull %29, ptr noundef nonnull %2966, ptr noundef nonnull %29) #4
  %.pre4405 = load i64, ptr %27, align 8, !tbaa !5
  %.pre4408.pre = load i64, ptr %3, align 8, !tbaa !5
  br label %2968

2968:                                             ; preds = %2962, %2960
  %.pre4408 = phi i64 [ %.pre4408.pre, %2962 ], [ %2908, %2960 ]
  %2969 = phi i64 [ %.pre4405, %2962 ], [ %2917, %2960 ]
  %2970 = icmp sgt i64 %2969, 0
  br i1 %2970, label %2971, label %3003

2971:                                             ; preds = %2968
  %2972 = add nsw i64 %.pre4408, -1
  store i64 %2972, ptr %15, align 8, !tbaa !5
  %.not33723967 = icmp slt i64 %.pre4408, 2
  br i1 %.not33723967, label %._crit_edge3971, label %.lr.ph3970

.lr.ph3970:                                       ; preds = %2971
  %2973 = getelementptr inbounds float, ptr %44, i64 %2920
  %2974 = getelementptr inbounds %struct.complex, ptr %43, i64 %2920
  br label %2975

2975:                                             ; preds = %.lr.ph3970, %2975
  %.123968 = phi i64 [ 1, %.lr.ph3970 ], [ %2987, %2975 ]
  %2976 = load i64, ptr %29, align 8, !tbaa !5
  %2977 = sub nsw i64 %2976, %.123968
  %2978 = add nsw i64 %.123968, %2920
  %2979 = mul nsw i64 %2978, %34
  %2980 = getelementptr %struct.complex, ptr %36, i64 %2977
  %2981 = getelementptr %struct.complex, ptr %2980, i64 %2979
  %2982 = load i64, ptr %3, align 8, !tbaa !5
  %2983 = sub nsw i64 %2982, %.123968
  %2984 = getelementptr %struct.complex, ptr %36, i64 %2983
  %2985 = getelementptr %struct.complex, ptr %2984, i64 %2979
  %2986 = call i32 @clartv_(ptr noundef nonnull %27, ptr noundef %2981, ptr noundef nonnull %33, ptr noundef %2985, ptr noundef nonnull %33, ptr noundef nonnull %2973, ptr noundef nonnull %2974, ptr noundef nonnull %29) #4
  %2987 = add nuw nsw i64 %.123968, 1
  %2988 = load i64, ptr %15, align 8, !tbaa !5
  %.not3372.not = icmp slt i64 %.123968, %2988
  br i1 %.not3372.not, label %2975, label %._crit_edge3971.loopexit, !llvm.loop !123

._crit_edge3971.loopexit:                         ; preds = %2975
  %.pre4406 = load i64, ptr %3, align 8, !tbaa !5
  br label %._crit_edge3971

._crit_edge3971:                                  ; preds = %._crit_edge3971.loopexit, %2971
  %2989 = phi i64 [ %.pre4406, %._crit_edge3971.loopexit ], [ %.pre4408, %2971 ]
  %2990 = load i64, ptr %29, align 8, !tbaa !5
  %2991 = mul nsw i64 %2920, %34
  %2992 = getelementptr %struct.complex, ptr %36, i64 %2990
  %2993 = getelementptr %struct.complex, ptr %2992, i64 %2991
  %2994 = add nsw i64 %2920, -1
  %2995 = mul nsw i64 %2994, %34
  %2996 = getelementptr %struct.complex, ptr %2992, i64 %2995
  %2997 = getelementptr %struct.complex, ptr %36, i64 %2989
  %2998 = getelementptr %struct.complex, ptr %2997, i64 %2991
  %2999 = getelementptr inbounds float, ptr %44, i64 %2920
  %3000 = getelementptr inbounds %struct.complex, ptr %43, i64 %2920
  %3001 = call i32 @clar2v_(ptr noundef nonnull %27, ptr noundef %2993, ptr noundef %2996, ptr noundef %2998, ptr noundef nonnull %33, ptr noundef nonnull %2999, ptr noundef nonnull %3000, ptr noundef nonnull %29) #4
  %3002 = call i32 @clacgv_(ptr noundef nonnull %27, ptr noundef nonnull %3000, ptr noundef nonnull %29) #4
  %.pre4407 = load i64, ptr %3, align 8, !tbaa !5
  br label %3003

3003:                                             ; preds = %._crit_edge3971, %2968
  %3004 = phi i64 [ %.pre4407, %._crit_edge3971 ], [ %.pre4408, %2968 ]
  %3005 = load i64, ptr %4, align 8, !tbaa !5
  %reass.sub4262 = sub i64 %3005, %.1432053992
  %3006 = add i64 %reass.sub4262, 1
  store i64 %3006, ptr %15, align 8, !tbaa !5
  %.not3373.not3973 = icmp sgt i64 %3004, %3006
  br i1 %.not3373.not3973, label %.lr.ph3977, label %._crit_edge3978

.lr.ph3977:                                       ; preds = %3003
  %3007 = add i64 %2914, -1
  br label %3008

3008:                                             ; preds = %.lr.ph3977, %3028
  %3009 = phi i64 [ %3006, %.lr.ph3977 ], [ %3029, %3028 ]
  %.13.in3974 = phi i64 [ %3004, %.lr.ph3977 ], [ %.133975, %3028 ]
  %.133975 = add nsw i64 %.13.in3974, -1
  %3010 = add i64 %3007, %.133975
  %3011 = load i64, ptr %29, align 8, !tbaa !5
  %3012 = sdiv i64 %3010, %3011
  store i64 %3012, ptr %32, align 8, !tbaa !5
  %3013 = icmp sgt i64 %3012, 0
  br i1 %3013, label %3014, label %3028

3014:                                             ; preds = %3008
  %3015 = add nsw i64 %3012, -1
  %3016 = mul nsw i64 %3015, %3011
  %3017 = sub nsw i64 %2914, %3016
  %3018 = mul nsw i64 %3017, %34
  %3019 = getelementptr %struct.complex, ptr %36, i64 %.133975
  %3020 = getelementptr %struct.complex, ptr %3019, i64 %3018
  %3021 = add nsw i64 %3017, -1
  %3022 = mul nsw i64 %3021, %34
  %3023 = getelementptr %struct.complex, ptr %36, i64 %.13.in3974
  %3024 = getelementptr %struct.complex, ptr %3023, i64 %3022
  %3025 = getelementptr inbounds float, ptr %44, i64 %3017
  %3026 = getelementptr inbounds %struct.complex, ptr %43, i64 %3017
  %3027 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %3020, ptr noundef nonnull %33, ptr noundef %3024, ptr noundef nonnull %33, ptr noundef nonnull %3025, ptr noundef nonnull %3026, ptr noundef nonnull %29) #4
  %.pre4409 = load i64, ptr %15, align 8, !tbaa !5
  br label %3028

3028:                                             ; preds = %3008, %3014
  %3029 = phi i64 [ %3009, %3008 ], [ %.pre4409, %3014 ]
  %.not3373.not = icmp sgt i64 %.133975, %3029
  br i1 %.not3373.not, label %3008, label %._crit_edge3978, !llvm.loop !124

._crit_edge3978:                                  ; preds = %3028, %3003
  br i1 %.not, label %3030, label %.loopexit3477

3030:                                             ; preds = %._crit_edge3978
  store i64 %2914, ptr %15, align 8, !tbaa !5
  %3031 = load i64, ptr %29, align 8, !tbaa !5
  store i64 %3031, ptr %18, align 8, !tbaa !5
  %3032 = icmp slt i64 %3031, 0
  %3033 = icmp slt i64 %2919, 1
  %3034 = icmp sgt i64 %2919, -1
  %.in33743983 = select i1 %3032, i1 %3033, i1 %3034
  br i1 %.in33743983, label %.lr.ph3986, label %.loopexit3477

.lr.ph3986:                                       ; preds = %3030, %.lr.ph3986
  %.283984 = phi i64 [ %3042, %.lr.ph3986 ], [ %2920, %3030 ]
  %3035 = mul nsw i64 %.283984, %40
  %gep3980 = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %3035
  %3036 = add nsw i64 %.283984, -1
  %3037 = mul nsw i64 %3036, %40
  %gep3982 = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %3037
  %3038 = getelementptr inbounds float, ptr %44, i64 %.283984
  %3039 = getelementptr inbounds %struct.complex, ptr %43, i64 %.283984
  %3040 = call i32 @crot_(ptr noundef nonnull %28, ptr noundef %gep3980, ptr noundef nonnull @c__1, ptr noundef %gep3982, ptr noundef nonnull @c__1, ptr noundef nonnull %3038, ptr noundef nonnull %3039) #4
  %3041 = load i64, ptr %18, align 8, !tbaa !5
  %3042 = add nsw i64 %3041, %.283984
  %3043 = icmp slt i64 %3041, 0
  %3044 = load i64, ptr %15, align 8
  %3045 = icmp sge i64 %3042, %3044
  %3046 = icmp sle i64 %3042, %3044
  %.in3374 = select i1 %3043, i1 %3045, i1 %3046
  br i1 %.in3374, label %.lr.ph3986, label %.loopexit3477, !llvm.loop !125

.loopexit3477:                                    ; preds = %.lr.ph3986, %3030, %._crit_edge3978
  %3047 = add nuw nsw i64 %.1432053992, 1
  %3048 = load i64, ptr %17, align 8, !tbaa !5
  %.not3359.not = icmp slt i64 %.1432053992, %3048
  br i1 %.not3359.not, label %2830, label %._crit_edge3995, !llvm.loop !126

._crit_edge3995:                                  ; preds = %.loopexit3477, %2822
  br i1 %.not33243494, label %._crit_edge3995._crit_edge, label %3049

._crit_edge3995._crit_edge:                       ; preds = %._crit_edge3995
  %.pre4410 = load i64, ptr %4, align 8, !tbaa !5
  br label %3076

3049:                                             ; preds = %._crit_edge3995
  %3050 = icmp sgt i64 %.4, 0
  %3051 = load i64, ptr %31, align 8
  %3052 = icmp sgt i64 %3051, 0
  %or.cond5 = select i1 %3050, i1 %3052, i1 false
  %.pre4411 = load i64, ptr %4, align 8, !tbaa !5
  br i1 %or.cond5, label %3053, label %3076

3053:                                             ; preds = %3049
  %3054 = add i64 %.33242, %86
  %3055 = add i64 %3054, %3051
  %3056 = sub i64 %3055, %.pre4411
  store i64 %3056, ptr %17, align 8, !tbaa !5
  %3057 = sub nsw i64 %50, %3051
  %3058 = add nsw i64 %3051, %.33242
  %3059 = mul nsw i64 %3058, %37
  %3060 = getelementptr %struct.complex, ptr %39, i64 %3059
  %3061 = getelementptr %struct.complex, ptr %3060, i64 %3057
  %3062 = load float, ptr %3061, align 4, !tbaa !9
  %3063 = fneg float %3062
  %3064 = getelementptr inbounds i8, ptr %3061, i64 4
  %3065 = load float, ptr %3064, align 4, !tbaa !13
  %3066 = fneg float %3065
  %3067 = load <2 x float>, ptr %30, align 8, !tbaa !12
  %3068 = insertelement <2 x float> poison, float %3066, i64 0
  %3069 = insertelement <2 x float> %3068, float %3065, i64 1
  %3070 = fmul <2 x float> %3067, %3069
  %3071 = shufflevector <2 x float> %3070, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %3072 = insertelement <2 x float> poison, float %3063, i64 0
  %3073 = shufflevector <2 x float> %3072, <2 x float> poison, <2 x i32> zeroinitializer
  %3074 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %3073, <2 x float> %3067, <2 x float> %3071)
  store <2 x float> %3074, ptr %20, align 8, !tbaa !12
  %3075 = getelementptr inbounds %struct.complex, ptr %43, i64 %3056
  store <2 x float> %3074, ptr %3075, align 4, !tbaa !12
  br label %3076

3076:                                             ; preds = %._crit_edge3995._crit_edge, %3049, %3053
  %3077 = phi i64 [ %.pre4410, %._crit_edge3995._crit_edge ], [ %.pre4411, %3049 ], [ %.pre4411, %3053 ]
  %3078 = icmp sgt i64 %3077, 0
  br i1 %3078, label %.lr.ph4020, label %._crit_edge4047.thread

.lr.ph4020:                                       ; preds = %3076
  %3079 = sub i64 %.43185, %86
  %3080 = add i64 %.33242, 1
  %3081 = add i64 %.33242, %86
  br label %3082

3082:                                             ; preds = %.lr.ph4020, %3195
  %.1532064018 = phi i64 [ %3077, %.lr.ph4020 ], [ %3196, %3195 ]
  %3083 = add i64 %3079, %.1532064018
  %3084 = load i64, ptr %29, align 8, !tbaa !5
  %3085 = add i64 %3080, %.1532064018
  br i1 %.not33243494, label %3088, label %3086

3086:                                             ; preds = %3082
  %3087 = call i64 @llvm.smax.i64(i64 %3083, i64 2)
  br label %3090

3088:                                             ; preds = %3082
  %3089 = call i64 @llvm.smax.i64(i64 %3083, i64 1)
  br label %3090

3090:                                             ; preds = %3088, %3086
  %.sink4644 = phi i64 [ %3089, %3088 ], [ %3087, %3086 ]
  %.sink4389 = phi i64 [ 1, %3088 ], [ 2, %3086 ]
  %3091 = mul nsw i64 %3084, %.sink4644
  %3092 = sub i64 %3085, %3091
  store i64 %.sink4389, ptr %17, align 8
  store i64 %3083, ptr %18, align 8
  %3093 = load i64, ptr %4, align 8, !tbaa !5
  %3094 = sub nsw i64 %3093, %.1532064018
  %3095 = icmp sgt i64 %3094, 0
  %3096 = add i64 %3092, -1
  br i1 %3095, label %.lr.ph4000, label %._crit_edge4001

.lr.ph4000:                                       ; preds = %3090, %3121
  %.143998 = phi i64 [ %3122, %3121 ], [ %3094, %3090 ]
  %3097 = load i64, ptr %3, align 8, !tbaa !5
  %3098 = add i64 %3096, %.143998
  %3099 = add i64 %3098, %3097
  %3100 = load i64, ptr %29, align 8, !tbaa !5
  %3101 = sdiv i64 %3099, %3100
  store i64 %3101, ptr %32, align 8, !tbaa !5
  %3102 = icmp sgt i64 %3101, 0
  br i1 %3102, label %3103, label %3121

3103:                                             ; preds = %.lr.ph4000
  %3104 = add nsw i64 %3101, -1
  %3105 = mul nsw i64 %3104, %3100
  %3106 = sub nsw i64 %3092, %3105
  %3107 = add i64 %3097, %3106
  %3108 = mul nsw i64 %3107, %34
  %3109 = getelementptr %struct.complex, ptr %36, i64 %.143998
  %3110 = getelementptr %struct.complex, ptr %3109, i64 %3108
  %3111 = add nsw i64 %3107, -1
  %3112 = mul nsw i64 %3111, %34
  %3113 = getelementptr i8, ptr %3109, i64 8
  %3114 = getelementptr %struct.complex, ptr %3113, i64 %3112
  %3115 = load i64, ptr %4, align 8, !tbaa !5
  %3116 = add i64 %3107, %86
  %3117 = sub i64 %3116, %3115
  %3118 = getelementptr inbounds float, ptr %44, i64 %3117
  %3119 = getelementptr inbounds %struct.complex, ptr %43, i64 %3117
  %3120 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %3110, ptr noundef nonnull %33, ptr noundef %3114, ptr noundef nonnull %33, ptr noundef nonnull %3118, ptr noundef nonnull %3119, ptr noundef nonnull %29) #4
  br label %3121

3121:                                             ; preds = %.lr.ph4000, %3103
  %3122 = add nsw i64 %.143998, -1
  %3123 = icmp sgt i64 %.143998, 1
  br i1 %3123, label %.lr.ph4000, label %._crit_edge4001.loopexit, !llvm.loop !127

._crit_edge4001.loopexit:                         ; preds = %3121
  %.pre4412 = load i64, ptr %29, align 8, !tbaa !5
  br label %._crit_edge4001

._crit_edge4001:                                  ; preds = %3090, %._crit_edge4001.loopexit
  %3124 = phi i64 [ %.pre4412, %._crit_edge4001.loopexit ], [ %3084, %3090 ]
  %3125 = load i64, ptr %3, align 8, !tbaa !5
  %3126 = add i64 %3096, %3125
  %3127 = sdiv i64 %3126, %3124
  store i64 %3127, ptr %27, align 8, !tbaa !5
  %3128 = add nsw i64 %3127, -1
  %3129 = mul nsw i64 %3128, %3124
  %3130 = sub nsw i64 %3092, %3129
  %3131 = icmp slt i64 %3124, 0
  %3132 = icmp slt i64 %3129, 1
  %3133 = icmp sgt i64 %3129, -1
  %.in33664002 = select i1 %3131, i1 %3132, i1 %3133
  br i1 %.in33664002, label %.lr.ph4005, label %.thread4541

.thread4541:                                      ; preds = %._crit_edge4001
  store i64 %3092, ptr %18, align 8, !tbaa !5
  store i64 %3124, ptr %17, align 8, !tbaa !5
  br label %3181

.lr.ph4005:                                       ; preds = %._crit_edge4001
  %3134 = load i64, ptr %4, align 8, !tbaa !5
  %3135 = sub nsw i64 %86, %3134
  %3136 = getelementptr float, ptr %44, i64 %3135
  br label %3137

3137:                                             ; preds = %.lr.ph4005, %3137
  %.294003 = phi i64 [ %3130, %.lr.ph4005 ], [ %3146, %3137 ]
  %3138 = add nsw i64 %3135, %.294003
  %3139 = add nsw i64 %3138, %3125
  %3140 = getelementptr inbounds %struct.complex, ptr %43, i64 %3139
  %3141 = getelementptr inbounds %struct.complex, ptr %43, i64 %3138
  %3142 = load <2 x float>, ptr %3140, align 4, !tbaa !12
  store <2 x float> %3142, ptr %3141, align 4, !tbaa !12
  %3143 = getelementptr float, ptr %3136, i64 %.294003
  %3144 = getelementptr float, ptr %3143, i64 %3125
  %3145 = load float, ptr %3144, align 4, !tbaa !12
  store float %3145, ptr %3143, align 4, !tbaa !12
  %3146 = add nsw i64 %3124, %.294003
  %3147 = icmp sge i64 %3146, %3092
  %3148 = icmp sle i64 %3146, %3092
  %.in3366 = select i1 %3131, i1 %3147, i1 %3148
  br i1 %.in3366, label %3137, label %3149, !llvm.loop !128

3149:                                             ; preds = %3137
  store i64 %3138, ptr %15, align 8, !tbaa !5
  store i64 %3139, ptr %16, align 8, !tbaa !5
  store i64 %3092, ptr %18, align 8, !tbaa !5
  store i64 %3124, ptr %17, align 8, !tbaa !5
  br i1 %.in33664002, label %.lr.ph4012, label %3181

.lr.ph4012:                                       ; preds = %3149
  %3150 = load i64, ptr %4, align 8, !tbaa !5
  %3151 = sub nsw i64 %86, %3150
  br label %3152

3152:                                             ; preds = %.lr.ph4012, %3152
  %.304010 = phi i64 [ %3130, %.lr.ph4012 ], [ %3178, %3152 ]
  %3153 = add nsw i64 %3151, %.304010
  %3154 = add i64 %.304010, -1
  %3155 = add i64 %3154, %3125
  %3156 = mul nsw i64 %3155, %34
  %3157 = getelementptr inbounds %struct.complex, ptr %43, i64 %3153
  %3158 = load float, ptr %3157, align 4, !tbaa !9
  %gep5468 = getelementptr %struct.complex, ptr %invariant.gep5467, i64 %3156
  %3159 = getelementptr inbounds i8, ptr %3157, i64 4
  %3160 = load float, ptr %3159, align 4, !tbaa !13
  %3161 = fneg float %3160
  %3162 = load <2 x float>, ptr %gep5468, align 4, !tbaa !12
  %3163 = insertelement <2 x float> poison, float %3160, i64 0
  %3164 = insertelement <2 x float> %3163, float %3161, i64 1
  %3165 = fmul <2 x float> %3162, %3164
  %3166 = shufflevector <2 x float> %3165, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %3167 = insertelement <2 x float> poison, float %3158, i64 0
  %3168 = shufflevector <2 x float> %3167, <2 x float> poison, <2 x i32> zeroinitializer
  %3169 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %3168, <2 x float> %3162, <2 x float> %3166)
  store <2 x float> %3169, ptr %3157, align 4, !tbaa !12
  %3170 = add nsw i64 %3156, 1
  %3171 = getelementptr inbounds float, ptr %44, i64 %3153
  %3172 = load float, ptr %3171, align 4, !tbaa !12
  %3173 = load <2 x float>, ptr %gep5468, align 4, !tbaa !12
  %3174 = insertelement <2 x float> poison, float %3172, i64 0
  %3175 = shufflevector <2 x float> %3174, <2 x float> poison, <2 x i32> zeroinitializer
  %3176 = fmul <2 x float> %3175, %3173
  %3177 = getelementptr inbounds %struct.complex, ptr %36, i64 %3170
  store <2 x float> %3176, ptr %3177, align 4, !tbaa !12
  %3178 = add nsw i64 %3124, %.304010
  %3179 = icmp sge i64 %3178, %3092
  %3180 = icmp sle i64 %3178, %3092
  %.in3367 = select i1 %3131, i1 %3179, i1 %3180
  br i1 %.in3367, label %3152, label %._crit_edge4013, !llvm.loop !129

._crit_edge4013:                                  ; preds = %3152
  store i64 %3170, ptr %15, align 8, !tbaa !5
  store i64 %3153, ptr %16, align 8, !tbaa !5
  store <2 x float> %3176, ptr %20, align 8, !tbaa !12
  br label %3181

3181:                                             ; preds = %.thread4541, %._crit_edge4013, %3149
  br i1 %.not33243494, label %3195, label %3182

3182:                                             ; preds = %3181
  %3183 = add nsw i64 %.1532064018, %.33242
  %3184 = icmp sle i64 %3183, %3124
  %3185 = load i64, ptr %31, align 8
  %.not3368 = icmp sgt i64 %.1532064018, %3185
  %or.cond3386 = select i1 %3184, i1 true, i1 %.not3368
  br i1 %or.cond3386, label %3195, label %3186

3186:                                             ; preds = %3182
  %3187 = load i64, ptr %4, align 8, !tbaa !5
  %3188 = add i64 %3081, %.1532064018
  %3189 = add i64 %3187, %3125
  %3190 = sub i64 %3188, %3189
  store i64 %3190, ptr %17, align 8, !tbaa !5
  %3191 = sub i64 %3188, %3187
  store i64 %3191, ptr %18, align 8, !tbaa !5
  %3192 = getelementptr inbounds %struct.complex, ptr %43, i64 %3191
  %3193 = getelementptr inbounds %struct.complex, ptr %43, i64 %3190
  %3194 = load <2 x float>, ptr %3192, align 4, !tbaa !12
  store <2 x float> %3194, ptr %3193, align 4, !tbaa !12
  br label %3195

3195:                                             ; preds = %3181, %3186, %3182
  %3196 = add nsw i64 %.1532064018, -1
  %3197 = icmp sgt i64 %.1532064018, 1
  br i1 %3197, label %3082, label %._crit_edge4021, !llvm.loop !130

._crit_edge4021:                                  ; preds = %3195
  %.pre4413 = load i64, ptr %4, align 8, !tbaa !5
  %3198 = icmp sgt i64 %.pre4413, 0
  br i1 %3198, label %.lr.ph4046, label %._crit_edge4047.thread

.lr.ph4046:                                       ; preds = %._crit_edge4021
  %3199 = sub i64 %.43185, %86
  %3200 = add i64 %.33242, 1
  br label %3201

3201:                                             ; preds = %.lr.ph4046, %.loopexit3476
  %.1632074044 = phi i64 [ %.pre4413, %.lr.ph4046 ], [ %3315, %.loopexit3476 ]
  store i64 1, ptr %17, align 8, !tbaa !5
  %3202 = add i64 %3199, %.1632074044
  store i64 %3202, ptr %18, align 8, !tbaa !5
  %3203 = call i64 @llvm.smax.i64(i64 %3202, i64 1)
  %3204 = load i64, ptr %29, align 8, !tbaa !5
  %3205 = mul nsw i64 %3204, %3203
  %3206 = add i64 %3200, %.1632074044
  %3207 = sub i64 %3206, %3205
  %3208 = load i64, ptr %3, align 8, !tbaa !5
  %3209 = add i64 %3208, -1
  %3210 = add i64 %3209, %3207
  %3211 = sdiv i64 %3210, %3204
  store i64 %3211, ptr %27, align 8, !tbaa !5
  %3212 = add nsw i64 %3211, -1
  %3213 = mul nsw i64 %3204, %3212
  %3214 = sub nsw i64 %3207, %3213
  %3215 = icmp sgt i64 %3211, 0
  %.pre4416 = load i64, ptr %4, align 8, !tbaa !5
  br i1 %3215, label %3216, label %3265

3216:                                             ; preds = %3201
  %3217 = add nsw i64 %3208, %3214
  %3218 = mul nsw i64 %3217, %34
  %gep4043 = getelementptr %struct.complex, ptr %invariant.gep3648, i64 %3218
  %3219 = sub nsw i64 %86, %.pre4416
  %3220 = add nsw i64 %3219, %3214
  %3221 = getelementptr inbounds %struct.complex, ptr %43, i64 %3220
  %3222 = getelementptr inbounds float, ptr %44, i64 %3220
  %3223 = call i32 @clargv_(ptr noundef nonnull %27, ptr noundef %gep4043, ptr noundef nonnull %33, ptr noundef nonnull %3221, ptr noundef nonnull %29, ptr noundef nonnull %3222, ptr noundef nonnull %29) #4
  %3224 = load i64, ptr %3, align 8, !tbaa !5
  %3225 = add nsw i64 %3224, -1
  store i64 %3225, ptr %17, align 8, !tbaa !5
  %.not33634022 = icmp slt i64 %3224, 2
  br i1 %.not33634022, label %._crit_edge4026, label %.lr.ph4025

.lr.ph4025:                                       ; preds = %3216, %.lr.ph4025
  %.154023 = phi i64 [ %3242, %.lr.ph4025 ], [ 1, %3216 ]
  %3226 = load i64, ptr %29, align 8, !tbaa !5
  %3227 = sub nsw i64 %3226, %.154023
  %3228 = add nsw i64 %.154023, %3214
  %3229 = mul nsw i64 %3228, %34
  %3230 = getelementptr %struct.complex, ptr %36, i64 %3227
  %3231 = getelementptr %struct.complex, ptr %3230, i64 %3229
  %3232 = load i64, ptr %3, align 8, !tbaa !5
  %3233 = sub nsw i64 %3232, %.154023
  %3234 = getelementptr %struct.complex, ptr %36, i64 %3233
  %3235 = getelementptr %struct.complex, ptr %3234, i64 %3229
  %3236 = load i64, ptr %4, align 8, !tbaa !5
  %3237 = sub nsw i64 %86, %3236
  %3238 = add nsw i64 %3237, %3214
  %3239 = getelementptr inbounds float, ptr %44, i64 %3238
  %3240 = getelementptr inbounds %struct.complex, ptr %43, i64 %3238
  %3241 = call i32 @clartv_(ptr noundef nonnull %27, ptr noundef %3231, ptr noundef nonnull %33, ptr noundef %3235, ptr noundef nonnull %33, ptr noundef nonnull %3239, ptr noundef nonnull %3240, ptr noundef nonnull %29) #4
  %3242 = add nuw nsw i64 %.154023, 1
  %3243 = load i64, ptr %17, align 8, !tbaa !5
  %.not3363.not = icmp slt i64 %.154023, %3243
  br i1 %.not3363.not, label %.lr.ph4025, label %._crit_edge4026.loopexit, !llvm.loop !131

._crit_edge4026.loopexit:                         ; preds = %.lr.ph4025
  %.pre4414 = load i64, ptr %3, align 8, !tbaa !5
  br label %._crit_edge4026

._crit_edge4026:                                  ; preds = %._crit_edge4026.loopexit, %3216
  %3244 = phi i64 [ %.pre4414, %._crit_edge4026.loopexit ], [ %3224, %3216 ]
  %3245 = load i64, ptr %29, align 8, !tbaa !5
  %3246 = mul nsw i64 %3214, %34
  %3247 = getelementptr %struct.complex, ptr %36, i64 %3245
  %3248 = getelementptr %struct.complex, ptr %3247, i64 %3246
  %3249 = add nsw i64 %3214, -1
  %3250 = mul nsw i64 %3249, %34
  %3251 = getelementptr %struct.complex, ptr %3247, i64 %3250
  %3252 = getelementptr %struct.complex, ptr %36, i64 %3244
  %3253 = getelementptr %struct.complex, ptr %3252, i64 %3246
  %3254 = load i64, ptr %4, align 8, !tbaa !5
  %3255 = sub nsw i64 %86, %3254
  %3256 = add nsw i64 %3255, %3214
  %3257 = getelementptr inbounds float, ptr %44, i64 %3256
  %3258 = getelementptr inbounds %struct.complex, ptr %43, i64 %3256
  %3259 = call i32 @clar2v_(ptr noundef nonnull %27, ptr noundef %3248, ptr noundef %3251, ptr noundef %3253, ptr noundef nonnull %33, ptr noundef nonnull %3257, ptr noundef nonnull %3258, ptr noundef nonnull %29) #4
  %3260 = load i64, ptr %4, align 8, !tbaa !5
  %3261 = sub nsw i64 %86, %3260
  %3262 = getelementptr %struct.complex, ptr %43, i64 %3261
  %3263 = getelementptr %struct.complex, ptr %3262, i64 %3214
  %3264 = call i32 @clacgv_(ptr noundef nonnull %27, ptr noundef %3263, ptr noundef nonnull %29) #4
  %.pre4415 = load i64, ptr %4, align 8, !tbaa !5
  %.pre4417 = load i64, ptr %3, align 8, !tbaa !5
  br label %3265

3265:                                             ; preds = %._crit_edge4026, %3201
  %3266 = phi i64 [ %.pre4417, %._crit_edge4026 ], [ %3208, %3201 ]
  %3267 = phi i64 [ %.pre4415, %._crit_edge4026 ], [ %.pre4416, %3201 ]
  %reass.sub4263 = sub i64 %3267, %.1632074044
  %3268 = add i64 %reass.sub4263, 1
  store i64 %3268, ptr %17, align 8, !tbaa !5
  %.not3364.not4028 = icmp sgt i64 %3266, %3268
  br i1 %.not3364.not4028, label %.lr.ph4032, label %._crit_edge4033

.lr.ph4032:                                       ; preds = %3265
  %3269 = add i64 %3207, -1
  br label %3270

3270:                                             ; preds = %.lr.ph4032, %3293
  %3271 = phi i64 [ %3268, %.lr.ph4032 ], [ %3294, %3293 ]
  %.16.in4029 = phi i64 [ %3266, %.lr.ph4032 ], [ %.164030, %3293 ]
  %.164030 = add nsw i64 %.16.in4029, -1
  %3272 = add i64 %3269, %.164030
  %3273 = load i64, ptr %29, align 8, !tbaa !5
  %3274 = sdiv i64 %3272, %3273
  store i64 %3274, ptr %32, align 8, !tbaa !5
  %3275 = icmp sgt i64 %3274, 0
  br i1 %3275, label %3276, label %3293

3276:                                             ; preds = %3270
  %3277 = add nsw i64 %3274, -1
  %3278 = mul nsw i64 %3277, %3273
  %3279 = sub nsw i64 %3207, %3278
  %3280 = mul nsw i64 %3279, %34
  %3281 = getelementptr %struct.complex, ptr %36, i64 %.164030
  %3282 = getelementptr %struct.complex, ptr %3281, i64 %3280
  %3283 = add nsw i64 %3279, -1
  %3284 = mul nsw i64 %3283, %34
  %3285 = getelementptr %struct.complex, ptr %36, i64 %.16.in4029
  %3286 = getelementptr %struct.complex, ptr %3285, i64 %3284
  %3287 = load i64, ptr %4, align 8, !tbaa !5
  %3288 = sub nsw i64 %86, %3287
  %3289 = add nsw i64 %3288, %3279
  %3290 = getelementptr inbounds float, ptr %44, i64 %3289
  %3291 = getelementptr inbounds %struct.complex, ptr %43, i64 %3289
  %3292 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %3282, ptr noundef nonnull %33, ptr noundef %3286, ptr noundef nonnull %33, ptr noundef nonnull %3290, ptr noundef nonnull %3291, ptr noundef nonnull %29) #4
  %.pre4418 = load i64, ptr %17, align 8, !tbaa !5
  br label %3293

3293:                                             ; preds = %3270, %3276
  %3294 = phi i64 [ %3271, %3270 ], [ %.pre4418, %3276 ]
  %.not3364.not = icmp sgt i64 %.164030, %3294
  br i1 %.not3364.not, label %3270, label %._crit_edge4033, !llvm.loop !132

._crit_edge4033:                                  ; preds = %3293, %3265
  br i1 %.not, label %3295, label %.loopexit3476

3295:                                             ; preds = %._crit_edge4033
  store i64 %3207, ptr %17, align 8, !tbaa !5
  %3296 = load i64, ptr %29, align 8, !tbaa !5
  store i64 %3296, ptr %18, align 8, !tbaa !5
  %3297 = icmp slt i64 %3296, 0
  %3298 = icmp slt i64 %3213, 1
  %3299 = icmp sgt i64 %3213, -1
  %.in33654038 = select i1 %3297, i1 %3298, i1 %3299
  br i1 %.in33654038, label %.lr.ph4041, label %.loopexit3476

.lr.ph4041:                                       ; preds = %3295, %.lr.ph4041
  %.314039 = phi i64 [ %3310, %.lr.ph4041 ], [ %3214, %3295 ]
  %3300 = mul nsw i64 %.314039, %40
  %gep4035 = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %3300
  %3301 = add nsw i64 %.314039, -1
  %3302 = mul nsw i64 %3301, %40
  %gep4037 = getelementptr %struct.complex, ptr %invariant.gep4246, i64 %3302
  %3303 = load i64, ptr %4, align 8, !tbaa !5
  %3304 = sub nsw i64 %86, %3303
  %3305 = add nsw i64 %3304, %.314039
  %3306 = getelementptr inbounds float, ptr %44, i64 %3305
  %3307 = getelementptr inbounds %struct.complex, ptr %43, i64 %3305
  %3308 = call i32 @crot_(ptr noundef nonnull %28, ptr noundef %gep4035, ptr noundef nonnull @c__1, ptr noundef %gep4037, ptr noundef nonnull @c__1, ptr noundef nonnull %3306, ptr noundef nonnull %3307) #4
  %3309 = load i64, ptr %18, align 8, !tbaa !5
  %3310 = add nsw i64 %3309, %.314039
  %3311 = icmp slt i64 %3309, 0
  %3312 = load i64, ptr %17, align 8
  %3313 = icmp sge i64 %3310, %3312
  %3314 = icmp sle i64 %3310, %3312
  %.in3365 = select i1 %3311, i1 %3313, i1 %3314
  br i1 %.in3365, label %.lr.ph4041, label %.loopexit3476, !llvm.loop !133

.loopexit3476:                                    ; preds = %.lr.ph4041, %3295, %._crit_edge4033
  %3315 = add nsw i64 %.1632074044, -1
  %3316 = icmp sgt i64 %.1632074044, 1
  br i1 %3316, label %3201, label %._crit_edge4047, !llvm.loop !134

._crit_edge4047.thread:                           ; preds = %._crit_edge4021, %3076
  %.ph4542 = phi i64 [ %.pre4413, %._crit_edge4021 ], [ %3077, %3076 ]
  %3317 = add nsw i64 %.ph4542, -1
  store i64 %3317, ptr %18, align 8, !tbaa !5
  br label %._crit_edge4056.thread

._crit_edge4047:                                  ; preds = %.loopexit3476
  %.pre4419 = load i64, ptr %4, align 8, !tbaa !5
  %3318 = add nsw i64 %.pre4419, -1
  store i64 %3318, ptr %18, align 8, !tbaa !5
  %.not33604052 = icmp slt i64 %.pre4419, 2
  br i1 %.not33604052, label %._crit_edge4056.thread, label %.lr.ph4055

.lr.ph4055:                                       ; preds = %._crit_edge4047
  %reass.sub4264 = sub i64 %.43185, %86
  %3319 = add i64 %reass.sub4264, 1
  %3320 = add i64 %.33242, 1
  br label %3321

3321:                                             ; preds = %.lr.ph4055, %._crit_edge4051
  %3322 = phi i64 [ %3318, %.lr.ph4055 ], [ %3355, %._crit_edge4051 ]
  %.1732084053 = phi i64 [ 1, %.lr.ph4055 ], [ %3356, %._crit_edge4051 ]
  store i64 1, ptr %17, align 8, !tbaa !5
  %3323 = add i64 %3319, %.1732084053
  store i64 %3323, ptr %15, align 8, !tbaa !5
  %3324 = call i64 @llvm.smax.i64(i64 %3323, i64 1)
  %3325 = load i64, ptr %29, align 8, !tbaa !5
  %3326 = mul nsw i64 %3324, %3325
  %3327 = add i64 %3320, %.1732084053
  %3328 = sub i64 %3327, %3326
  %3329 = load i64, ptr %4, align 8, !tbaa !5
  %3330 = sub nsw i64 %3329, %.1732084053
  %3331 = icmp sgt i64 %3330, 0
  br i1 %3331, label %.lr.ph4050, label %._crit_edge4051

.lr.ph4050:                                       ; preds = %3321
  %3332 = add i64 %3328, -1
  br label %3333

3333:                                             ; preds = %.lr.ph4050, %3352
  %.174048 = phi i64 [ %3330, %.lr.ph4050 ], [ %3353, %3352 ]
  %3334 = add i64 %3332, %.174048
  %3335 = load i64, ptr %29, align 8, !tbaa !5
  %3336 = sdiv i64 %3334, %3335
  store i64 %3336, ptr %32, align 8, !tbaa !5
  %3337 = icmp sgt i64 %3336, 0
  br i1 %3337, label %3338, label %3352

3338:                                             ; preds = %3333
  %3339 = add nsw i64 %3336, -1
  %3340 = mul nsw i64 %3339, %3335
  %3341 = sub nsw i64 %3328, %3340
  %3342 = mul nsw i64 %3341, %34
  %3343 = getelementptr %struct.complex, ptr %36, i64 %.174048
  %3344 = getelementptr %struct.complex, ptr %3343, i64 %3342
  %3345 = add nsw i64 %3341, -1
  %3346 = mul nsw i64 %3345, %34
  %3347 = getelementptr i8, ptr %3343, i64 8
  %3348 = getelementptr %struct.complex, ptr %3347, i64 %3346
  %3349 = getelementptr inbounds float, ptr %44, i64 %3341
  %3350 = getelementptr inbounds %struct.complex, ptr %43, i64 %3341
  %3351 = call i32 @clartv_(ptr noundef nonnull %32, ptr noundef %3344, ptr noundef nonnull %33, ptr noundef %3348, ptr noundef nonnull %33, ptr noundef nonnull %3349, ptr noundef nonnull %3350, ptr noundef nonnull %29) #4
  br label %3352

3352:                                             ; preds = %3333, %3338
  %3353 = add nsw i64 %.174048, -1
  %3354 = icmp sgt i64 %.174048, 1
  br i1 %3354, label %3333, label %._crit_edge4051.loopexit, !llvm.loop !135

._crit_edge4051.loopexit:                         ; preds = %3352
  %.pre4420 = load i64, ptr %18, align 8, !tbaa !5
  br label %._crit_edge4051

._crit_edge4051:                                  ; preds = %._crit_edge4051.loopexit, %3321
  %3355 = phi i64 [ %.pre4420, %._crit_edge4051.loopexit ], [ %3322, %3321 ]
  %3356 = add nuw nsw i64 %.1732084053, 1
  %.not3360.not = icmp slt i64 %.1732084053, %3355
  br i1 %.not3360.not, label %3321, label %._crit_edge4056, !llvm.loop !136

._crit_edge4056.thread:                           ; preds = %._crit_edge4047, %._crit_edge4047.thread
  %.ph4544 = phi i64 [ %.ph4542, %._crit_edge4047.thread ], [ %.pre4419, %._crit_edge4047 ]
  %.pre4396.pre.pre4545 = load i64, ptr %3, align 8, !tbaa !5
  br label %.outer.backedge

.outer.backedge:                                  ; preds = %._crit_edge4056.thread, %3358, %..loopexit3479_crit_edge, %._crit_edge4056
  %.pre4396.be = phi i64 [ %.pre4396.pre.pre4545, %._crit_edge4056.thread ], [ %.pre4396.pre.pre, %3358 ], [ %.pre4396.pre.pre, %..loopexit3479_crit_edge ], [ %.pre4396.pre.pre, %._crit_edge4056 ]
  %.be5289 = phi i64 [ %.ph4544, %._crit_edge4056.thread ], [ %.pre4421, %3358 ], [ %.pre4421, %..loopexit3479_crit_edge ], [ %.pre4421, %._crit_edge4056 ]
  br label %.outer

._crit_edge4056:                                  ; preds = %._crit_edge4051
  %.pre4421 = load i64, ptr %4, align 8, !tbaa !5
  %3357 = icmp sgt i64 %.pre4421, 1
  %.pre4396.pre.pre = load i64, ptr %3, align 8, !tbaa !5
  br i1 %3357, label %3358, label %.outer.backedge

3358:                                             ; preds = %._crit_edge4056
  %3359 = sub nsw i64 %.4, %.pre4396.pre.pre
  store i64 %3359, ptr %18, align 8, !tbaa !5
  %.not33614057 = icmp slt i64 %3359, 2
  br i1 %.not33614057, label %.outer.backedge, label %.lr.ph4060

.lr.ph4060:                                       ; preds = %3358
  %3360 = add i64 %.4, 1
  %3361 = sub i64 %3360, %.pre4396.pre.pre
  %3362 = xor i64 %.pre4396.pre.pre, -1
  %3363 = add i64 %.4, %3362
  %min.iters.check5091 = icmp ult i64 %3363, 58
  br i1 %min.iters.check5091, label %scalar.ph5090.preheader, label %vector.scevcheck5008

vector.scevcheck5008:                             ; preds = %.lr.ph4060
  %3364 = add i64 %.4, -2
  %3365 = sub i64 %3364, %.pre4396.pre.pre
  %3366 = shl i64 %.pre4396.pre.pre, 3
  %scevgep5010 = getelementptr i8, ptr %scevgep5138, i64 %3366
  %mul.result5012 = shl i64 %3365, 3
  %3367 = getelementptr i8, ptr %scevgep5010, i64 %mul.result5012
  %3368 = icmp ult ptr %3367, %scevgep5010
  %mul.result5015 = shl i64 %3365, 3
  %mul.overflow5016 = icmp ugt i64 %3365, 2305843009213693951
  %3369 = getelementptr i8, ptr %scevgep5138, i64 %mul.result5015
  %3370 = icmp ult ptr %3369, %scevgep5138
  %3371 = or i1 %3370, %mul.overflow5016
  %mul.result5019 = shl i64 %3365, 3
  %3372 = getelementptr i8, ptr %scevgep5146, i64 %mul.result5019
  %3373 = icmp ult ptr %3372, %scevgep5146
  %scevgep5022 = getelementptr i8, ptr %scevgep5150, i64 %3366
  %mul.result5024 = shl i64 %3365, 3
  %3374 = getelementptr i8, ptr %scevgep5022, i64 %mul.result5024
  %3375 = icmp ult ptr %3374, %scevgep5022
  %3376 = or i1 %3368, %3371
  %3377 = or i1 %3373, %3376
  %3378 = or i1 %3375, %3377
  br i1 %3378, label %scalar.ph5090.preheader, label %vector.memcheck5026

vector.memcheck5026:                              ; preds = %vector.scevcheck5008
  %3379 = shl i64 %.4, 2
  %3380 = shl i64 %.pre4396.pre.pre, 2
  %3381 = sub i64 %3379, %3380
  %scevgep5028 = getelementptr i8, ptr %12, i64 %3381
  %3382 = shl i64 %.4, 3
  %3383 = shl i64 %.pre4396.pre.pre, 3
  %3384 = sub i64 %3382, %3383
  %scevgep5030 = getelementptr i8, ptr %scevgep5158, i64 %3384
  %scevgep5031 = getelementptr i8, ptr %11, i64 %3384
  %scevgep5033 = getelementptr i8, ptr %scevgep5161, i64 %3380
  %scevgep5034 = getelementptr i8, ptr %12, i64 %3379
  %scevgep5036 = getelementptr i8, ptr %scevgep5164, i64 %3383
  %scevgep5038 = getelementptr i8, ptr %scevgep5166, i64 %3382
  %scevgep5040 = getelementptr i8, ptr %scevgep5168, i64 %3383
  %scevgep5041 = getelementptr i8, ptr %11, i64 %3382
  %bound05042 = icmp ult ptr %scevgep5156, %scevgep5030
  %bound15043 = icmp ult ptr %scevgep5150, %scevgep5028
  %found.conflict5044 = and i1 %bound05042, %bound15043
  %bound05045 = icmp ult ptr %scevgep5156, %scevgep5031
  %bound15046 = icmp ult ptr %scevgep5138, %scevgep5028
  %found.conflict5047 = and i1 %bound05045, %bound15046
  %conflict.rdx5048 = or i1 %found.conflict5044, %found.conflict5047
  %bound05049 = icmp ult ptr %scevgep5156, %scevgep5034
  %bound15050 = icmp ult ptr %scevgep5033, %scevgep5028
  %found.conflict5051 = and i1 %bound05049, %bound15050
  %conflict.rdx5052 = or i1 %conflict.rdx5048, %found.conflict5051
  %bound05053 = icmp ult ptr %scevgep5156, %scevgep5038
  %bound15054 = icmp ult ptr %scevgep5036, %scevgep5028
  %found.conflict5055 = and i1 %bound05053, %bound15054
  %conflict.rdx5056 = or i1 %conflict.rdx5052, %found.conflict5055
  %bound05057 = icmp ult ptr %scevgep5156, %scevgep5041
  %bound15058 = icmp ult ptr %scevgep5040, %scevgep5028
  %found.conflict5059 = and i1 %bound05057, %bound15058
  %conflict.rdx5060 = or i1 %conflict.rdx5056, %found.conflict5059
  %bound05061 = icmp ult ptr %scevgep5150, %scevgep5031
  %bound15062 = icmp ult ptr %scevgep5138, %scevgep5030
  %found.conflict5063 = and i1 %bound05061, %bound15062
  %conflict.rdx5064 = or i1 %conflict.rdx5060, %found.conflict5063
  %bound05065 = icmp ult ptr %scevgep5150, %scevgep5034
  %bound15066 = icmp ult ptr %scevgep5033, %scevgep5030
  %found.conflict5067 = and i1 %bound05065, %bound15066
  %conflict.rdx5068 = or i1 %conflict.rdx5064, %found.conflict5067
  %bound05069 = icmp ult ptr %scevgep5150, %scevgep5038
  %bound15070 = icmp ult ptr %scevgep5036, %scevgep5030
  %found.conflict5071 = and i1 %bound05069, %bound15070
  %conflict.rdx5072 = or i1 %conflict.rdx5068, %found.conflict5071
  %bound05073 = icmp ult ptr %scevgep5150, %scevgep5041
  %bound15074 = icmp ult ptr %scevgep5040, %scevgep5030
  %found.conflict5075 = and i1 %bound05073, %bound15074
  %conflict.rdx5076 = or i1 %conflict.rdx5072, %found.conflict5075
  %bound05077 = icmp ult ptr %scevgep5138, %scevgep5034
  %bound15078 = icmp ult ptr %scevgep5033, %scevgep5031
  %found.conflict5079 = and i1 %bound05077, %bound15078
  %conflict.rdx5080 = or i1 %conflict.rdx5076, %found.conflict5079
  %bound05081 = icmp ult ptr %scevgep5138, %scevgep5038
  %bound15082 = icmp ult ptr %scevgep5036, %scevgep5031
  %found.conflict5083 = and i1 %bound05081, %bound15082
  %conflict.rdx5084 = or i1 %conflict.rdx5080, %found.conflict5083
  %bound05085 = icmp ult ptr %scevgep5138, %scevgep5041
  %bound15086 = icmp ult ptr %scevgep5040, %scevgep5031
  %found.conflict5087 = and i1 %bound05085, %bound15086
  %conflict.rdx5088 = or i1 %conflict.rdx5084, %found.conflict5087
  br i1 %conflict.rdx5088, label %scalar.ph5090.preheader, label %vector.ph5092

vector.ph5092:                                    ; preds = %vector.memcheck5026
  %n.vec5094 = and i64 %3363, -2
  %ind.end5095 = add i64 %n.vec5094, 2
  %3385 = getelementptr %struct.complex, ptr %43, i64 %.pre4396.pre.pre
  br label %vector.body5097

vector.body5097:                                  ; preds = %vector.body5097, %vector.ph5092
  %index5098 = phi i64 [ 0, %vector.ph5092 ], [ %index.next5105, %vector.body5097 ]
  %offset.idx5099 = add i64 %index5098, 2
  %3386 = getelementptr float, ptr %44, i64 %offset.idx5099
  %3387 = getelementptr float, ptr %3386, i64 %.pre4396.pre.pre
  %wide.load5100 = load <2 x float>, ptr %3387, align 4, !tbaa !12, !alias.scope !137
  store <2 x float> %wide.load5100, ptr %3386, align 4, !tbaa !12, !alias.scope !140, !noalias !142
  %3388 = getelementptr %struct.complex, ptr %3385, i64 %offset.idx5099
  %wide.vec5101 = load <4 x float>, ptr %3388, align 4, !tbaa !12
  %3389 = getelementptr inbounds %struct.complex, ptr %43, i64 %offset.idx5099
  store <4 x float> %wide.vec5101, ptr %3389, align 4, !tbaa !12
  %index.next5105 = add nuw i64 %index5098, 2
  %3390 = icmp eq i64 %index.next5105, %n.vec5094
  br i1 %3390, label %middle.block5089, label %vector.body5097, !llvm.loop !147

middle.block5089:                                 ; preds = %vector.body5097
  %3391 = add i64 %index5098, 3
  %3392 = add nsw i64 %.pre4396.pre.pre, %3391
  %cmp.n5106 = icmp eq i64 %3363, %n.vec5094
  %ind.escape = or i64 %3363, 1
  br i1 %cmp.n5106, label %..loopexit3479_crit_edge, label %scalar.ph5090.preheader

scalar.ph5090.preheader:                          ; preds = %middle.block5089, %vector.memcheck5026, %vector.scevcheck5008, %.lr.ph4060
  %.324058.ph = phi i64 [ 2, %vector.memcheck5026 ], [ 2, %vector.scevcheck5008 ], [ 2, %.lr.ph4060 ], [ %ind.end5095, %middle.block5089 ]
  br label %scalar.ph5090

scalar.ph5090:                                    ; preds = %scalar.ph5090.preheader, %scalar.ph5090
  %.324058 = phi i64 [ %3400, %scalar.ph5090 ], [ %.324058.ph, %scalar.ph5090.preheader ]
  %3393 = getelementptr float, ptr %44, i64 %.324058
  %3394 = getelementptr float, ptr %3393, i64 %.pre4396.pre.pre
  %3395 = load float, ptr %3394, align 4, !tbaa !12
  store float %3395, ptr %3393, align 4, !tbaa !12
  %3396 = add nsw i64 %.pre4396.pre.pre, %.324058
  %3397 = getelementptr inbounds %struct.complex, ptr %43, i64 %3396
  %3398 = getelementptr inbounds %struct.complex, ptr %43, i64 %.324058
  %3399 = load <2 x float>, ptr %3397, align 4, !tbaa !12
  store <2 x float> %3399, ptr %3398, align 4, !tbaa !12
  %3400 = add nuw i64 %.324058, 1
  %exitcond4373.not = icmp eq i64 %3400, %3361
  br i1 %exitcond4373.not, label %..loopexit3479_crit_edge, label %scalar.ph5090, !llvm.loop !148

..loopexit3479_crit_edge:                         ; preds = %scalar.ph5090, %middle.block5089
  %.324058.lcssa = phi i64 [ %ind.escape, %middle.block5089 ], [ %.324058, %scalar.ph5090 ]
  %.lcssa4680 = phi i64 [ %3392, %middle.block5089 ], [ %3396, %scalar.ph5090 ]
  store i64 %.324058.lcssa, ptr %17, align 8, !tbaa !5
  store i64 %.lcssa4680, ptr %15, align 8, !tbaa !5
  br label %.outer.backedge

.loopexit3480:                                    ; preds = %2547, %.lr.ph3883.split, %1732, %.lr.ph3883.split.us4256, %76, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #4
  ret i32 0
}

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fmuladd.v2f32(<2 x float>, <2 x float>, <2 x float>) #3

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"", !11, i64 0, !11, i64 4}
!11 = !{!"float", !7, i64 0}
!12 = !{!11, !11, i64 0}
!13 = !{!10, !11, i64 4}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15, !17, !18}
!17 = !{!"llvm.loop.isvectorized", i32 1}
!18 = !{!"llvm.loop.unroll.runtime.disable"}
!19 = distinct !{!19, !15, !17}
!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}
!29 = distinct !{!29, !15}
!30 = distinct !{!30, !15}
!31 = distinct !{!31, !15}
!32 = distinct !{!32, !15}
!33 = distinct !{!33, !15}
!34 = distinct !{!34, !15}
!35 = distinct !{!35, !15}
!36 = distinct !{!36, !15}
!37 = distinct !{!37, !15}
!38 = distinct !{!38, !15}
!39 = distinct !{!39, !15}
!40 = !{!41}
!41 = distinct !{!41, !42}
!42 = distinct !{!42, !"LVerDomain"}
!43 = !{!44}
!44 = distinct !{!44, !42}
!45 = distinct !{!45, !15, !17, !18}
!46 = distinct !{!46, !15, !17}
!47 = distinct !{!47, !15, !17, !18}
!48 = distinct !{!48, !15, !17}
!49 = distinct !{!49, !15}
!50 = distinct !{!50, !15}
!51 = distinct !{!51, !15}
!52 = distinct !{!52, !15}
!53 = distinct !{!53, !15}
!54 = distinct !{!54, !15}
!55 = distinct !{!55, !15}
!56 = distinct !{!56, !15}
!57 = distinct !{!57, !15}
!58 = distinct !{!58, !15}
!59 = distinct !{!59, !15}
!60 = distinct !{!60, !15}
!61 = distinct !{!61, !15}
!62 = distinct !{!62, !15}
!63 = distinct !{!63, !15}
!64 = distinct !{!64, !15}
!65 = distinct !{!65, !15}
!66 = distinct !{!66, !15}
!67 = distinct !{!67, !15}
!68 = distinct !{!68, !15}
!69 = distinct !{!69, !15}
!70 = !{!71}
!71 = distinct !{!71, !72}
!72 = distinct !{!72, !"LVerDomain"}
!73 = !{!74}
!74 = distinct !{!74, !72}
!75 = distinct !{!75, !15, !17, !18}
!76 = distinct !{!76, !15, !17}
!77 = distinct !{!77, !15}
!78 = distinct !{!78, !15, !17}
!79 = distinct !{!79, !15}
!80 = distinct !{!80, !15}
!81 = distinct !{!81, !15}
!82 = distinct !{!82, !15}
!83 = distinct !{!83, !15}
!84 = distinct !{!84, !15}
!85 = distinct !{!85, !15}
!86 = distinct !{!86, !15}
!87 = distinct !{!87, !15}
!88 = distinct !{!88, !15}
!89 = distinct !{!89, !15}
!90 = distinct !{!90, !15}
!91 = !{!92}
!92 = distinct !{!92, !93}
!93 = distinct !{!93, !"LVerDomain"}
!94 = !{!95}
!95 = distinct !{!95, !93}
!96 = !{!97, !98, !92, !99, !100}
!97 = distinct !{!97, !93}
!98 = distinct !{!98, !93}
!99 = distinct !{!99, !93}
!100 = distinct !{!100, !93}
!101 = distinct !{!101, !15, !17, !18}
!102 = distinct !{!102, !15, !17}
!103 = distinct !{!103, !15}
!104 = distinct !{!104, !15}
!105 = distinct !{!105, !15}
!106 = distinct !{!106, !15}
!107 = distinct !{!107, !15}
!108 = distinct !{!108, !15}
!109 = distinct !{!109, !15}
!110 = distinct !{!110, !15}
!111 = distinct !{!111, !15, !17, !18}
!112 = distinct !{!112, !15, !17, !18}
!113 = distinct !{!113, !114}
!114 = !{!"llvm.loop.unroll.disable"}
!115 = distinct !{!115, !15, !17}
!116 = distinct !{!116, !15}
!117 = distinct !{!117, !15}
!118 = distinct !{!118, !15}
!119 = distinct !{!119, !15}
!120 = distinct !{!120, !15}
!121 = distinct !{!121, !15}
!122 = distinct !{!122, !15}
!123 = distinct !{!123, !15}
!124 = distinct !{!124, !15}
!125 = distinct !{!125, !15}
!126 = distinct !{!126, !15}
!127 = distinct !{!127, !15}
!128 = distinct !{!128, !15}
!129 = distinct !{!129, !15}
!130 = distinct !{!130, !15}
!131 = distinct !{!131, !15}
!132 = distinct !{!132, !15}
!133 = distinct !{!133, !15}
!134 = distinct !{!134, !15}
!135 = distinct !{!135, !15}
!136 = distinct !{!136, !15}
!137 = !{!138}
!138 = distinct !{!138, !139}
!139 = distinct !{!139, !"LVerDomain"}
!140 = !{!141}
!141 = distinct !{!141, !139}
!142 = !{!143, !144, !138, !145, !146}
!143 = distinct !{!143, !139}
!144 = distinct !{!144, !139}
!145 = distinct !{!145, !139}
!146 = distinct !{!146, !139}
!147 = distinct !{!147, !15, !17, !18}
!148 = distinct !{!148, !15, !17}


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